[v3,1/7] vdpa: Move struct vdpa_vq_state to uAPI

Message ID 20231205083444.3029239-2-lulu@redhat.com
State New
Headers
Series vduse: Add support for reconnection |

Commit Message

Cindy Lu Dec. 5, 2023, 8:34 a.m. UTC
  Move struct vdpa_vq_state to uAPI for vduse reconnect.
Userspace and kernel will use this structure to synchronize the vq status

Signed-off-by: Cindy Lu <lulu@redhat.com>
---
 include/linux/vdpa.h      | 29 +----------------------------
 include/uapi/linux/vdpa.h | 31 +++++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 28 deletions(-)
  

Patch

diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h
index 43f59ef10cc9..62ce97bce934 100644
--- a/include/linux/vdpa.h
+++ b/include/linux/vdpa.h
@@ -8,6 +8,7 @@ 
 #include <linux/vhost_iotlb.h>
 #include <linux/virtio_net.h>
 #include <linux/if_ether.h>
+#include <uapi/linux/vdpa.h>
 
 /**
  * struct vdpa_calllback - vDPA callback definition.
@@ -29,34 +30,6 @@  struct vdpa_notification_area {
 	resource_size_t size;
 };
 
-/**
- * struct vdpa_vq_state_split - vDPA split virtqueue state
- * @avail_index: available index
- */
-struct vdpa_vq_state_split {
-	u16	avail_index;
-};
-
-/**
- * struct vdpa_vq_state_packed - vDPA packed virtqueue state
- * @last_avail_counter: last driver ring wrap counter observed by device
- * @last_avail_idx: device available index
- * @last_used_counter: device ring wrap counter
- * @last_used_idx: used index
- */
-struct vdpa_vq_state_packed {
-	u16	last_avail_counter:1;
-	u16	last_avail_idx:15;
-	u16	last_used_counter:1;
-	u16	last_used_idx:15;
-};
-
-struct vdpa_vq_state {
-	union {
-		struct vdpa_vq_state_split split;
-		struct vdpa_vq_state_packed packed;
-	};
-};
 
 struct vdpa_mgmt_dev;
 
diff --git a/include/uapi/linux/vdpa.h b/include/uapi/linux/vdpa.h
index 54b649ab0f22..f4bc3589685e 100644
--- a/include/uapi/linux/vdpa.h
+++ b/include/uapi/linux/vdpa.h
@@ -7,6 +7,8 @@ 
 #ifndef _UAPI_LINUX_VDPA_H_
 #define _UAPI_LINUX_VDPA_H_
 
+#include <linux/types.h>
+
 #define VDPA_GENL_NAME "vdpa"
 #define VDPA_GENL_VERSION 0x1
 
@@ -60,4 +62,33 @@  enum vdpa_attr {
 	VDPA_ATTR_MAX,
 };
 
+/**
+ * struct vdpa_vq_state_split - vDPA split virtqueue state
+ * @avail_index: available index
+ */
+struct vdpa_vq_state_split {
+	__u16 avail_index;
+};
+
+/**
+ * struct vdpa_vq_state_packed - vDPA packed virtqueue state
+ * @last_avail_counter: last driver ring wrap counter observed by device
+ * @last_avail_idx: device available index
+ * @last_used_counter: device ring wrap counter
+ * @last_used_idx: used index
+ */
+struct vdpa_vq_state_packed {
+	__u16 last_avail_counter : 1;
+	__u16 last_avail_idx : 15;
+	__u16 last_used_counter : 1;
+	__u16 last_used_idx : 15;
+};
+
+struct vdpa_vq_state {
+	union {
+		struct vdpa_vq_state_split split;
+		struct vdpa_vq_state_packed packed;
+	};
+};
+
 #endif