pci: remove eal prefix
[dpdk.git] / drivers / net / virtio / virtio_user_ethdev.c
index 4c3f664..280406c 100644 (file)
@@ -40,6 +40,7 @@
 
 #include <rte_malloc.h>
 #include <rte_kvargs.h>
+#include <rte_ethdev_vdev.h>
 #include <rte_vdev.h>
 #include <rte_alarm.h>
 
@@ -336,27 +337,21 @@ get_integer_arg(const char *key __rte_unused,
 static struct rte_vdev_driver virtio_user_driver;
 
 static struct rte_eth_dev *
-virtio_user_eth_dev_alloc(const char *name)
+virtio_user_eth_dev_alloc(struct rte_vdev_device *vdev)
 {
        struct rte_eth_dev *eth_dev;
        struct rte_eth_dev_data *data;
        struct virtio_hw *hw;
        struct virtio_user_dev *dev;
 
-       eth_dev = rte_eth_dev_allocate(name);
+       eth_dev = rte_eth_vdev_allocate(vdev, sizeof(*hw));
        if (!eth_dev) {
                PMD_INIT_LOG(ERR, "cannot alloc rte_eth_dev");
                return NULL;
        }
 
        data = eth_dev->data;
-
-       hw = rte_zmalloc(NULL, sizeof(*hw), 0);
-       if (!hw) {
-               PMD_INIT_LOG(ERR, "malloc virtio_hw failed");
-               rte_eth_dev_release_port(eth_dev);
-               return NULL;
-       }
+       hw = eth_dev->data->dev_private;
 
        dev = rte_zmalloc(NULL, sizeof(*dev), 0);
        if (!dev) {
@@ -377,12 +372,7 @@ virtio_user_eth_dev_alloc(const char *name)
        hw->modern   = 0;
        hw->use_simple_rxtx = 0;
        hw->virtio_user_dev = dev;
-       data->dev_private = hw;
-       data->drv_name = virtio_user_driver.driver.name;
-       data->numa_node = SOCKET_ID_ANY;
-       data->kdrv = RTE_KDRV_NONE;
        data->dev_flags = RTE_ETH_DEV_DETACHABLE;
-       eth_dev->driver = NULL;
        return eth_dev;
 }
 
@@ -402,7 +392,7 @@ virtio_user_eth_dev_free(struct rte_eth_dev *eth_dev)
  * Returns 0 on success.
  */
 static int
-virtio_user_pmd_probe(const char *name, const char *params)
+virtio_user_pmd_probe(struct rte_vdev_device *dev)
 {
        struct rte_kvargs *kvlist = NULL;
        struct rte_eth_dev *eth_dev;
@@ -415,13 +405,7 @@ virtio_user_pmd_probe(const char *name, const char *params)
        char *mac_addr = NULL;
        int ret = -1;
 
-       if (!params || params[0] == '\0') {
-               PMD_INIT_LOG(ERR, "arg %s is mandatory for virtio_user",
-                         VIRTIO_USER_ARG_QUEUE_SIZE);
-               goto end;
-       }
-
-       kvlist = rte_kvargs_parse(params, valid_args);
+       kvlist = rte_kvargs_parse(rte_vdev_device_args(dev), valid_args);
        if (!kvlist) {
                PMD_INIT_LOG(ERR, "error when parsing param");
                goto end;
@@ -507,7 +491,7 @@ virtio_user_pmd_probe(const char *name, const char *params)
        }
 
        if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
-               eth_dev = virtio_user_eth_dev_alloc(name);
+               eth_dev = virtio_user_eth_dev_alloc(dev);
                if (!eth_dev) {
                        PMD_INIT_LOG(ERR, "virtio_user fails to alloc device");
                        goto end;
@@ -521,12 +505,12 @@ virtio_user_pmd_probe(const char *name, const char *params)
                        goto end;
                }
        } else {
-               eth_dev = rte_eth_dev_attach_secondary(name);
+               eth_dev = rte_eth_dev_attach_secondary(rte_vdev_device_name(dev));
                if (!eth_dev)
                        goto end;
        }
 
-       /* previously called by rte_eal_pci_probe() for physical dev */
+       /* previously called by rte_pci_probe() for physical dev */
        if (eth_virtio_dev_init(eth_dev) < 0) {
                PMD_INIT_LOG(ERR, "eth_virtio_dev_init fails");
                virtio_user_eth_dev_free(eth_dev);
@@ -548,15 +532,17 @@ end:
 
 /** Called by rte_eth_dev_detach() */
 static int
-virtio_user_pmd_remove(const char *name)
+virtio_user_pmd_remove(struct rte_vdev_device *vdev)
 {
+       const char *name;
        struct rte_eth_dev *eth_dev;
        struct virtio_hw *hw;
        struct virtio_user_dev *dev;
 
-       if (!name)
+       if (!vdev)
                return -EINVAL;
 
+       name = rte_vdev_device_name(vdev);
        PMD_DRV_LOG(INFO, "Un-Initializing %s", name);
        eth_dev = rte_eth_dev_allocated(name);
        if (!eth_dev)