On Mon, Dec 9, 2024 at 11:16 PM Shijith Thotton <sthotton@xxxxxxxxxxx> wrote: > > 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. > > Signed-off-by: Shijith Thotton <sthotton@xxxxxxxxxxx> > --- > include/uapi/linux/virtio_pci.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/include/uapi/linux/virtio_pci.h b/include/uapi/linux/virtio_pci.h > index a8208492e822..1f3ea5d2a6af 100644 > --- a/include/uapi/linux/virtio_pci.h > +++ b/include/uapi/linux/virtio_pci.h > @@ -115,6 +115,8 @@ > #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 { > @@ -129,6 +131,15 @@ 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. */ > +}; Nit: I would have the following comments from the virtio spec: """ /* For Vendor Definition */ /* Pads structure to a multiple of 4 bytes */ /* Reads must not have side effects */ """ Thanks > + > struct virtio_pci_cap64 { > struct virtio_pci_cap cap; > __le32 offset_hi; /* Most sig 32 bits of offset */ > -- > 2.25.1 >