aboutsummaryrefslogtreecommitdiff
path: root/lib/pci.h
diff options
context:
space:
mode:
authorSwapnil Ingle <swapnil.ingle@nutanix.com>2019-08-07 10:05:05 -0400
committerFelipe Franciosi <felipe@nutanix.com>2019-09-05 16:45:35 +0100
commit7ad23c2c785e13d701f5fb0244e60a8035d3cd60 (patch)
tree99e344f7b1e9d51e4c7c6790ae261e6e5ac5a886 /lib/pci.h
parent061919b49cb1a0c493ed63baf701d62eec236b2f (diff)
downloadlibvfio-user-7ad23c2c785e13d701f5fb0244e60a8035d3cd60.zip
libvfio-user-7ad23c2c785e13d701f5fb0244e60a8035d3cd60.tar.gz
libvfio-user-7ad23c2c785e13d701f5fb0244e60a8035d3cd60.tar.bz2
muser, libmuser: support vfio sparse mmap capability
Signed-off-by: Swapnil Ingle <swapnil.ingle@nutanix.com>
Diffstat (limited to 'lib/pci.h')
-rw-r--r--lib/pci.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/pci.h b/lib/pci.h
index 40af4aa..5ad0722 100644
--- a/lib/pci.h
+++ b/lib/pci.h
@@ -241,6 +241,16 @@ _Static_assert(sizeof(struct lm_pci_config_space) == 0x100,
#define LM_REG_FLAG_RW (LM_REG_FLAG_READ | LM_REG_FLAG_WRITE)
#define LM_REG_FLAG_MEM (1 << 3) // if unset, bar is IO
+struct lm_mmap_area {
+ uint64_t start;
+ uint64_t size;
+};
+
+struct lm_sparse_mmap_areas {
+ int nr_mmap_areas;
+ struct lm_mmap_area areas[];
+};
+
typedef ssize_t (lm_region_access_t) (void *pvt, char * const buf, size_t count,
loff_t offset, const bool is_write);
@@ -252,6 +262,7 @@ struct lm_reg_info {
uint64_t offset;
lm_region_access_t *fn;
lm_map_region_t *map;
+ struct lm_sparse_mmap_areas *mmap_areas; /* sparse mmap areas */
};
enum {