plan to cleanup the fd generation code
[trinity.git] / ioctls / vfio.c
blob8339eb834e1fd49dbb6f20e8df56719b32459bb1
1 #include "config.h"
3 #ifdef USE_VFIO
4 #include <linux/vfio.h>
6 #include "utils.h"
7 #include "ioctls.h"
9 static const struct ioctl vfio_ioctls[] = {
10 IOCTL(VFIO_GET_API_VERSION),
11 IOCTL(VFIO_CHECK_EXTENSION),
12 IOCTL(VFIO_SET_IOMMU),
13 IOCTL(VFIO_GROUP_GET_STATUS),
14 IOCTL(VFIO_GROUP_SET_CONTAINER),
15 IOCTL(VFIO_GROUP_UNSET_CONTAINER),
16 IOCTL(VFIO_GROUP_GET_DEVICE_FD),
17 IOCTL(VFIO_DEVICE_GET_INFO),
18 IOCTL(VFIO_DEVICE_GET_REGION_INFO),
19 IOCTL(VFIO_DEVICE_GET_IRQ_INFO),
20 IOCTL(VFIO_DEVICE_SET_IRQS),
21 IOCTL(VFIO_DEVICE_RESET),
22 IOCTL(VFIO_IOMMU_GET_INFO),
23 IOCTL(VFIO_IOMMU_MAP_DMA),
24 IOCTL(VFIO_IOMMU_UNMAP_DMA),
27 static const char *const vfio_devs[] = {
28 "vfio",
31 static const struct ioctl_group vfio_grp = {
32 .devtype = DEV_CHAR,
33 .devs = vfio_devs,
34 .devs_cnt = ARRAY_SIZE(vfio_devs),
35 .sanitise = pick_random_ioctl,
36 .ioctls = vfio_ioctls,
37 .ioctls_cnt = ARRAY_SIZE(vfio_ioctls),
40 REG_IOCTL_GROUP(vfio_grp)
41 #endif