Lines Matching refs:iter
169 rte_eth_iterator_init(struct rte_dev_iterator *iter, const char *devargs_str) in rte_eth_iterator_init() argument
178 if (iter == NULL) { in rte_eth_iterator_init()
189 memset(iter, 0, sizeof(*iter)); in rte_eth_iterator_init()
209 iter->cls_str = devargs_str + strlen(iter_anybus_str); in rte_eth_iterator_init()
233 iter->cls_str = cls_str; in rte_eth_iterator_init()
235 iter->bus = devargs.bus; in rte_eth_iterator_init()
236 if (iter->bus->dev_iterate == NULL) { in rte_eth_iterator_init()
242 if ((strcmp(iter->bus->name, "vdev") == 0) || in rte_eth_iterator_init()
243 (strcmp(iter->bus->name, "fslmc") == 0) || in rte_eth_iterator_init()
244 (strcmp(iter->bus->name, "dpaa_bus") == 0)) { in rte_eth_iterator_init()
246 } else if (strcmp(iter->bus->name, "pci") == 0) { in rte_eth_iterator_init()
264 iter->bus_str = bus_str; in rte_eth_iterator_init()
267 iter->cls = rte_class_find_by_name("eth"); in rte_eth_iterator_init()
274 iter->bus->name); in rte_eth_iterator_init()
282 rte_eth_iterator_next(struct rte_dev_iterator *iter) in rte_eth_iterator_next() argument
284 if (iter == NULL) { in rte_eth_iterator_next()
290 if (iter->cls == NULL) /* invalid ethdev iterator */ in rte_eth_iterator_next()
295 if (iter->bus != NULL && in rte_eth_iterator_next()
297 iter->class_device == NULL) { in rte_eth_iterator_next()
299 iter->device = iter->bus->dev_iterate( in rte_eth_iterator_next()
300 iter->device, iter->bus_str, iter); in rte_eth_iterator_next()
301 if (iter->device == NULL) in rte_eth_iterator_next()
305 iter->class_device = iter->cls->dev_iterate( in rte_eth_iterator_next()
306 iter->class_device, iter->cls_str, iter); in rte_eth_iterator_next()
307 if (iter->class_device != NULL) in rte_eth_iterator_next()
308 return eth_dev_to_id(iter->class_device); /* match */ in rte_eth_iterator_next()
309 } while (iter->bus != NULL); /* need to try next rte_device */ in rte_eth_iterator_next()
312 rte_eth_iterator_cleanup(iter); in rte_eth_iterator_next()
317 rte_eth_iterator_cleanup(struct rte_dev_iterator *iter) in rte_eth_iterator_cleanup() argument
319 if (iter == NULL) { in rte_eth_iterator_cleanup()
324 if (iter->bus_str == NULL) in rte_eth_iterator_cleanup()
326 free(RTE_CAST_FIELD(iter, bus_str, char *)); /* workaround const */ in rte_eth_iterator_cleanup()
327 free(RTE_CAST_FIELD(iter, cls_str, char *)); /* workaround const */ in rte_eth_iterator_cleanup()
328 memset(iter, 0, sizeof(*iter)); in rte_eth_iterator_cleanup()