| 671 | } |
| 672 | |
| 673 | static int |
| 674 | skeldev_parse_vdev_args(struct rte_vdev_device *vdev) |
| 675 | { |
| 676 | int selftest = 0; |
| 677 | const char *name; |
| 678 | const char *params; |
| 679 | |
| 680 | static const char *const args[] = { |
| 681 | SKELETON_SELFTEST_ARG, |
| 682 | NULL |
| 683 | }; |
| 684 | |
| 685 | name = rte_vdev_device_name(vdev); |
| 686 | |
| 687 | params = rte_vdev_device_args(vdev); |
| 688 | if (params != NULL && params[0] != '\0') { |
| 689 | struct rte_kvargs *kvlist = rte_kvargs_parse(params, args); |
| 690 | |
| 691 | if (!kvlist) { |
| 692 | SKELETON_PMD_INFO( |
| 693 | "Ignoring unsupported params supplied '%s'", |
| 694 | name); |
| 695 | } else { |
| 696 | int ret = rte_kvargs_process(kvlist, |
| 697 | SKELETON_SELFTEST_ARG, |
| 698 | skeldev_get_selftest, &selftest); |
| 699 | if (ret != 0 || (selftest < 0 || selftest > 1)) { |
| 700 | SKELETON_PMD_ERR("%s: Error in parsing args", |
| 701 | name); |
| 702 | rte_kvargs_free(kvlist); |
| 703 | ret = -1; /* enforce if selftest is invalid */ |
| 704 | return ret; |
| 705 | } |
| 706 | } |
| 707 | |
| 708 | rte_kvargs_free(kvlist); |
| 709 | } |
| 710 | |
| 711 | return selftest; |
| 712 | } |
| 713 | |
| 714 | static int |
| 715 | skeleton_rawdev_probe(struct rte_vdev_device *vdev) |
no test coverage detected