Thread (61 messages) 61 messages, 7 authors, 2021-03-17

Re: [dpdk-dev] [PATCH v11 2/2] bus/pci: support MMIO in PCI ioport accessors

From: Wang, Haiyue <hidden>
Date: 2021-03-15 13:11:31

-----Original Message-----
From: David Marchand <redacted>
Sent: Monday, March 15, 2021 18:20
To: Wang, Haiyue <redacted>; 谢华伟(此时此刻) <redacted>
Cc: maxime.coquelin@redhat.com; Yigit, Ferruh <redacted>; dev@dpdk.org; Burakov, Anatoly
[off-list ref]; xuemingl@nvidia.com; grive@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 [off-list ref] wrote:
quoted
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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help