> -----Original Message----- > From: David Marchand <david.march...@redhat.com> > Sent: Monday, March 15, 2021 18:20 > To: Wang, Haiyue <haiyue.w...@intel.com>; 谢华伟(此时此刻) > <huawei....@alibaba-inc.com> > Cc: maxime.coque...@redhat.com; Yigit, Ferruh <ferruh.yi...@intel.com>; > dev@dpdk.org; Burakov, Anatoly > <anatoly.bura...@intel.com>; xuemi...@nvidia.com; gr...@u256.net > Subject: Re: [dpdk-dev] [PATCH v11 2/2] bus/pci: support MMIO in PCI ioport > accessors > > On Thu, Mar 11, 2021 at 7:43 AM Wang, Haiyue <haiyue.w...@intel.com> wrote: > > Like kernel use macro to do pio and mmio, maybe we can also to do so for > > making code clean: > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/lib/iomap.c > > > > #define IO_COND(addr, is_pio, is_mmio) do { \ > > unsigned long port = (unsigned long __force)addr; \ > > if (port >= PIO_RESERVED) { \ > > is_mmio; \ > > } else if (port > PIO_OFFSET) { \ > > port &= PIO_MASK; \ > > is_pio; \ > > } else \ > > bad_io_access(port, #is_pio ); \ > > } while (0) > > > > > > Like: > > > > #if defined(RTE_ARCH_X86) > > #define IO_COND(addr, is_pio, is_mmio) do { \ > > if ((uint64_t)(uintptr_t)addr >= PIO_MAX) { \ > > is_mmio; \ > > } else { \ > > is_pio; \ > > } \ > > } while (0) > > #else > > #define IO_COND(addr, is_pio, is_mmio) do { \ > > is_mmio; \ > > } while (0) > > #endif > > We should not just copy/paste kernel code. >
Got it ;-) > > > -- > David Marchand