[dpdk-dev,v3,17/20] bus/vdev: add device matching field driver
Checks
Commit Message
The vdev bus parses a field "driver", matching
a vdev driver name with one passed as follows:
"bus=vdev,driver=xxxx"
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
drivers/bus/vdev/vdev.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
@@ -417,13 +417,31 @@ vdev_unplug(struct rte_device *dev)
}
static int
+vdev_str_kv_cmp(const char *key __rte_unused,
+ const char *value,
+ void *_str)
+{
+ const char *str = _str;
+
+ return strcmp(str, value);
+}
+
+static int
vdev_dev_match(const struct rte_device *dev,
const void *_kvlist)
{
const struct rte_kvargs *kvlist = _kvlist;
+ const struct rte_vdev_device *vdev;
- (void) kvlist;
- (void) dev;
+ if (kvlist == NULL)
+ /* Empty string matches everything. */
+ return 0;
+ vdev = RTE_DEV_TO_VDEV_CONST(dev);
+ /* if any field does not match. */
+ if (rte_kvargs_process(kvlist, "driver",
+ &vdev_str_kv_cmp,
+ (void *)(intptr_t)vdev->device.driver->name))
+ return 1;
return 0;
}