Re: [PATCH v3 3/4] virtio-pci: define type and header for PCI vendor data
From: Shijith Thotton
Date: Fri Dec 13 2024 - 05:45:35 EST
>> 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 */
>"""
I will add the comments.
Thanks,
Shijith