Parse args first, to resolve any invalid args and give out the usage string. E.g './helloworld --invalid', the '--invalid' will be checked before any init. After the options are checked, take any init actions.
Signed-off-by: Wang Sheng-Hui <shhuiw at gmail.com> --- lib/librte_eal/linuxapp/eal/eal.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index 3ded563..9d20718 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -637,6 +637,11 @@ eal_parse_args(int argc, char **argv) }; struct shared_driver *solib; + /* check the no args case */ + if (argc == 1) { + eal_usage(prgname); + return (-1); + } argvopt = argv; internal_config.memory = 0; @@ -964,16 +969,16 @@ rte_eal_init(int argc, char **argv) thread_id = pthread_self(); + fctret = eal_parse_args(argc, argv); + if (fctret < 0) + exit(1); + if (rte_eal_log_early_init() < 0) rte_panic("Cannot init early logs\n"); if (rte_eal_cpu_init() < 0) rte_panic("Cannot detect lcores\n"); - fctret = eal_parse_args(argc, argv); - if (fctret < 0) - exit(1); - if (internal_config.no_hugetlbfs == 0 && internal_config.process_type != RTE_PROC_SECONDARY && internal_config.xen_dom0_support == 0 && -- 1.8.3.2