]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
virtio-pci: define type and header for PCI vendor data
authorShijith Thotton <sthotton@marvell.com>
Fri, 3 Jan 2025 15:31:36 +0000 (21:01 +0530)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 27 Jan 2025 14:39:25 +0000 (09:39 -0500)
Added macro definition for VIRTIO_PCI_CAP_VENDOR_CFG to identify the PCI
vendor data type in the virtio_pci_cap structure. Defined a new struct
virtio_pci_vndr_data for the vendor data capability header as per the
specification.

Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Shijith Thotton <sthotton@marvell.com>
Message-Id: <20250103153226.1933479-3-sthotton@marvell.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
include/uapi/linux/virtio_pci.h

index 1beb317df1b9b74b439f81b662caca4140d9b9d2..8549d4571257142ac6c9dad5c01369923791a85a 100644 (file)
 #define VIRTIO_PCI_CAP_PCI_CFG         5
 /* Additional shared memory capability */
 #define VIRTIO_PCI_CAP_SHARED_MEMORY_CFG 8
+/* PCI vendor data configuration */
+#define VIRTIO_PCI_CAP_VENDOR_CFG      9
 
 /* This is the PCI capability header: */
 struct virtio_pci_cap {
@@ -130,6 +132,18 @@ struct virtio_pci_cap {
        __le32 length;          /* Length of the structure, in bytes. */
 };
 
+/* This is the PCI vendor data capability header: */
+struct virtio_pci_vndr_data {
+       __u8 cap_vndr;          /* Generic PCI field: PCI_CAP_ID_VNDR */
+       __u8 cap_next;          /* Generic PCI field: next ptr. */
+       __u8 cap_len;           /* Generic PCI field: capability length */
+       __u8 cfg_type;          /* Identifies the structure. */
+       __u16 vendor_id;        /* Identifies the vendor-specific format. */
+       /* For Vendor Definition */
+       /* Pads structure to a multiple of 4 bytes */
+       /* Reads must not have side effects */
+};
+
 struct virtio_pci_cap64 {
        struct virtio_pci_cap cap;
        __le32 offset_hi;             /* Most sig 32 bits of offset */