aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/libvfio-user.h18
-rw-r--r--include/pci.h14
2 files changed, 10 insertions, 22 deletions
diff --git a/include/libvfio-user.h b/include/libvfio-user.h
index 95c5e7d..1aa5536 100644
--- a/include/libvfio-user.h
+++ b/include/libvfio-user.h
@@ -99,7 +99,12 @@ void *
vfu_mmap(vfu_ctx_t * vfu_ctx, off_t offset, size_t length);
/*
- * Returns a pointer to the standard part of the PCI configuration space.
+ * Returns a pointer to the PCI configuration space.
+ *
+ * PCI config space consists of an initial 64-byte vfu_pci_hdr_t, plus
+ * additional space, either containing capabilities, or device-specific
+ * configuration. Standard confspace is 256 bytes; extended config space is
+ * 4096 bytes.
*/
vfu_pci_config_space_t *
vfu_pci_get_config_space(vfu_ctx_t *vfu_ctx);
@@ -571,17 +576,6 @@ int
vfu_dma_write(vfu_ctx_t *vfu_ctx, dma_sg_t *sg, void *data);
/*
- * Advanced stuff.
- */
-
-/**
- * Returns the non-standard part of the PCI configuration space.
- * @vfu_ctx: the libvfio-user context
- */
-uint8_t *
-vfu_get_pci_non_std_config_space(vfu_ctx_t *vfu_ctx);
-
-/*
* Finalizes the device making it ready for vfu_attach_ctx(). This function is
* mandatory to be called before vfu_attach_ctx().
* @vfu_ctx: the libvfio-user context
diff --git a/include/pci.h b/include/pci.h
index 9511ba9..112becf 100644
--- a/include/pci.h
+++ b/include/pci.h
@@ -177,19 +177,13 @@ typedef union {
} __attribute__ ((packed)) vfu_pci_hdr_t;
_Static_assert(sizeof(vfu_pci_hdr_t) == 0x40, "bad PCI header size");
-typedef struct {
- uint8_t raw[PCI_CFG_SPACE_SIZE - PCI_STD_HEADER_SIZEOF];
-} __attribute__ ((packed)) vfu_pci_non_std_config_space_t;
-_Static_assert(sizeof(vfu_pci_non_std_config_space_t) == 0xc0,
- "bad non-standard PCI configuration space size");
-
+/*
+ * Note that extended config space is 4096 bytes.
+ */
typedef struct {
union {
uint8_t raw[PCI_CFG_SPACE_SIZE];
- struct {
- vfu_pci_hdr_t hdr;
- vfu_pci_non_std_config_space_t non_std;
- } __attribute__ ((packed));
+ vfu_pci_hdr_t hdr;
} __attribute__ ((packed));
uint8_t extended[];
} __attribute__ ((packed)) vfu_pci_config_space_t;