[dpdk-dev] [PATCH 26/28] net/virtio: use eal I/O device memory read/write API
Yuanhan Liu
yuanhan.liu at linux.intel.com
Wed Dec 14 04:02:23 CET 2016
On Wed, Dec 14, 2016 at 07:25:56AM +0530, Jerin Jacob wrote:
> * Following macros are derived from linux/pci_regs.h, however,
> * we can't simply include that header here, as there is no such
> @@ -320,37 +322,37 @@ static const struct virtio_pci_ops legacy_ops = {
> static inline uint8_t
> io_read8(uint8_t *addr)
> {
> - return *(volatile uint8_t *)addr;
> + return rte_readb(addr);
> }
Oh, one more comments: why not replacing io_read8 with rte_readb(),
and do similar for others? Then we don't have to define those wrappers.
I think you can also do something similar for other patches?
--yliu
>
> static inline void
> io_write8(uint8_t val, uint8_t *addr)
> {
> - *(volatile uint8_t *)addr = val;
> + rte_writeb(val, addr);
> }
>
> static inline uint16_t
> io_read16(uint16_t *addr)
> {
> - return *(volatile uint16_t *)addr;
> + return rte_readw(addr);
> }
>
> static inline void
> io_write16(uint16_t val, uint16_t *addr)
> {
> - *(volatile uint16_t *)addr = val;
> + rte_writew(val, addr);
> }
>
> static inline uint32_t
> io_read32(uint32_t *addr)
> {
> - return *(volatile uint32_t *)addr;
> + return rte_readl(addr);
> }
>
> static inline void
> io_write32(uint32_t val, uint32_t *addr)
> {
> - *(volatile uint32_t *)addr = val;
> + rte_writel(val, addr);
> }
>
> static inline void
> --
> 2.5.5
More information about the dev
mailing list