[dpdk-dev] [PATCH v11 2/2] bus/pci: support MMIO in PCI ioport accessors
Wang, Haiyue
haiyue.wang at intel.com
Mon Mar 15 14:11:06 CET 2021
> -----Original Message-----
> From: David Marchand <david.marchand at redhat.com>
> Sent: Monday, March 15, 2021 18:20
> To: Wang, Haiyue <haiyue.wang at intel.com>; 谢华伟(此时此刻) <huawei.xhw at alibaba-inc.com>
> Cc: maxime.coquelin at redhat.com; Yigit, Ferruh <ferruh.yigit at intel.com>; dev at dpdk.org; Burakov, Anatoly
> <anatoly.burakov at intel.com>; xuemingl at nvidia.com; grive at 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.wang at 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
More information about the dev
mailing list