From a4235b781f5d7a7bda204f24a9d048696a2a484e Mon Sep 17 00:00:00 2001 From: Tal Shnaiderman Date: Tue, 7 Jul 2020 11:48:22 +0300 Subject: [PATCH] eal/windows: probe vdev Add needed function calls in rte_eal_init to detect vdev PMD. eal_option_device_parse() rte_service_init() rte_bus_probe() Signed-off-by: Tal Shnaiderman Acked-by: Narcisa Vasile Tested-by: Narcisa Vasile Tested-by: Pallavi Kadam --- lib/librte_eal/common/meson.build | 1 + lib/librte_eal/windows/eal.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build index c1d9f21488..9f32262450 100644 --- a/lib/librte_eal/common/meson.build +++ b/lib/librte_eal/common/meson.build @@ -31,6 +31,7 @@ if is_windows 'malloc_heap.c', 'rte_malloc.c', 'eal_common_timer.c', + 'rte_service.c', ) subdir_done() endif diff --git a/lib/librte_eal/windows/eal.c b/lib/librte_eal/windows/eal.c index e50601dd36..bc48f27ab3 100644 --- a/lib/librte_eal/windows/eal.c +++ b/lib/librte_eal/windows/eal.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include "eal_hugepages.h" @@ -284,6 +285,11 @@ rte_eal_init(int argc, char **argv) if (fctret < 0) exit(1); + if (eal_option_device_parse()) { + rte_errno = ENODEV; + return -1; + } + /* Prevent creation of shared memory files. */ if (internal_conf->in_memory == 0) { RTE_LOG(WARNING, EAL, "Multi-process support is requested, " @@ -374,6 +380,19 @@ rte_eal_init(int argc, char **argv) rte_panic("Cannot create thread\n"); } + /* Initialize services so drivers can register services during probe. */ + if (rte_service_init()) { + rte_eal_init_alert("rte_service_init() failed"); + rte_errno = ENOEXEC; + return -1; + } + + if (rte_bus_probe()) { + rte_eal_init_alert("Cannot probe devices"); + rte_errno = ENOTSUP; + return -1; + } + /* * Launch a dummy function on all slave lcores, so that master lcore * knows they are all ready when this function returns. -- 2.20.1