On 8/7/25 1:57 PM, Eugenio Pérez wrote:
diff --git a/include/uapi/linux/vduse.h b/include/uapi/linux/vduse.h
index 9a56d0416bfe..b4b139dc76bb 100644
--- a/include/uapi/linux/vduse.h
+++ b/include/uapi/linux/vduse.h
@@ -31,6 +31,7 @@
   * @features: virtio features
   * @vq_num: the number of virtqueues
   * @vq_align: the allocation alignment of virtqueue's metadata
+ * @ngroups: number of vq groups that VDUSE device declares
   * @reserved: for future use, needs to be initialized to zero
   * @config_size: the size of the configuration space
   * @config: the buffer of the configuration space
@@ -45,7 +46,8 @@ struct vduse_dev_config {
        __u64 features;
        __u32 vq_num;
        __u32 vq_align;
-       __u32 reserved[13];
+       __u32 ngroups; /* if VDUSE_API_VERSION >= 1 */
+       __u32 reserved[12];
        __u32 config_size;
        __u8 config[];
  };
@@ -160,6 +162,16 @@ struct vduse_vq_state_packed {
        __u16 last_used_idx;
  };
+/**
+ * struct vduse_vq_group - virtqueue group
+ * @num: Index of the virtqueue group
+ * @num: Group
+ */
+struct vduse_vq_group {
+       __u32 index;
+       __u32 num;
+};
+
  /**
   * struct vduse_vq_info - information of a virtqueue
   * @index: virtqueue index
@@ -182,6 +194,7 @@ struct vduse_vq_info {
        union {
                struct vduse_vq_state_split split;
                struct vduse_vq_state_packed packed;
+               struct vduse_vq_group group;
        };
        __u8 ready;
  };
@@ -274,6 +287,8 @@ enum vduse_req_type {
        VDUSE_GET_VQ_STATE,
        VDUSE_SET_STATUS,
        VDUSE_UPDATE_IOTLB,
+       VDUSE_GET_VQ_GROUP,
+       VDUSE_GET_VRING_DESC_GROUP,
  };
/**
@@ -328,6 +343,7 @@ struct vduse_dev_request {
                struct vduse_vq_state vq_state;
                struct vduse_dev_status s;
                struct vduse_iova_range iova;
+               struct vduse_vq_group vq_group; /* Only if vduse api version >= 
1 */
                __u32 padding[32];
        };
  };
@@ -350,6 +366,7 @@ struct vduse_dev_response {
        __u32 reserved[4];
        union {
                struct vduse_vq_state vq_state;
+               struct vduse_vq_group vq_group; /* Only if vduse api version >= 
1 */
                __u32 padding[32];
        };
  };

Same comment as for patch 5, padding should be updated.

Regards,
Maxime


Reply via email to