1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright (c) 2021 NVIDIA Corporation & Affiliates
10 #include <rte_kvargs.h>
13 #include "rte_bus_auxiliary.h"
15 enum auxiliary_params {
16 RTE_AUXILIARY_PARAM_NAME,
19 static const char * const auxiliary_params_keys[] = {
20 [RTE_AUXILIARY_PARAM_NAME] = "name",
25 auxiliary_dev_match(const struct rte_device *dev,
28 const struct rte_kvargs *kvlist = _kvlist;
29 const char *key = auxiliary_params_keys[RTE_AUXILIARY_PARAM_NAME];
32 /* no kvlist arg, all devices match */
36 /* if key is present in kvlist and does not match, filter device */
37 name = rte_kvargs_get(kvlist, key);
38 if (name != NULL && strcmp(name, dev->name))
45 auxiliary_dev_iterate(const void *start,
47 const struct rte_dev_iterator *it __rte_unused)
49 rte_bus_find_device_t find_device;
50 struct rte_kvargs *kvargs = NULL;
51 struct rte_device *dev;
54 kvargs = rte_kvargs_parse(str, auxiliary_params_keys);
56 AUXILIARY_LOG(ERR, "cannot parse argument list %s",
62 find_device = auxiliary_bus.bus.find_device;
63 dev = find_device(start, auxiliary_dev_match, kvargs);
64 rte_kvargs_free(kvargs);