rte_eal_pci_ioport_map(struct rte_pci_device *dev, int bar,
struct rte_pci_ioport *p)
{
- int ret;
+ int ret = -1;
switch (dev->kdrv) {
#ifdef VFIO_PRESENT
case RTE_KDRV_VFIO:
- ret = -1;
if (pci_vfio_is_enabled())
ret = pci_vfio_ioport_map(dev, bar, p);
break;
#endif
case RTE_KDRV_IGB_UIO:
+ ret = pci_uio_ioport_map(dev, bar, p);
+ break;
case RTE_KDRV_UIO_GENERIC:
ret = pci_uio_ioport_map(dev, bar, p);
break;
- default:
+ case RTE_KDRV_NONE:
#if defined(RTE_ARCH_X86)
- /* special case for x86 ... */
ret = pci_ioport_map(dev, bar, p);
-#else
- ret = -1;
#endif
break;
+ default:
+ break;
}
if (!ret)
break;
#endif
case RTE_KDRV_IGB_UIO:
+ pci_uio_ioport_read(p, data, len, offset);
+ break;
case RTE_KDRV_UIO_GENERIC:
pci_uio_ioport_read(p, data, len, offset);
break;
- default:
+ case RTE_KDRV_NONE:
#if defined(RTE_ARCH_X86)
- /* special case for x86 ... */
pci_uio_ioport_read(p, data, len, offset);
#endif
break;
+ default:
+ break;
}
}
break;
#endif
case RTE_KDRV_IGB_UIO:
+ pci_uio_ioport_write(p, data, len, offset);
+ break;
case RTE_KDRV_UIO_GENERIC:
pci_uio_ioport_write(p, data, len, offset);
break;
- default:
+ case RTE_KDRV_NONE:
#if defined(RTE_ARCH_X86)
- /* special case for x86 ... */
pci_uio_ioport_write(p, data, len, offset);
#endif
break;
+ default:
+ break;
}
}
int
rte_eal_pci_ioport_unmap(struct rte_pci_ioport *p)
{
- int ret;
+ int ret = -1;
switch (p->dev->kdrv) {
#ifdef VFIO_PRESENT
case RTE_KDRV_VFIO:
- ret = -1;
if (pci_vfio_is_enabled())
ret = pci_vfio_ioport_unmap(p);
break;
#endif
case RTE_KDRV_IGB_UIO:
+ ret = pci_uio_ioport_unmap(p);
+ break;
case RTE_KDRV_UIO_GENERIC:
ret = pci_uio_ioport_unmap(p);
break;
- default:
+ case RTE_KDRV_NONE:
#if defined(RTE_ARCH_X86)
- /* special case for x86 ... nothing to do */
ret = 0;
-#else
- ret = -1;
#endif
break;
+ default:
+ break;
}
return ret;