Imported Upstream version 17.05
[deb_dpdk.git] / lib / librte_eal / common / include / rte_vdev.h
index 784e837..e6b678e 100644 (file)
@@ -39,6 +39,28 @@ extern "C" {
 
 #include <sys/queue.h>
 #include <rte_dev.h>
+#include <rte_devargs.h>
+
+struct rte_vdev_device {
+       TAILQ_ENTRY(rte_vdev_device) next;      /**< Next attached vdev */
+       struct rte_device device;               /**< Inherit core device */
+};
+
+static inline const char *
+rte_vdev_device_name(const struct rte_vdev_device *dev)
+{
+       if (dev && dev->device.devargs)
+               return dev->device.devargs->virt.drv_name;
+       return NULL;
+}
+
+static inline const char *
+rte_vdev_device_args(const struct rte_vdev_device *dev)
+{
+       if (dev && dev->device.devargs)
+               return dev->device.devargs->args;
+       return "";
+}
 
 /** Double linked list of virtual device drivers. */
 TAILQ_HEAD(vdev_driver_list, rte_vdev_driver);
@@ -46,12 +68,12 @@ TAILQ_HEAD(vdev_driver_list, rte_vdev_driver);
 /**
  * Probe function called for each virtual device driver once.
  */
-typedef int (rte_vdev_probe_t)(const char *name, const char *args);
+typedef int (rte_vdev_probe_t)(struct rte_vdev_device *dev);
 
 /**
  * Remove function called for each virtual device driver once.
  */
-typedef int (rte_vdev_remove_t)(const char *name);
+typedef int (rte_vdev_remove_t)(struct rte_vdev_device *dev);
 
 /**
  * A virtual device driver abstraction.
@@ -70,7 +92,7 @@ struct rte_vdev_driver {
  *   A pointer to a rte_vdev_driver structure describing the driver
  *   to be registered.
  */
-void rte_eal_vdrv_register(struct rte_vdev_driver *driver);
+void rte_vdev_register(struct rte_vdev_driver *driver);
 
 /**
  * Unregister a virtual device driver.
@@ -79,7 +101,7 @@ void rte_eal_vdrv_register(struct rte_vdev_driver *driver);
  *   A pointer to a rte_vdev_driver structure describing the driver
  *   to be unregistered.
  */
-void rte_eal_vdrv_unregister(struct rte_vdev_driver *driver);
+void rte_vdev_unregister(struct rte_vdev_driver *driver);
 
 #define RTE_PMD_REGISTER_VDEV(nm, vdrv)\
 RTE_INIT(vdrvinitfn_ ##vdrv);\
@@ -88,7 +110,7 @@ static void vdrvinitfn_ ##vdrv(void)\
 {\
        (vdrv).driver.name = RTE_STR(nm);\
        (vdrv).driver.alias = vdrvinit_ ## nm ## _alias;\
-       rte_eal_vdrv_register(&vdrv);\
+       rte_vdev_register(&vdrv);\
 } \
 RTE_PMD_EXPORT_NAME(nm, __COUNTER__)