diff options
author | Ilias Apalodimas <ilias.apalodimas@linaro.org> | 2017-10-21 22:50:20 +0300 |
---|---|---|
committer | Ilias Apalodimas <ilias.apalodimas@linaro.org> | 2017-10-21 22:50:20 +0300 |
commit | 00bb641d2b30764cef2764e382c8a8bd2a4c63b6 (patch) | |
tree | 68fedc2e3726b67c6568130157843b964f2e3a0b | |
parent | ce4bb9515e08e4d1298be8d00270551ffe1629ce (diff) |
POC for sparse mapping. Still not working fully, just parses and prints sparsevfio-sparse-mmap
regions
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-rw-r--r-- | api/vfio_api.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/api/vfio_api.c b/api/vfio_api.c index e4f6989..3528463 100644 --- a/api/vfio_api.c +++ b/api/vfio_api.c @@ -203,11 +203,11 @@ static struct vfio_info_cap_header *vfio_get_region_info_cap(struct vfio_region_ return NULL; } -static int vfio_get_region_sparse_mmaps(int device, struct vfio_region_info *region_info) +static int vfio_get_region_sparse_mmaps(int device, struct vfio_region_info *region_info, + struct vfio_region_info_cap_sparse_mmap *sparse) { struct vfio_region_info *info; struct vfio_info_cap_header *caps = NULL; - struct vfio_region_info_cap_sparse_mmap *sparse; int ret = 0, i; if (region_info->flags & VFIO_REGION_INFO_FLAG_CAPS && @@ -275,6 +275,7 @@ int vfio_get_region(int device, struct vfio_region_info *region_info, __u32 region) { int ret; + struct vfio_region_info_cap_sparse_mmap *sparse = NULL; region_info->index = region; ret = ioctl(device, VFIO_DEVICE_GET_REGION_INFO, region_info); @@ -291,10 +292,10 @@ int vfio_get_region(int device, struct vfio_region_info *region_info, /* FIXME call proper fucntion */ /* Try to find type capabilities */ if (1) - ret = vfio_get_region_cap_type(device, region_info); + ret = vfio_get_region_sparse_mmaps(device, region_info, sparse); /* Try to find sparse mmap info */ else - ret = vfio_get_region_sparse_mmaps(device, region_info); + ret = vfio_get_region_cap_type(device, region_info); return ret; } |