20 #if !defined(VFIO_PRESENT) && defined(RTE_EAL_VFIO)
21 #include <linux/version.h>
22 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
29 #include <linux/vfio.h>
31 #define VFIO_DIR "/dev/vfio"
32 #define VFIO_CONTAINER_PATH "/dev/vfio/vfio"
33 #define VFIO_GROUP_FMT "/dev/vfio/%u"
34 #define VFIO_NOIOMMU_GROUP_FMT "/dev/vfio/noiommu-%u"
35 #define VFIO_GET_REGION_ADDR(x) ((uint64_t) x << 40ULL)
36 #define VFIO_GET_REGION_IDX(x) (x >> 40)
37 #define VFIO_NOIOMMU_MODE \
38 "/sys/module/vfio/parameters/enable_unsafe_noiommu_mode"
41 #ifdef VFIO_NOIOMMU_IOMMU
42 #define RTE_VFIO_NOIOMMU VFIO_NOIOMMU_IOMMU
44 #define RTE_VFIO_NOIOMMU 8
50 struct vfio_device_info;
80 int *vfio_dev_fd,
struct vfio_device_info *device_info);
182 int __rte_experimental
203 int __rte_experimental
225 int __rte_experimental
227 const char *dev_addr,
int *iommu_group_num);
239 int __rte_experimental
255 int __rte_experimental
272 int __rte_experimental
288 int __rte_experimental
307 int __rte_experimental
326 int __rte_experimental
351 int __rte_experimental
353 uint64_t iova, uint64_t len);
377 int __rte_experimental
379 uint64_t iova, uint64_t len);