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

From: Cindy Lu
Date: Tue Dec 05 2023 - 03:35:04 EST


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@xxxxxxxxxx>
---
include/linux/vdpa.h | 29 +----------------------------
include/uapi/linux/vdpa.h | 31 +++++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 28 deletions(-)

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
--
2.34.3