[v9,09/10] vhost: add an API for judging vq format
Checks
Commit Message
This patch introduces an API for getting virtqueue format.
Signed-off-by: Lin Li <lilin24@baidu.com>
Signed-off-by: Xun Ni <nixun@baidu.com>
Signed-off-by: Yu Zhang <zhangyu31@baidu.com>
Signed-off-by: Jin Yu <jin.yu@intel.com>
---
lib/librte_vhost/rte_vhost.h | 13 +++++++++++++
lib/librte_vhost/rte_vhost_version.map | 1 +
lib/librte_vhost/vhost.c | 12 ++++++++++++
3 files changed, 26 insertions(+)
@@ -11,6 +11,7 @@
*/
#include <stdint.h>
+#include <stdbool.h>
#include <sys/eventfd.h>
#include <rte_memory.h>
@@ -678,6 +679,18 @@ uint16_t rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
*/
int rte_vhost_get_mem_table(int vid, struct rte_vhost_memory **mem);
+/**
+ * Get vq is packed
+ *
+ * @param vid
+ * vhost device ID
+ * @return
+ * true on packed, false on split
+ */
+__rte_experimental
+bool
+rte_vhost_vq_is_packed(int vid);
+
/**
* Get guest vring info, including the vring address, vring size, etc.
*
@@ -95,4 +95,5 @@ EXPERIMENTAL {
rte_vhost_clr_inflight_desc_packed;
rte_vhost_get_vhost_ring_inflight;
rte_vhost_get_vring_base_from_inflight;
+ rte_vhost_vq_is_packed;
};
@@ -753,6 +753,18 @@ rte_vhost_get_mem_table(int vid, struct rte_vhost_memory **mem)
return 0;
}
+bool
+rte_vhost_vq_is_packed(int vid)
+{
+ struct virtio_net *dev;
+
+ dev = get_device(vid);
+ if (unlikely(!dev))
+ return -1;
+
+ return vq_is_packed(dev);
+}
+
int
rte_vhost_get_vhost_vring(int vid, uint16_t vring_idx,
struct rte_vhost_vring *vring)