This patch introduces an API for getting virtqueue format.

Signed-off-by: Lin Li <lili...@baidu.com>
Signed-off-by: Xun Ni <ni...@baidu.com>
Signed-off-by: Yu Zhang <zhangy...@baidu.com>
Signed-off-by: Jin Yu <jin...@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(+)

diff --git a/lib/librte_vhost/rte_vhost.h b/lib/librte_vhost/rte_vhost.h
index 8b6435d0d..6d768c550 100644
--- a/lib/librte_vhost/rte_vhost.h
+++ b/lib/librte_vhost/rte_vhost.h
@@ -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.
  *
diff --git a/lib/librte_vhost/rte_vhost_version.map 
b/lib/librte_vhost/rte_vhost_version.map
index ce517b127..0dce0d2bb 100644
--- a/lib/librte_vhost/rte_vhost_version.map
+++ b/lib/librte_vhost/rte_vhost_version.map
@@ -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;
 };
diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
index 1b6dcca98..372a25375 100644
--- a/lib/librte_vhost/vhost.c
+++ b/lib/librte_vhost/vhost.c
@@ -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)
-- 
2.17.2

Reply via email to