1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2018 Gaƫtan Rivet
9 #include <rte_kvargs.h>
10 #include <rte_errno.h>
12 #include "vdev_logs.h"
13 #include "vdev_private.h"
20 static const char * const vdev_params_keys[] = {
21 [RTE_VDEV_PARAM_NAME] = "name",
22 [RTE_VDEV_PARAM_MAX] = NULL,
26 vdev_dev_match(const struct rte_device *dev,
29 const struct rte_kvargs *kvlist = _kvlist;
30 const char *key = vdev_params_keys[RTE_VDEV_PARAM_NAME];
33 /* no kvlist arg, all devices match */
37 /* if key is present in kvlist and does not match, filter device */
38 name = rte_kvargs_get(kvlist, key);
39 if (name != NULL && strcmp(name, dev->name))
46 rte_vdev_dev_iterate(const void *start,
48 const struct rte_dev_iterator *it __rte_unused)
50 struct rte_kvargs *kvargs = NULL;
51 struct rte_device *dev;
54 kvargs = rte_kvargs_parse(str, vdev_params_keys);
56 VDEV_LOG(ERR, "cannot parse argument list\n");
61 dev = rte_vdev_find_device(start, vdev_dev_match, kvargs);
62 rte_kvargs_free(kvargs);