On PCI the shm regions are found using capability entries; find a region by searching for the capability.
Showing the changes to include/uapi (1 of 2 files). Show all
Unified · Split
| @@ -113,6 +113,8 @@ · 112 unmodified lines | |||
| 113 | #define VIRTIO_PCI_CAP_DEVICE_CFG 4 | 113 | #define VIRTIO_PCI_CAP_DEVICE_CFG 4 |
| 114 | /* PCI configuration access */ | 114 | /* PCI configuration access */ |
| 115 | #define VIRTIO_PCI_CAP_PCI_CFG 5 | 115 | #define VIRTIO_PCI_CAP_PCI_CFG 5 |
| 116 | /* Additional shared memory capability */ | ||
| 117 | #define VIRTIO_PCI_CAP_SHARED_MEMORY_CFG 8 | ||
| 116 | 118 | ||
| 117 | /* This is the PCI capability header: */ | 119 | /* This is the PCI capability header: */ |
| 118 | struct virtio_pci_cap { | 120 | struct virtio_pci_cap { |
| @@ -121,11 +123,18 @@ struct virtio_pci_cap { · 2 unmodified lines | |||
| 121 | __u8 cap_len; /* Generic PCI field: capability length */ | 123 | __u8 cap_len; /* Generic PCI field: capability length */ |
| 122 | __u8 cfg_type; /* Identifies the structure. */ | 124 | __u8 cfg_type; /* Identifies the structure. */ |
| 123 | __u8 bar; /* Where to find it. */ | 125 | __u8 bar; /* Where to find it. */ |
| 124 | __u8 padding[3]; /* Pad to full dword. */ | 126 | __u8 id; /* Multiple capabilities of the same type */ |
| 127 | __u8 padding[2]; /* Pad to full dword. */ | ||
| 125 | __le32 offset; /* Offset within bar. */ | 128 | __le32 offset; /* Offset within bar. */ |
| 126 | __le32 length; /* Length of the structure, in bytes. */ | 129 | __le32 length; /* Length of the structure, in bytes. */ |
| 127 | }; | 130 | }; |
| 128 | 131 | ||
| 132 | struct virtio_pci_cap64 { | ||
| 133 | struct virtio_pci_cap cap; | ||
| 134 | __le32 offset_hi; /* Most sig 32 bits of offset */ | ||
| 135 | __le32 length_hi; /* Most sig 32 bits of length */ | ||
| 136 | }; | ||
| 137 | |||
| 129 | struct virtio_pci_notify_cap { | 138 | struct virtio_pci_notify_cap { |
| 130 | struct virtio_pci_cap cap; | 139 | struct virtio_pci_cap cap; |
| 131 | __le32 notify_off_multiplier; /* Multiplier for queue_notify_off. */ | 140 | __le32 notify_off_multiplier; /* Multiplier for queue_notify_off. */ |