raw/ifpga: remove virtual devices on close
[dpdk.git] / examples / vhost / virtio_net.c
index 64bf3d1..2432a96 100644 (file)
@@ -23,6 +23,7 @@ vs_vhost_net_setup(struct vhost_dev *dev)
        uint16_t i;
        int vid = dev->vid;
        struct vhost_queue *queue;
+       int ret;
 
        RTE_LOG(INFO, VHOST_CONFIG,
                "setting builtin vhost-user net driver\n");
@@ -33,7 +34,12 @@ vs_vhost_net_setup(struct vhost_dev *dev)
        else
                dev->hdr_len = sizeof(struct virtio_net_hdr);
 
-       rte_vhost_get_mem_table(vid, &dev->mem);
+       ret = rte_vhost_get_mem_table(vid, &dev->mem);
+       if (ret < 0) {
+               RTE_LOG(ERR, VHOST_CONFIG, "Failed to get "
+                       "VM memory layout for device(%d)\n", vid);
+               return;
+       }
 
        dev->nr_vrings = rte_vhost_get_vring_num(vid);
        for (i = 0; i < dev->nr_vrings; i++) {
@@ -232,6 +238,13 @@ vs_enqueue_pkts(struct vhost_dev *dev, uint16_t queue_id,
        return count;
 }
 
+uint16_t
+builtin_enqueue_pkts(struct vhost_dev *dev, uint16_t queue_id,
+               struct rte_mbuf **pkts, uint32_t count)
+{
+       return vs_enqueue_pkts(dev, queue_id, pkts, count);
+}
+
 static __rte_always_inline int
 dequeue_pkt(struct vhost_dev *dev, struct rte_vhost_vring *vr,
            struct rte_mbuf *m, uint16_t desc_idx,
@@ -357,7 +370,7 @@ dequeue_pkt(struct vhost_dev *dev, struct rte_vhost_vring *vr,
        return 0;
 }
 
-uint16_t
+static uint16_t
 vs_dequeue_pkts(struct vhost_dev *dev, uint16_t queue_id,
        struct rte_mempool *mbuf_pool, struct rte_mbuf **pkts, uint16_t count)
 {
@@ -434,3 +447,10 @@ vs_dequeue_pkts(struct vhost_dev *dev, uint16_t queue_id,
 
        return i;
 }
+
+uint16_t
+builtin_dequeue_pkts(struct vhost_dev *dev, uint16_t queue_id,
+       struct rte_mempool *mbuf_pool, struct rte_mbuf **pkts, uint16_t count)
+{
+       return vs_dequeue_pkts(dev, queue_id, mbuf_pool, pkts, count);
+}