On Fri, 1 Jul 2022 17:33:00 +0800, Jason Wang <jasowang@xxxxxxxxxx> wrote: > > 在 2022/6/29 14:56, Xuan Zhuo 写道: > > In order to facilitate the expansion of virtio_pci_common_cfg in the > > future, move it from uapi to virtio_pci_modern.h. In this way, we can > > freely expand virtio_pci_common_cfg in the future. > > > > Other projects using virtio_pci_common_cfg in uapi need to maintain a > > separate virtio_pci_common_cfg or use the offset macro defined in uapi. > > > > Signed-off-by: Xuan Zhuo <xuanzhuo@xxxxxxxxxxxxxxxxx> > > --- > > include/linux/virtio_pci_modern.h | 26 ++++++++++++++++++++++++++ > > include/uapi/linux/virtio_pci.h | 26 -------------------------- > > 2 files changed, 26 insertions(+), 26 deletions(-) > > > > diff --git a/include/linux/virtio_pci_modern.h b/include/linux/virtio_pci_modern.h > > index eb2bd9b4077d..c4f7ffbacb4e 100644 > > --- a/include/linux/virtio_pci_modern.h > > +++ b/include/linux/virtio_pci_modern.h > > @@ -5,6 +5,32 @@ > > #include <linux/pci.h> > > #include <linux/virtio_pci.h> > > > > +/* Fields in VIRTIO_PCI_CAP_COMMON_CFG: */ > > +struct virtio_pci_common_cfg { > > + /* About the whole device. */ > > + __le32 device_feature_select; /* read-write */ > > + __le32 device_feature; /* read-only */ > > + __le32 guest_feature_select; /* read-write */ > > + __le32 guest_feature; /* read-write */ > > + __le16 msix_config; /* read-write */ > > + __le16 num_queues; /* read-only */ > > + __u8 device_status; /* read-write */ > > + __u8 config_generation; /* read-only */ > > + > > + /* About a specific virtqueue. */ > > + __le16 queue_select; /* read-write */ > > + __le16 queue_size; /* read-write, power of 2. */ > > + __le16 queue_msix_vector; /* read-write */ > > + __le16 queue_enable; /* read-write */ > > + __le16 queue_notify_off; /* read-only */ > > + __le32 queue_desc_lo; /* read-write */ > > + __le32 queue_desc_hi; /* read-write */ > > + __le32 queue_avail_lo; /* read-write */ > > + __le32 queue_avail_hi; /* read-write */ > > + __le32 queue_used_lo; /* read-write */ > > + __le32 queue_used_hi; /* read-write */ > > +}; > > + > > struct virtio_pci_modern_device { > > struct pci_dev *pci_dev; > > > > diff --git a/include/uapi/linux/virtio_pci.h b/include/uapi/linux/virtio_pci.h > > index 3a86f36d7e3d..247ec42af2c8 100644 > > --- a/include/uapi/linux/virtio_pci.h > > +++ b/include/uapi/linux/virtio_pci.h > > @@ -140,32 +140,6 @@ struct virtio_pci_notify_cap { > > __le32 notify_off_multiplier; /* Multiplier for queue_notify_off. */ > > }; > > > > -/* Fields in VIRTIO_PCI_CAP_COMMON_CFG: */ > > -struct virtio_pci_common_cfg { > > - /* About the whole device. */ > > - __le32 device_feature_select; /* read-write */ > > - __le32 device_feature; /* read-only */ > > - __le32 guest_feature_select; /* read-write */ > > - __le32 guest_feature; /* read-write */ > > - __le16 msix_config; /* read-write */ > > - __le16 num_queues; /* read-only */ > > - __u8 device_status; /* read-write */ > > - __u8 config_generation; /* read-only */ > > - > > - /* About a specific virtqueue. */ > > - __le16 queue_select; /* read-write */ > > - __le16 queue_size; /* read-write, power of 2. */ > > - __le16 queue_msix_vector; /* read-write */ > > - __le16 queue_enable; /* read-write */ > > - __le16 queue_notify_off; /* read-only */ > > - __le32 queue_desc_lo; /* read-write */ > > - __le32 queue_desc_hi; /* read-write */ > > - __le32 queue_avail_lo; /* read-write */ > > - __le32 queue_avail_hi; /* read-write */ > > - __le32 queue_used_lo; /* read-write */ > > - __le32 queue_used_hi; /* read-write */ > > -}; > > - > > > I think it's better not delete those from uAPI. We can embed this struct > in the private virito_pci_moden.h anyhow. OK. Thanks. > > Thanks > > > > /* Fields in VIRTIO_PCI_CAP_PCI_CFG: */ > > struct virtio_pci_cfg_cap { > > struct virtio_pci_cap cap; >