* [dpdk-dev] [PATCH 0/2] help option
@ 2015-01-29 18:07 Thomas Monjalon
2015-01-29 18:07 ` [dpdk-dev] [PATCH 1/2] eal: sort and align options lists Thomas Monjalon
` (2 more replies)
0 siblings, 3 replies; 16+ messages in thread
From: Thomas Monjalon @ 2015-01-29 18:07 UTC (permalink / raw)
To: dev
This is a small reorganization of options.
The main goal is to provide a nice --help option.
Thomas Monjalon (2):
eal: sort and align options lists
eal: add help option
lib/librte_eal/bsdapp/eal/eal.c | 7 +-
lib/librte_eal/common/eal_common_options.c | 115 +++++++++++++++--------------
lib/librte_eal/common/eal_options.h | 2 +
lib/librte_eal/linuxapp/eal/eal.c | 27 ++++---
4 files changed, 82 insertions(+), 69 deletions(-)
--
2.2.2
^ permalink raw reply [flat|nested] 16+ messages in thread
* [dpdk-dev] [PATCH 1/2] eal: sort and align options lists
2015-01-29 18:07 [dpdk-dev] [PATCH 0/2] help option Thomas Monjalon
@ 2015-01-29 18:07 ` Thomas Monjalon
2015-01-29 18:07 ` [dpdk-dev] [PATCH 2/2] eal: add help option Thomas Monjalon
2015-02-02 17:44 ` [dpdk-dev] [PATCH v2 0/2] " Thomas Monjalon
2 siblings, 0 replies; 16+ messages in thread
From: Thomas Monjalon @ 2015-01-29 18:07 UTC (permalink / raw)
To: dev
Options listing in usage help was a mess.
The main usage line is fixed and shorter.
The options in usage output are logically sorted (cpu/mem/dev/proc),
aligned and lightly reworded.
The options in declarations are alphabetically sorted.
Code in swith statement is not moved.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
lib/librte_eal/common/eal_common_options.c | 112 ++++++++++++++---------------
lib/librte_eal/linuxapp/eal/eal.c | 19 +++--
2 files changed, 64 insertions(+), 67 deletions(-)
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 67e02dc..4890e78 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -55,37 +55,38 @@
const char
eal_short_options[] =
"b:" /* pci-blacklist */
- "w:" /* pci-whitelist */
"c:" /* coremask */
- "d:"
+ "d:" /* driver */
"l:" /* corelist */
- "m:"
- "n:"
- "r:"
- "v";
+ "m:" /* memory size */
+ "n:" /* memory channels */
+ "r:" /* memory ranks */
+ "v" /* version */
+ "w:" /* pci-whitelist */
+ ;
const struct option
eal_long_options[] = {
- {OPT_HUGE_DIR, 1, 0, OPT_HUGE_DIR_NUM},
- {OPT_MASTER_LCORE, 1, 0, OPT_MASTER_LCORE_NUM},
- {OPT_PROC_TYPE, 1, 0, OPT_PROC_TYPE_NUM},
- {OPT_NO_SHCONF, 0, 0, OPT_NO_SHCONF_NUM},
- {OPT_NO_HPET, 0, 0, OPT_NO_HPET_NUM},
- {OPT_VMWARE_TSC_MAP, 0, 0, OPT_VMWARE_TSC_MAP_NUM},
- {OPT_NO_PCI, 0, 0, OPT_NO_PCI_NUM},
- {OPT_NO_HUGE, 0, 0, OPT_NO_HUGE_NUM},
- {OPT_FILE_PREFIX, 1, 0, OPT_FILE_PREFIX_NUM},
- {OPT_SOCKET_MEM, 1, 0, OPT_SOCKET_MEM_NUM},
- {OPT_PCI_WHITELIST, 1, 0, OPT_PCI_WHITELIST_NUM},
- {OPT_PCI_BLACKLIST, 1, 0, OPT_PCI_BLACKLIST_NUM},
- {OPT_VDEV, 1, 0, OPT_VDEV_NUM},
- {OPT_SYSLOG, 1, NULL, OPT_SYSLOG_NUM},
- {OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM},
- {OPT_BASE_VIRTADDR, 1, 0, OPT_BASE_VIRTADDR_NUM},
- {OPT_XEN_DOM0, 0, 0, OPT_XEN_DOM0_NUM},
- {OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM},
- {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM},
- {0, 0, 0, 0}
+ {OPT_BASE_VIRTADDR, 1, NULL, OPT_BASE_VIRTADDR_NUM },
+ {OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM },
+ {OPT_FILE_PREFIX, 1, NULL, OPT_FILE_PREFIX_NUM },
+ {OPT_HUGE_DIR, 1, NULL, OPT_HUGE_DIR_NUM },
+ {OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM },
+ {OPT_MASTER_LCORE, 1, NULL, OPT_MASTER_LCORE_NUM },
+ {OPT_NO_HPET, 0, NULL, OPT_NO_HPET_NUM },
+ {OPT_NO_HUGE, 0, NULL, OPT_NO_HUGE_NUM },
+ {OPT_NO_PCI, 0, NULL, OPT_NO_PCI_NUM },
+ {OPT_NO_SHCONF, 0, NULL, OPT_NO_SHCONF_NUM },
+ {OPT_PCI_BLACKLIST, 1, NULL, OPT_PCI_BLACKLIST_NUM },
+ {OPT_PCI_WHITELIST, 1, NULL, OPT_PCI_WHITELIST_NUM },
+ {OPT_PROC_TYPE, 1, NULL, OPT_PROC_TYPE_NUM },
+ {OPT_SOCKET_MEM, 1, NULL, OPT_SOCKET_MEM_NUM },
+ {OPT_SYSLOG, 1, NULL, OPT_SYSLOG_NUM },
+ {OPT_VDEV, 1, NULL, OPT_VDEV_NUM },
+ {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM },
+ {OPT_VMWARE_TSC_MAP, 0, NULL, OPT_VMWARE_TSC_MAP_NUM },
+ {OPT_XEN_DOM0, 0, NULL, OPT_XEN_DOM0_NUM },
+ {0, 0, NULL, 0 }
};
static int lcores_parsed;
@@ -578,37 +579,36 @@ eal_check_common_options(struct internal_config *internal_cfg)
void
eal_common_usage(void)
{
- printf("-c COREMASK -n NUM [-m NB] [-r NUM] [-b <domain:bus:devid.func>]"
- "[--proc-type primary|secondary|auto]\n\n"
+ printf("-c COREMASK|-l CORELIST -n CHANNELS [options]\n\n"
"EAL common options:\n"
- " -c COREMASK : A hexadecimal bitmask of cores to run on\n"
- " -l CORELIST : List of cores to run on\n"
- " The argument format is <c1>[-c2][,c3[-c4],...]\n"
- " where c1, c2, etc are core indexes between 0 and %d\n"
- " --"OPT_MASTER_LCORE" ID: Core ID that is used as master\n"
- " -n NUM : Number of memory channels\n"
- " -v : Display version information on startup\n"
- " -m MB : memory to allocate (see also --"OPT_SOCKET_MEM")\n"
- " -r NUM : force number of memory ranks (don't detect)\n"
- " --"OPT_SYSLOG" : set syslog facility\n"
- " --"OPT_LOG_LEVEL" : set default log level\n"
- " --"OPT_PROC_TYPE" : type of this process\n"
- " --"OPT_PCI_BLACKLIST", -b: add a PCI device in black list.\n"
- " Prevent EAL from using this PCI device. The argument\n"
- " format is <domain:bus:devid.func>.\n"
- " --"OPT_PCI_WHITELIST", -w: add a PCI device in white list.\n"
- " Only use the specified PCI devices. The argument format\n"
- " is <[domain:]bus:devid.func>. This option can be present\n"
- " several times (once per device).\n"
- " [NOTE: PCI whitelist cannot be used with -b option]\n"
- " --"OPT_VDEV": add a virtual device.\n"
- " The argument format is <driver><id>[,key=val,...]\n"
- " (ex: --vdev=eth_pcap0,iface=eth2).\n"
- " --"OPT_VMWARE_TSC_MAP": use VMware TSC map instead of native RDTSC\n"
+ " -c COREMASK Hexadecimal bitmask of cores to run on\n"
+ " -l CORELIST List of cores to run on\n"
+ " The argument format is <c1>[-c2][,c3[-c4],...]\n"
+ " where c1, c2, etc are core indexes between 0 and %d\n"
+ " --"OPT_MASTER_LCORE" ID Core ID that is used as master\n"
+ " -n NUM Number of memory channels\n"
+ " -m MB Memory to allocate (see also --"OPT_SOCKET_MEM")\n"
+ " -r NUM Force number of memory ranks (don't detect)\n"
+ " -b, --"OPT_PCI_BLACKLIST" Add a PCI device in black list.\n"
+ " Prevent EAL from using this PCI device. The argument\n"
+ " format is <domain:bus:devid.func>.\n"
+ " -w, --"OPT_PCI_WHITELIST" Add a PCI device in white list.\n"
+ " Only use the specified PCI devices. The argument format\n"
+ " is <[domain:]bus:devid.func>. This option can be present\n"
+ " several times (once per device).\n"
+ " [NOTE: PCI whitelist cannot be used with -b option]\n"
+ " --"OPT_VDEV" Add a virtual device.\n"
+ " The argument format is <driver><id>[,key=val,...]\n"
+ " (ex: --vdev=eth_pcap0,iface=eth2).\n"
+ " --"OPT_VMWARE_TSC_MAP" Use VMware TSC map instead of native RDTSC\n"
+ " --"OPT_PROC_TYPE" Type of this process (primary|secondary|auto)\n"
+ " --"OPT_SYSLOG" Set syslog facility\n"
+ " --"OPT_LOG_LEVEL" Set default log level\n"
+ " -v Display version information on startup\n"
"\nEAL options for DEBUG use only:\n"
- " --"OPT_NO_HUGE" : use malloc instead of hugetlbfs\n"
- " --"OPT_NO_PCI" : disable pci\n"
- " --"OPT_NO_HPET" : disable hpet\n"
- " --"OPT_NO_SHCONF": no shared config (mmap'd files)\n"
+ " --"OPT_NO_HUGE" Use malloc instead of hugetlbfs\n"
+ " --"OPT_NO_PCI" Disable PCI\n"
+ " --"OPT_NO_HPET" Disable HPET\n"
+ " --"OPT_NO_SHCONF" No shared config (mmap'd files)\n"
"\n", RTE_MAX_LCORE);
}
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index f99e158..e3955e7 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -352,17 +352,14 @@ eal_usage(const char *prgname)
printf("\nUsage: %s ", prgname);
eal_common_usage();
printf("EAL Linux options:\n"
- " -d LIB.so : add driver (can be used multiple times)\n"
- " --"OPT_XEN_DOM0" : support application running on Xen Domain0 "
- "without hugetlbfs\n"
- " --"OPT_SOCKET_MEM" : memory to allocate on specific\n"
- " sockets (use comma separated values)\n"
- " --"OPT_HUGE_DIR" : directory where hugetlbfs is mounted\n"
- " --"OPT_FILE_PREFIX": prefix for hugepage filenames\n"
- " --"OPT_BASE_VIRTADDR": specify base virtual address\n"
- " --"OPT_VFIO_INTR": specify desired interrupt mode for VFIO "
- "(legacy|msi|msix)\n"
- " --"OPT_CREATE_UIO_DEV": create /dev/uioX (usually done by hotplug)\n"
+ " -d LIB.so Add driver (can be used multiple times)\n"
+ " --"OPT_SOCKET_MEM" Memory to allocate on sockets (comma separated values)\n"
+ " --"OPT_HUGE_DIR" Directory where hugetlbfs is mounted\n"
+ " --"OPT_FILE_PREFIX" Prefix for hugepage filenames\n"
+ " --"OPT_BASE_VIRTADDR" Base virtual address\n"
+ " --"OPT_CREATE_UIO_DEV" Create /dev/uioX (usually done by hotplug)\n"
+ " --"OPT_VFIO_INTR" Interrupt mode for VFIO (legacy|msi|msix)\n"
+ " --"OPT_XEN_DOM0" Support running on Xen dom0 without hugetlbfs\n"
"\n");
/* Allow the application to print its usage message too if hook is set */
if ( rte_application_usage_hook ) {
--
2.2.2
^ permalink raw reply [flat|nested] 16+ messages in thread
* [dpdk-dev] [PATCH 2/2] eal: add help option
2015-01-29 18:07 [dpdk-dev] [PATCH 0/2] help option Thomas Monjalon
2015-01-29 18:07 ` [dpdk-dev] [PATCH 1/2] eal: sort and align options lists Thomas Monjalon
@ 2015-01-29 18:07 ` Thomas Monjalon
2015-02-02 17:44 ` [dpdk-dev] [PATCH v2 0/2] " Thomas Monjalon
2 siblings, 0 replies; 16+ messages in thread
From: Thomas Monjalon @ 2015-01-29 18:07 UTC (permalink / raw)
To: dev
Help is printed with -h or --help.
Help is also printed for an unknown option.
This was broken since the rework of options.
Fixes: 489a9d6c9f77 ("merge bsd and linux common options parsing")
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
lib/librte_eal/bsdapp/eal/eal.c | 7 ++++++-
lib/librte_eal/common/eal_common_options.c | 3 +++
lib/librte_eal/common/eal_options.h | 2 ++
lib/librte_eal/linuxapp/eal/eal.c | 8 +++++++-
4 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c
index 69f3c03..ca2f445 100644
--- a/lib/librte_eal/bsdapp/eal/eal.c
+++ b/lib/librte_eal/bsdapp/eal/eal.c
@@ -326,8 +326,10 @@ eal_parse_args(int argc, char **argv)
int ret;
/* getopt is not happy, stop right now */
- if (opt == '?')
+ if (opt == '?') {
+ eal_usage(prgname);
return -1;
+ }
ret = eal_parse_common_option(opt, optarg, &internal_config);
/* common parser is not happy */
@@ -340,6 +342,9 @@ eal_parse_args(int argc, char **argv)
continue;
switch (opt) {
+ case 'h':
+ eal_usage(prgname);
+ exit(EXIT_SUCCESS);
default:
if (opt < OPT_LONG_MIN_NUM && isprint(opt)) {
RTE_LOG(ERR, EAL, "Option %c is not supported "
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 4890e78..05d80bd 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -57,6 +57,7 @@ eal_short_options[] =
"b:" /* pci-blacklist */
"c:" /* coremask */
"d:" /* driver */
+ "h" /* help */
"l:" /* corelist */
"m:" /* memory size */
"n:" /* memory channels */
@@ -70,6 +71,7 @@ eal_long_options[] = {
{OPT_BASE_VIRTADDR, 1, NULL, OPT_BASE_VIRTADDR_NUM },
{OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM },
{OPT_FILE_PREFIX, 1, NULL, OPT_FILE_PREFIX_NUM },
+ {OPT_HELP, 0, NULL, OPT_HELP_NUM },
{OPT_HUGE_DIR, 1, NULL, OPT_HUGE_DIR_NUM },
{OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM },
{OPT_MASTER_LCORE, 1, NULL, OPT_MASTER_LCORE_NUM },
@@ -605,6 +607,7 @@ eal_common_usage(void)
" --"OPT_SYSLOG" Set syslog facility\n"
" --"OPT_LOG_LEVEL" Set default log level\n"
" -v Display version information on startup\n"
+ " -h, --help This help\n"
"\nEAL options for DEBUG use only:\n"
" --"OPT_NO_HUGE" Use malloc instead of hugetlbfs\n"
" --"OPT_NO_PCI" Disable PCI\n"
diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h
index e476f8d..9536468 100644
--- a/lib/librte_eal/common/eal_options.h
+++ b/lib/librte_eal/common/eal_options.h
@@ -35,6 +35,8 @@
enum {
/* long options mapped to a short option */
+#define OPT_HELP "help"
+ OPT_HELP_NUM = 'h',
#define OPT_PCI_WHITELIST "pci-whitelist"
OPT_PCI_WHITELIST_NUM = 'w',
#define OPT_PCI_BLACKLIST "pci-blacklist"
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index e3955e7..d8c0628 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -520,8 +520,10 @@ eal_parse_args(int argc, char **argv)
int ret;
/* getopt is not happy, stop right now */
- if (opt == '?')
+ if (opt == '?') {
+ eal_usage(prgname);
return -1;
+ }
ret = eal_parse_common_option(opt, optarg, &internal_config);
/* common parser is not happy */
@@ -534,6 +536,10 @@ eal_parse_args(int argc, char **argv)
continue;
switch (opt) {
+ case 'h':
+ eal_usage(prgname);
+ exit(EXIT_SUCCESS);
+
/* force loading of external driver */
case 'd':
solib = malloc(sizeof(*solib));
--
2.2.2
^ permalink raw reply [flat|nested] 16+ messages in thread
* [dpdk-dev] [PATCH v2 0/2] help option
2015-01-29 18:07 [dpdk-dev] [PATCH 0/2] help option Thomas Monjalon
2015-01-29 18:07 ` [dpdk-dev] [PATCH 1/2] eal: sort and align options lists Thomas Monjalon
2015-01-29 18:07 ` [dpdk-dev] [PATCH 2/2] eal: add help option Thomas Monjalon
@ 2015-02-02 17:44 ` Thomas Monjalon
2015-02-02 17:44 ` [dpdk-dev] [PATCH v2 1/2] eal: sort and align options lists Thomas Monjalon
` (2 more replies)
2 siblings, 3 replies; 16+ messages in thread
From: Thomas Monjalon @ 2015-02-02 17:44 UTC (permalink / raw)
To: dev
This is a small reorganization of options.
The main goal is to provide a nice --help option.
changes in v2:
- sort also the options enum
Thomas Monjalon (2):
eal: sort and align options lists
eal: add help option
lib/librte_eal/bsdapp/eal/eal.c | 7 +-
lib/librte_eal/common/eal_common_options.c | 115 +++++++++++++++--------------
lib/librte_eal/common/eal_options.h | 64 ++++++++--------
lib/librte_eal/linuxapp/eal/eal.c | 27 ++++---
4 files changed, 113 insertions(+), 100 deletions(-)
--
2.2.2
^ permalink raw reply [flat|nested] 16+ messages in thread
* [dpdk-dev] [PATCH v2 1/2] eal: sort and align options lists
2015-02-02 17:44 ` [dpdk-dev] [PATCH v2 0/2] " Thomas Monjalon
@ 2015-02-02 17:44 ` Thomas Monjalon
2015-02-03 6:26 ` David Marchand
[not found] ` <1422899093-20207-3-git-send-email-thomas.monjalon@6wind.com>
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 0/2] " Thomas Monjalon
2 siblings, 1 reply; 16+ messages in thread
From: Thomas Monjalon @ 2015-02-02 17:44 UTC (permalink / raw)
To: dev
Options listing in usage help was a mess.
The main usage line is fixed and shorter.
The options in usage output are logically sorted (cpu/mem/dev/proc),
aligned and lightly reworded.
The options in declarations are alphabetically sorted.
Code in swith statement is not moved.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
changes in v2:
- sort and align options enum in .h
---
lib/librte_eal/common/eal_common_options.c | 112 ++++++++++++++---------------
lib/librte_eal/common/eal_options.h | 62 ++++++++--------
lib/librte_eal/linuxapp/eal/eal.c | 19 +++--
3 files changed, 95 insertions(+), 98 deletions(-)
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 67e02dc..4890e78 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -55,37 +55,38 @@
const char
eal_short_options[] =
"b:" /* pci-blacklist */
- "w:" /* pci-whitelist */
"c:" /* coremask */
- "d:"
+ "d:" /* driver */
"l:" /* corelist */
- "m:"
- "n:"
- "r:"
- "v";
+ "m:" /* memory size */
+ "n:" /* memory channels */
+ "r:" /* memory ranks */
+ "v" /* version */
+ "w:" /* pci-whitelist */
+ ;
const struct option
eal_long_options[] = {
- {OPT_HUGE_DIR, 1, 0, OPT_HUGE_DIR_NUM},
- {OPT_MASTER_LCORE, 1, 0, OPT_MASTER_LCORE_NUM},
- {OPT_PROC_TYPE, 1, 0, OPT_PROC_TYPE_NUM},
- {OPT_NO_SHCONF, 0, 0, OPT_NO_SHCONF_NUM},
- {OPT_NO_HPET, 0, 0, OPT_NO_HPET_NUM},
- {OPT_VMWARE_TSC_MAP, 0, 0, OPT_VMWARE_TSC_MAP_NUM},
- {OPT_NO_PCI, 0, 0, OPT_NO_PCI_NUM},
- {OPT_NO_HUGE, 0, 0, OPT_NO_HUGE_NUM},
- {OPT_FILE_PREFIX, 1, 0, OPT_FILE_PREFIX_NUM},
- {OPT_SOCKET_MEM, 1, 0, OPT_SOCKET_MEM_NUM},
- {OPT_PCI_WHITELIST, 1, 0, OPT_PCI_WHITELIST_NUM},
- {OPT_PCI_BLACKLIST, 1, 0, OPT_PCI_BLACKLIST_NUM},
- {OPT_VDEV, 1, 0, OPT_VDEV_NUM},
- {OPT_SYSLOG, 1, NULL, OPT_SYSLOG_NUM},
- {OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM},
- {OPT_BASE_VIRTADDR, 1, 0, OPT_BASE_VIRTADDR_NUM},
- {OPT_XEN_DOM0, 0, 0, OPT_XEN_DOM0_NUM},
- {OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM},
- {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM},
- {0, 0, 0, 0}
+ {OPT_BASE_VIRTADDR, 1, NULL, OPT_BASE_VIRTADDR_NUM },
+ {OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM },
+ {OPT_FILE_PREFIX, 1, NULL, OPT_FILE_PREFIX_NUM },
+ {OPT_HUGE_DIR, 1, NULL, OPT_HUGE_DIR_NUM },
+ {OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM },
+ {OPT_MASTER_LCORE, 1, NULL, OPT_MASTER_LCORE_NUM },
+ {OPT_NO_HPET, 0, NULL, OPT_NO_HPET_NUM },
+ {OPT_NO_HUGE, 0, NULL, OPT_NO_HUGE_NUM },
+ {OPT_NO_PCI, 0, NULL, OPT_NO_PCI_NUM },
+ {OPT_NO_SHCONF, 0, NULL, OPT_NO_SHCONF_NUM },
+ {OPT_PCI_BLACKLIST, 1, NULL, OPT_PCI_BLACKLIST_NUM },
+ {OPT_PCI_WHITELIST, 1, NULL, OPT_PCI_WHITELIST_NUM },
+ {OPT_PROC_TYPE, 1, NULL, OPT_PROC_TYPE_NUM },
+ {OPT_SOCKET_MEM, 1, NULL, OPT_SOCKET_MEM_NUM },
+ {OPT_SYSLOG, 1, NULL, OPT_SYSLOG_NUM },
+ {OPT_VDEV, 1, NULL, OPT_VDEV_NUM },
+ {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM },
+ {OPT_VMWARE_TSC_MAP, 0, NULL, OPT_VMWARE_TSC_MAP_NUM },
+ {OPT_XEN_DOM0, 0, NULL, OPT_XEN_DOM0_NUM },
+ {0, 0, NULL, 0 }
};
static int lcores_parsed;
@@ -578,37 +579,36 @@ eal_check_common_options(struct internal_config *internal_cfg)
void
eal_common_usage(void)
{
- printf("-c COREMASK -n NUM [-m NB] [-r NUM] [-b <domain:bus:devid.func>]"
- "[--proc-type primary|secondary|auto]\n\n"
+ printf("-c COREMASK|-l CORELIST -n CHANNELS [options]\n\n"
"EAL common options:\n"
- " -c COREMASK : A hexadecimal bitmask of cores to run on\n"
- " -l CORELIST : List of cores to run on\n"
- " The argument format is <c1>[-c2][,c3[-c4],...]\n"
- " where c1, c2, etc are core indexes between 0 and %d\n"
- " --"OPT_MASTER_LCORE" ID: Core ID that is used as master\n"
- " -n NUM : Number of memory channels\n"
- " -v : Display version information on startup\n"
- " -m MB : memory to allocate (see also --"OPT_SOCKET_MEM")\n"
- " -r NUM : force number of memory ranks (don't detect)\n"
- " --"OPT_SYSLOG" : set syslog facility\n"
- " --"OPT_LOG_LEVEL" : set default log level\n"
- " --"OPT_PROC_TYPE" : type of this process\n"
- " --"OPT_PCI_BLACKLIST", -b: add a PCI device in black list.\n"
- " Prevent EAL from using this PCI device. The argument\n"
- " format is <domain:bus:devid.func>.\n"
- " --"OPT_PCI_WHITELIST", -w: add a PCI device in white list.\n"
- " Only use the specified PCI devices. The argument format\n"
- " is <[domain:]bus:devid.func>. This option can be present\n"
- " several times (once per device).\n"
- " [NOTE: PCI whitelist cannot be used with -b option]\n"
- " --"OPT_VDEV": add a virtual device.\n"
- " The argument format is <driver><id>[,key=val,...]\n"
- " (ex: --vdev=eth_pcap0,iface=eth2).\n"
- " --"OPT_VMWARE_TSC_MAP": use VMware TSC map instead of native RDTSC\n"
+ " -c COREMASK Hexadecimal bitmask of cores to run on\n"
+ " -l CORELIST List of cores to run on\n"
+ " The argument format is <c1>[-c2][,c3[-c4],...]\n"
+ " where c1, c2, etc are core indexes between 0 and %d\n"
+ " --"OPT_MASTER_LCORE" ID Core ID that is used as master\n"
+ " -n NUM Number of memory channels\n"
+ " -m MB Memory to allocate (see also --"OPT_SOCKET_MEM")\n"
+ " -r NUM Force number of memory ranks (don't detect)\n"
+ " -b, --"OPT_PCI_BLACKLIST" Add a PCI device in black list.\n"
+ " Prevent EAL from using this PCI device. The argument\n"
+ " format is <domain:bus:devid.func>.\n"
+ " -w, --"OPT_PCI_WHITELIST" Add a PCI device in white list.\n"
+ " Only use the specified PCI devices. The argument format\n"
+ " is <[domain:]bus:devid.func>. This option can be present\n"
+ " several times (once per device).\n"
+ " [NOTE: PCI whitelist cannot be used with -b option]\n"
+ " --"OPT_VDEV" Add a virtual device.\n"
+ " The argument format is <driver><id>[,key=val,...]\n"
+ " (ex: --vdev=eth_pcap0,iface=eth2).\n"
+ " --"OPT_VMWARE_TSC_MAP" Use VMware TSC map instead of native RDTSC\n"
+ " --"OPT_PROC_TYPE" Type of this process (primary|secondary|auto)\n"
+ " --"OPT_SYSLOG" Set syslog facility\n"
+ " --"OPT_LOG_LEVEL" Set default log level\n"
+ " -v Display version information on startup\n"
"\nEAL options for DEBUG use only:\n"
- " --"OPT_NO_HUGE" : use malloc instead of hugetlbfs\n"
- " --"OPT_NO_PCI" : disable pci\n"
- " --"OPT_NO_HPET" : disable hpet\n"
- " --"OPT_NO_SHCONF": no shared config (mmap'd files)\n"
+ " --"OPT_NO_HUGE" Use malloc instead of hugetlbfs\n"
+ " --"OPT_NO_PCI" Disable PCI\n"
+ " --"OPT_NO_HPET" Disable HPET\n"
+ " --"OPT_NO_SHCONF" No shared config (mmap'd files)\n"
"\n", RTE_MAX_LCORE);
}
diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h
index e476f8d..fe1c85d 100644
--- a/lib/librte_eal/common/eal_options.h
+++ b/lib/librte_eal/common/eal_options.h
@@ -35,48 +35,48 @@
enum {
/* long options mapped to a short option */
-#define OPT_PCI_WHITELIST "pci-whitelist"
- OPT_PCI_WHITELIST_NUM = 'w',
-#define OPT_PCI_BLACKLIST "pci-blacklist"
- OPT_PCI_BLACKLIST_NUM = 'b',
+#define OPT_PCI_BLACKLIST "pci-blacklist"
+ OPT_PCI_BLACKLIST_NUM = 'b',
+#define OPT_PCI_WHITELIST "pci-whitelist"
+ OPT_PCI_WHITELIST_NUM = 'w',
/* first long only option value must be >= 256, so that we won't
* conflict with short options */
OPT_LONG_MIN_NUM = 256,
-#define OPT_HUGE_DIR "huge-dir"
- OPT_HUGE_DIR_NUM = OPT_LONG_MIN_NUM,
-#define OPT_MASTER_LCORE "master-lcore"
+#define OPT_BASE_VIRTADDR "base-virtaddr"
+ OPT_BASE_VIRTADDR_NUM,
+#define OPT_CREATE_UIO_DEV "create-uio-dev"
+ OPT_CREATE_UIO_DEV_NUM,
+#define OPT_FILE_PREFIX "file-prefix"
+ OPT_FILE_PREFIX_NUM,
+#define OPT_HUGE_DIR "huge-dir"
+ OPT_HUGE_DIR_NUM,
+#define OPT_LOG_LEVEL "log-level"
+ OPT_LOG_LEVEL_NUM,
+#define OPT_MASTER_LCORE "master-lcore"
OPT_MASTER_LCORE_NUM,
-#define OPT_PROC_TYPE "proc-type"
+#define OPT_PROC_TYPE "proc-type"
OPT_PROC_TYPE_NUM,
-#define OPT_NO_SHCONF "no-shconf"
- OPT_NO_SHCONF_NUM,
-#define OPT_NO_HPET "no-hpet"
+#define OPT_NO_HPET "no-hpet"
OPT_NO_HPET_NUM,
-#define OPT_VMWARE_TSC_MAP "vmware-tsc-map"
- OPT_VMWARE_TSC_MAP_NUM,
-#define OPT_NO_PCI "no-pci"
- OPT_NO_PCI_NUM,
-#define OPT_NO_HUGE "no-huge"
+#define OPT_NO_HUGE "no-huge"
OPT_NO_HUGE_NUM,
-#define OPT_FILE_PREFIX "file-prefix"
- OPT_FILE_PREFIX_NUM,
-#define OPT_SOCKET_MEM "socket-mem"
+#define OPT_NO_PCI "no-pci"
+ OPT_NO_PCI_NUM,
+#define OPT_NO_SHCONF "no-shconf"
+ OPT_NO_SHCONF_NUM,
+#define OPT_SOCKET_MEM "socket-mem"
OPT_SOCKET_MEM_NUM,
-#define OPT_VDEV "vdev"
- OPT_VDEV_NUM,
-#define OPT_SYSLOG "syslog"
+#define OPT_SYSLOG "syslog"
OPT_SYSLOG_NUM,
-#define OPT_LOG_LEVEL "log-level"
- OPT_LOG_LEVEL_NUM,
-#define OPT_BASE_VIRTADDR "base-virtaddr"
- OPT_BASE_VIRTADDR_NUM,
-#define OPT_XEN_DOM0 "xen-dom0"
- OPT_XEN_DOM0_NUM,
-#define OPT_CREATE_UIO_DEV "create-uio-dev"
- OPT_CREATE_UIO_DEV_NUM,
-#define OPT_VFIO_INTR "vfio-intr"
+#define OPT_VDEV "vdev"
+ OPT_VDEV_NUM,
+#define OPT_VFIO_INTR "vfio-intr"
OPT_VFIO_INTR_NUM,
+#define OPT_VMWARE_TSC_MAP "vmware-tsc-map"
+ OPT_VMWARE_TSC_MAP_NUM,
+#define OPT_XEN_DOM0 "xen-dom0"
+ OPT_XEN_DOM0_NUM,
OPT_LONG_MAX_NUM
};
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index f99e158..e3955e7 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -352,17 +352,14 @@ eal_usage(const char *prgname)
printf("\nUsage: %s ", prgname);
eal_common_usage();
printf("EAL Linux options:\n"
- " -d LIB.so : add driver (can be used multiple times)\n"
- " --"OPT_XEN_DOM0" : support application running on Xen Domain0 "
- "without hugetlbfs\n"
- " --"OPT_SOCKET_MEM" : memory to allocate on specific\n"
- " sockets (use comma separated values)\n"
- " --"OPT_HUGE_DIR" : directory where hugetlbfs is mounted\n"
- " --"OPT_FILE_PREFIX": prefix for hugepage filenames\n"
- " --"OPT_BASE_VIRTADDR": specify base virtual address\n"
- " --"OPT_VFIO_INTR": specify desired interrupt mode for VFIO "
- "(legacy|msi|msix)\n"
- " --"OPT_CREATE_UIO_DEV": create /dev/uioX (usually done by hotplug)\n"
+ " -d LIB.so Add driver (can be used multiple times)\n"
+ " --"OPT_SOCKET_MEM" Memory to allocate on sockets (comma separated values)\n"
+ " --"OPT_HUGE_DIR" Directory where hugetlbfs is mounted\n"
+ " --"OPT_FILE_PREFIX" Prefix for hugepage filenames\n"
+ " --"OPT_BASE_VIRTADDR" Base virtual address\n"
+ " --"OPT_CREATE_UIO_DEV" Create /dev/uioX (usually done by hotplug)\n"
+ " --"OPT_VFIO_INTR" Interrupt mode for VFIO (legacy|msi|msix)\n"
+ " --"OPT_XEN_DOM0" Support running on Xen dom0 without hugetlbfs\n"
"\n");
/* Allow the application to print its usage message too if hook is set */
if ( rte_application_usage_hook ) {
--
2.2.2
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/2] eal: sort and align options lists
2015-02-02 17:44 ` [dpdk-dev] [PATCH v2 1/2] eal: sort and align options lists Thomas Monjalon
@ 2015-02-03 6:26 ` David Marchand
2015-02-03 8:27 ` Thomas Monjalon
0 siblings, 1 reply; 16+ messages in thread
From: David Marchand @ 2015-02-03 6:26 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
Two little comments.
On Mon, Feb 2, 2015 at 6:44 PM, Thomas Monjalon <thomas.monjalon@6wind.com>
wrote:
> @@ -578,37 +579,36 @@ eal_check_common_options(struct internal_config
> *internal_cfg)
> void
> eal_common_usage(void)
> {
> - printf("-c COREMASK -n NUM [-m NB] [-r NUM] [-b
> <domain:bus:devid.func>]"
> - "[--proc-type primary|secondary|auto]\n\n"
> + printf("-c COREMASK|-l CORELIST -n CHANNELS [options]\n\n"
> "EAL common options:\n"
> - " -c COREMASK : A hexadecimal bitmask of cores to run
> on\n"
> - " -l CORELIST : List of cores to run on\n"
> - " The argument format is
> <c1>[-c2][,c3[-c4],...]\n"
>
[snip]
>
> + " -n NUM Number of memory channels\n"
>
Not really a problem, but for consistency : here, you are talking about
NUM, while at first, you wrote -n CHANNELS.
[snip]
> /* first long only option value must be >= 256, so that we won't
> * conflict with short options */
> OPT_LONG_MIN_NUM = 256,
> -#define OPT_HUGE_DIR "huge-dir"
> - OPT_HUGE_DIR_NUM = OPT_LONG_MIN_NUM,
> -#define OPT_MASTER_LCORE "master-lcore"
> +#define OPT_BASE_VIRTADDR "base-virtaddr"
> + OPT_BASE_VIRTADDR_NUM,
>
Why skip the first entry ?
Afaik, OPT_BASE_VIRTADDR_NUM will be set to 257, is it to avoid having this
= OPT_LONG_MIN_NUM moved anytime we add a new long option at the top of the
enum ?
The rest looks good to me.
Acked-by: David Marchand <david.marchand@6wind.com>
--
David Marchand
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/2] eal: add help option
[not found] ` <1422899093-20207-3-git-send-email-thomas.monjalon@6wind.com>
@ 2015-02-03 6:33 ` David Marchand
2015-02-03 8:20 ` Thomas Monjalon
0 siblings, 1 reply; 16+ messages in thread
From: David Marchand @ 2015-02-03 6:33 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
On Mon, Feb 2, 2015 at 6:44 PM, Thomas Monjalon <thomas.monjalon@6wind.com>
wrote:
[snip]
> @@ -340,6 +342,9 @@ eal_parse_args(int argc, char **argv)
> continue;
>
> switch (opt) {
> + case 'h':
> + eal_usage(prgname);
> + exit(EXIT_SUCCESS);
> default:
> if (opt < OPT_LONG_MIN_NUM && isprint(opt)) {
> RTE_LOG(ERR, EAL, "Option %c is not
> supported "
>
[snip]
> @@ -534,6 +536,10 @@ eal_parse_args(int argc, char **argv)
> continue;
>
> switch (opt) {
> + case 'h':
> + eal_usage(prgname);
> + exit(EXIT_SUCCESS);
> +
> /* force loading of external driver */
> case 'd':
> solib = malloc(sizeof(*solib));
>
Why not move those two in common parser ?
--
David Marchand
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/2] eal: add help option
2015-02-03 6:33 ` [dpdk-dev] [PATCH v2 2/2] eal: add help option David Marchand
@ 2015-02-03 8:20 ` Thomas Monjalon
2015-02-03 9:07 ` David Marchand
0 siblings, 1 reply; 16+ messages in thread
From: Thomas Monjalon @ 2015-02-03 8:20 UTC (permalink / raw)
To: David Marchand; +Cc: dev
2015-02-03 07:33, David Marchand:
> On Mon, Feb 2, 2015 at 6:44 PM, Thomas Monjalon <thomas.monjalon@6wind.com>
> wrote:
> [snip]
> > @@ -340,6 +342,9 @@ eal_parse_args(int argc, char **argv)
> > continue;
> >
> > switch (opt) {
> > + case 'h':
> > + eal_usage(prgname);
> > + exit(EXIT_SUCCESS);
> > default:
> > if (opt < OPT_LONG_MIN_NUM && isprint(opt)) {
> > RTE_LOG(ERR, EAL, "Option %c is not supported "
> [snip]
> > @@ -534,6 +536,10 @@ eal_parse_args(int argc, char **argv)
> > continue;
> >
> > switch (opt) {
> > + case 'h':
> > + eal_usage(prgname);
> > + exit(EXIT_SUCCESS);
> > +
> > /* force loading of external driver */
> > case 'd':
> > solib = malloc(sizeof(*solib));
>
> Why not move those two in common parser ?
Because it's calling eal_usage() which is not callable from common parser.
eal_usage() print usage for common and environment-specific options.
--
Thomas
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/2] eal: sort and align options lists
2015-02-03 6:26 ` David Marchand
@ 2015-02-03 8:27 ` Thomas Monjalon
0 siblings, 0 replies; 16+ messages in thread
From: Thomas Monjalon @ 2015-02-03 8:27 UTC (permalink / raw)
To: David Marchand; +Cc: dev
2015-02-03 07:26, David Marchand:
> Two little comments.
>
> On Mon, Feb 2, 2015 at 6:44 PM, Thomas Monjalon <thomas.monjalon@6wind.com>
> wrote:
> > @@ -578,37 +579,36 @@ eal_check_common_options(struct internal_config
> > *internal_cfg)
> > void
> > eal_common_usage(void)
> > {
> > - printf("-c COREMASK -n NUM [-m NB] [-r NUM] [-b <domain:bus:devid.func>]"
> > - "[--proc-type primary|secondary|auto]\n\n"
> > + printf("-c COREMASK|-l CORELIST -n CHANNELS [options]\n\n"
> > "EAL common options:\n"
> > - " -c COREMASK : A hexadecimal bitmask of cores to run on\n"
> > - " -l CORELIST : List of cores to run on\n"
> > - " The argument format is <c1>[-c2][,c3[-c4],...]\n"
> [snip]
> > + " -n NUM Number of memory channels\n"
>
> Not really a problem, but for consistency : here, you are talking about
> NUM, while at first, you wrote -n CHANNELS.
Yes you're right. I changed headline but not the description of this option.
Will do.
> [snip]
> > /* first long only option value must be >= 256, so that we won't
> > * conflict with short options */
> > OPT_LONG_MIN_NUM = 256,
> > -#define OPT_HUGE_DIR "huge-dir"
> > - OPT_HUGE_DIR_NUM = OPT_LONG_MIN_NUM,
> > -#define OPT_MASTER_LCORE "master-lcore"
> > +#define OPT_BASE_VIRTADDR "base-virtaddr"
> > + OPT_BASE_VIRTADDR_NUM,
>
> Why skip the first entry ?
> Afaik, OPT_BASE_VIRTADDR_NUM will be set to 257, is it to avoid having this
> = OPT_LONG_MIN_NUM moved anytime we add a new long option at the top of the
> enum ?
Exactly, yes. I think we don't care what is the first number.
It doesn't deserve a painful assignment.
> The rest looks good to me.
> Acked-by: David Marchand <david.marchand@6wind.com>
Thanks
--
Thomas
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/2] eal: add help option
2015-02-03 8:20 ` Thomas Monjalon
@ 2015-02-03 9:07 ` David Marchand
0 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2015-02-03 9:07 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
On Tue, Feb 3, 2015 at 9:20 AM, Thomas Monjalon <thomas.monjalon@6wind.com>
wrote:
> 2015-02-03 07:33, David Marchand:
> > On Mon, Feb 2, 2015 at 6:44 PM, Thomas Monjalon <
> thomas.monjalon@6wind.com>
> > wrote:
> > [snip]
> > > @@ -340,6 +342,9 @@ eal_parse_args(int argc, char **argv)
> > > continue;
> > >
> > > switch (opt) {
> > > + case 'h':
> > > + eal_usage(prgname);
> > > + exit(EXIT_SUCCESS);
> > > default:
> > > if (opt < OPT_LONG_MIN_NUM && isprint(opt)) {
> > > RTE_LOG(ERR, EAL, "Option %c is not
> supported "
> > [snip]
> > > @@ -534,6 +536,10 @@ eal_parse_args(int argc, char **argv)
> > > continue;
> > >
> > > switch (opt) {
> > > + case 'h':
> > > + eal_usage(prgname);
> > > + exit(EXIT_SUCCESS);
> > > +
> > > /* force loading of external driver */
> > > case 'd':
> > > solib = malloc(sizeof(*solib));
> >
> > Why not move those two in common parser ?
>
> Because it's calling eal_usage() which is not callable from common parser.
> eal_usage() print usage for common and environment-specific options.
>
Oh right ...
Then, I suppose it is fine like this.
Acked-by: David Marchand <david.marchand@6wind.com>
--
David Marchand
^ permalink raw reply [flat|nested] 16+ messages in thread
* [dpdk-dev] [PATCH v3 0/2] help option
2015-02-02 17:44 ` [dpdk-dev] [PATCH v2 0/2] " Thomas Monjalon
2015-02-02 17:44 ` [dpdk-dev] [PATCH v2 1/2] eal: sort and align options lists Thomas Monjalon
[not found] ` <1422899093-20207-3-git-send-email-thomas.monjalon@6wind.com>
@ 2015-02-12 16:47 ` Thomas Monjalon
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 1/2] eal: sort and align options lists Thomas Monjalon
` (3 more replies)
2 siblings, 4 replies; 16+ messages in thread
From: Thomas Monjalon @ 2015-02-12 16:47 UTC (permalink / raw)
To: dev
This is a small reorganization of options.
The main goal is to provide a nice --help option.
changes in v3:
- reword arguments in usage
changes in v2:
- sort also the options enum
Thomas Monjalon (2):
eal: sort and align options lists
eal: add help option
lib/librte_eal/bsdapp/eal/eal.c | 7 +-
lib/librte_eal/common/eal_common_options.c | 115 +++++++++++++++--------------
lib/librte_eal/common/eal_options.h | 64 ++++++++--------
lib/librte_eal/linuxapp/eal/eal.c | 27 ++++---
4 files changed, 113 insertions(+), 100 deletions(-)
--
2.2.2
^ permalink raw reply [flat|nested] 16+ messages in thread
* [dpdk-dev] [PATCH v3 1/2] eal: sort and align options lists
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 0/2] " Thomas Monjalon
@ 2015-02-12 16:47 ` Thomas Monjalon
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 2/2] eal: add help option Thomas Monjalon
` (2 subsequent siblings)
3 siblings, 0 replies; 16+ messages in thread
From: Thomas Monjalon @ 2015-02-12 16:47 UTC (permalink / raw)
To: dev
Options listing in usage help was a mess.
The main usage line is fixed and shorter.
The options in usage output are logically sorted (cpu/mem/dev/proc),
aligned and lightly reworded.
The options in declarations are alphabetically sorted.
Code in swith statement is not moved.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
changes in v3:
- reword arguments in usage
changes in v2:
- sort and align options enum in .h
---
lib/librte_eal/common/eal_common_options.c | 112 ++++++++++++++---------------
lib/librte_eal/common/eal_options.h | 62 ++++++++--------
lib/librte_eal/linuxapp/eal/eal.c | 19 +++--
3 files changed, 95 insertions(+), 98 deletions(-)
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 67e02dc..3dda237 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -55,37 +55,38 @@
const char
eal_short_options[] =
"b:" /* pci-blacklist */
- "w:" /* pci-whitelist */
"c:" /* coremask */
- "d:"
+ "d:" /* driver */
"l:" /* corelist */
- "m:"
- "n:"
- "r:"
- "v";
+ "m:" /* memory size */
+ "n:" /* memory channels */
+ "r:" /* memory ranks */
+ "v" /* version */
+ "w:" /* pci-whitelist */
+ ;
const struct option
eal_long_options[] = {
- {OPT_HUGE_DIR, 1, 0, OPT_HUGE_DIR_NUM},
- {OPT_MASTER_LCORE, 1, 0, OPT_MASTER_LCORE_NUM},
- {OPT_PROC_TYPE, 1, 0, OPT_PROC_TYPE_NUM},
- {OPT_NO_SHCONF, 0, 0, OPT_NO_SHCONF_NUM},
- {OPT_NO_HPET, 0, 0, OPT_NO_HPET_NUM},
- {OPT_VMWARE_TSC_MAP, 0, 0, OPT_VMWARE_TSC_MAP_NUM},
- {OPT_NO_PCI, 0, 0, OPT_NO_PCI_NUM},
- {OPT_NO_HUGE, 0, 0, OPT_NO_HUGE_NUM},
- {OPT_FILE_PREFIX, 1, 0, OPT_FILE_PREFIX_NUM},
- {OPT_SOCKET_MEM, 1, 0, OPT_SOCKET_MEM_NUM},
- {OPT_PCI_WHITELIST, 1, 0, OPT_PCI_WHITELIST_NUM},
- {OPT_PCI_BLACKLIST, 1, 0, OPT_PCI_BLACKLIST_NUM},
- {OPT_VDEV, 1, 0, OPT_VDEV_NUM},
- {OPT_SYSLOG, 1, NULL, OPT_SYSLOG_NUM},
- {OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM},
- {OPT_BASE_VIRTADDR, 1, 0, OPT_BASE_VIRTADDR_NUM},
- {OPT_XEN_DOM0, 0, 0, OPT_XEN_DOM0_NUM},
- {OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM},
- {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM},
- {0, 0, 0, 0}
+ {OPT_BASE_VIRTADDR, 1, NULL, OPT_BASE_VIRTADDR_NUM },
+ {OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM },
+ {OPT_FILE_PREFIX, 1, NULL, OPT_FILE_PREFIX_NUM },
+ {OPT_HUGE_DIR, 1, NULL, OPT_HUGE_DIR_NUM },
+ {OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM },
+ {OPT_MASTER_LCORE, 1, NULL, OPT_MASTER_LCORE_NUM },
+ {OPT_NO_HPET, 0, NULL, OPT_NO_HPET_NUM },
+ {OPT_NO_HUGE, 0, NULL, OPT_NO_HUGE_NUM },
+ {OPT_NO_PCI, 0, NULL, OPT_NO_PCI_NUM },
+ {OPT_NO_SHCONF, 0, NULL, OPT_NO_SHCONF_NUM },
+ {OPT_PCI_BLACKLIST, 1, NULL, OPT_PCI_BLACKLIST_NUM },
+ {OPT_PCI_WHITELIST, 1, NULL, OPT_PCI_WHITELIST_NUM },
+ {OPT_PROC_TYPE, 1, NULL, OPT_PROC_TYPE_NUM },
+ {OPT_SOCKET_MEM, 1, NULL, OPT_SOCKET_MEM_NUM },
+ {OPT_SYSLOG, 1, NULL, OPT_SYSLOG_NUM },
+ {OPT_VDEV, 1, NULL, OPT_VDEV_NUM },
+ {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM },
+ {OPT_VMWARE_TSC_MAP, 0, NULL, OPT_VMWARE_TSC_MAP_NUM },
+ {OPT_XEN_DOM0, 0, NULL, OPT_XEN_DOM0_NUM },
+ {0, 0, NULL, 0 }
};
static int lcores_parsed;
@@ -578,37 +579,36 @@ eal_check_common_options(struct internal_config *internal_cfg)
void
eal_common_usage(void)
{
- printf("-c COREMASK -n NUM [-m NB] [-r NUM] [-b <domain:bus:devid.func>]"
- "[--proc-type primary|secondary|auto]\n\n"
+ printf("-c COREMASK|-l CORELIST -n CHANNELS [options]\n\n"
"EAL common options:\n"
- " -c COREMASK : A hexadecimal bitmask of cores to run on\n"
- " -l CORELIST : List of cores to run on\n"
- " The argument format is <c1>[-c2][,c3[-c4],...]\n"
- " where c1, c2, etc are core indexes between 0 and %d\n"
- " --"OPT_MASTER_LCORE" ID: Core ID that is used as master\n"
- " -n NUM : Number of memory channels\n"
- " -v : Display version information on startup\n"
- " -m MB : memory to allocate (see also --"OPT_SOCKET_MEM")\n"
- " -r NUM : force number of memory ranks (don't detect)\n"
- " --"OPT_SYSLOG" : set syslog facility\n"
- " --"OPT_LOG_LEVEL" : set default log level\n"
- " --"OPT_PROC_TYPE" : type of this process\n"
- " --"OPT_PCI_BLACKLIST", -b: add a PCI device in black list.\n"
- " Prevent EAL from using this PCI device. The argument\n"
- " format is <domain:bus:devid.func>.\n"
- " --"OPT_PCI_WHITELIST", -w: add a PCI device in white list.\n"
- " Only use the specified PCI devices. The argument format\n"
- " is <[domain:]bus:devid.func>. This option can be present\n"
- " several times (once per device).\n"
- " [NOTE: PCI whitelist cannot be used with -b option]\n"
- " --"OPT_VDEV": add a virtual device.\n"
- " The argument format is <driver><id>[,key=val,...]\n"
- " (ex: --vdev=eth_pcap0,iface=eth2).\n"
- " --"OPT_VMWARE_TSC_MAP": use VMware TSC map instead of native RDTSC\n"
+ " -c COREMASK Hexadecimal bitmask of cores to run on\n"
+ " -l CORELIST List of cores to run on\n"
+ " The argument format is <c1>[-c2][,c3[-c4],...]\n"
+ " where c1, c2, etc are core indexes between 0 and %d\n"
+ " --"OPT_MASTER_LCORE" ID Core ID that is used as master\n"
+ " -n CHANNELS Number of memory channels\n"
+ " -m MB Memory to allocate (see also --"OPT_SOCKET_MEM")\n"
+ " -r RANKS Force number of memory ranks (don't detect)\n"
+ " -b, --"OPT_PCI_BLACKLIST" Add a PCI device in black list.\n"
+ " Prevent EAL from using this PCI device. The argument\n"
+ " format is <domain:bus:devid.func>.\n"
+ " -w, --"OPT_PCI_WHITELIST" Add a PCI device in white list.\n"
+ " Only use the specified PCI devices. The argument format\n"
+ " is <[domain:]bus:devid.func>. This option can be present\n"
+ " several times (once per device).\n"
+ " [NOTE: PCI whitelist cannot be used with -b option]\n"
+ " --"OPT_VDEV" Add a virtual device.\n"
+ " The argument format is <driver><id>[,key=val,...]\n"
+ " (ex: --vdev=eth_pcap0,iface=eth2).\n"
+ " --"OPT_VMWARE_TSC_MAP" Use VMware TSC map instead of native RDTSC\n"
+ " --"OPT_PROC_TYPE" Type of this process (primary|secondary|auto)\n"
+ " --"OPT_SYSLOG" Set syslog facility\n"
+ " --"OPT_LOG_LEVEL" Set default log level\n"
+ " -v Display version information on startup\n"
"\nEAL options for DEBUG use only:\n"
- " --"OPT_NO_HUGE" : use malloc instead of hugetlbfs\n"
- " --"OPT_NO_PCI" : disable pci\n"
- " --"OPT_NO_HPET" : disable hpet\n"
- " --"OPT_NO_SHCONF": no shared config (mmap'd files)\n"
+ " --"OPT_NO_HUGE" Use malloc instead of hugetlbfs\n"
+ " --"OPT_NO_PCI" Disable PCI\n"
+ " --"OPT_NO_HPET" Disable HPET\n"
+ " --"OPT_NO_SHCONF" No shared config (mmap'd files)\n"
"\n", RTE_MAX_LCORE);
}
diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h
index e476f8d..fe1c85d 100644
--- a/lib/librte_eal/common/eal_options.h
+++ b/lib/librte_eal/common/eal_options.h
@@ -35,48 +35,48 @@
enum {
/* long options mapped to a short option */
-#define OPT_PCI_WHITELIST "pci-whitelist"
- OPT_PCI_WHITELIST_NUM = 'w',
-#define OPT_PCI_BLACKLIST "pci-blacklist"
- OPT_PCI_BLACKLIST_NUM = 'b',
+#define OPT_PCI_BLACKLIST "pci-blacklist"
+ OPT_PCI_BLACKLIST_NUM = 'b',
+#define OPT_PCI_WHITELIST "pci-whitelist"
+ OPT_PCI_WHITELIST_NUM = 'w',
/* first long only option value must be >= 256, so that we won't
* conflict with short options */
OPT_LONG_MIN_NUM = 256,
-#define OPT_HUGE_DIR "huge-dir"
- OPT_HUGE_DIR_NUM = OPT_LONG_MIN_NUM,
-#define OPT_MASTER_LCORE "master-lcore"
+#define OPT_BASE_VIRTADDR "base-virtaddr"
+ OPT_BASE_VIRTADDR_NUM,
+#define OPT_CREATE_UIO_DEV "create-uio-dev"
+ OPT_CREATE_UIO_DEV_NUM,
+#define OPT_FILE_PREFIX "file-prefix"
+ OPT_FILE_PREFIX_NUM,
+#define OPT_HUGE_DIR "huge-dir"
+ OPT_HUGE_DIR_NUM,
+#define OPT_LOG_LEVEL "log-level"
+ OPT_LOG_LEVEL_NUM,
+#define OPT_MASTER_LCORE "master-lcore"
OPT_MASTER_LCORE_NUM,
-#define OPT_PROC_TYPE "proc-type"
+#define OPT_PROC_TYPE "proc-type"
OPT_PROC_TYPE_NUM,
-#define OPT_NO_SHCONF "no-shconf"
- OPT_NO_SHCONF_NUM,
-#define OPT_NO_HPET "no-hpet"
+#define OPT_NO_HPET "no-hpet"
OPT_NO_HPET_NUM,
-#define OPT_VMWARE_TSC_MAP "vmware-tsc-map"
- OPT_VMWARE_TSC_MAP_NUM,
-#define OPT_NO_PCI "no-pci"
- OPT_NO_PCI_NUM,
-#define OPT_NO_HUGE "no-huge"
+#define OPT_NO_HUGE "no-huge"
OPT_NO_HUGE_NUM,
-#define OPT_FILE_PREFIX "file-prefix"
- OPT_FILE_PREFIX_NUM,
-#define OPT_SOCKET_MEM "socket-mem"
+#define OPT_NO_PCI "no-pci"
+ OPT_NO_PCI_NUM,
+#define OPT_NO_SHCONF "no-shconf"
+ OPT_NO_SHCONF_NUM,
+#define OPT_SOCKET_MEM "socket-mem"
OPT_SOCKET_MEM_NUM,
-#define OPT_VDEV "vdev"
- OPT_VDEV_NUM,
-#define OPT_SYSLOG "syslog"
+#define OPT_SYSLOG "syslog"
OPT_SYSLOG_NUM,
-#define OPT_LOG_LEVEL "log-level"
- OPT_LOG_LEVEL_NUM,
-#define OPT_BASE_VIRTADDR "base-virtaddr"
- OPT_BASE_VIRTADDR_NUM,
-#define OPT_XEN_DOM0 "xen-dom0"
- OPT_XEN_DOM0_NUM,
-#define OPT_CREATE_UIO_DEV "create-uio-dev"
- OPT_CREATE_UIO_DEV_NUM,
-#define OPT_VFIO_INTR "vfio-intr"
+#define OPT_VDEV "vdev"
+ OPT_VDEV_NUM,
+#define OPT_VFIO_INTR "vfio-intr"
OPT_VFIO_INTR_NUM,
+#define OPT_VMWARE_TSC_MAP "vmware-tsc-map"
+ OPT_VMWARE_TSC_MAP_NUM,
+#define OPT_XEN_DOM0 "xen-dom0"
+ OPT_XEN_DOM0_NUM,
OPT_LONG_MAX_NUM
};
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index f99e158..e3955e7 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -352,17 +352,14 @@ eal_usage(const char *prgname)
printf("\nUsage: %s ", prgname);
eal_common_usage();
printf("EAL Linux options:\n"
- " -d LIB.so : add driver (can be used multiple times)\n"
- " --"OPT_XEN_DOM0" : support application running on Xen Domain0 "
- "without hugetlbfs\n"
- " --"OPT_SOCKET_MEM" : memory to allocate on specific\n"
- " sockets (use comma separated values)\n"
- " --"OPT_HUGE_DIR" : directory where hugetlbfs is mounted\n"
- " --"OPT_FILE_PREFIX": prefix for hugepage filenames\n"
- " --"OPT_BASE_VIRTADDR": specify base virtual address\n"
- " --"OPT_VFIO_INTR": specify desired interrupt mode for VFIO "
- "(legacy|msi|msix)\n"
- " --"OPT_CREATE_UIO_DEV": create /dev/uioX (usually done by hotplug)\n"
+ " -d LIB.so Add driver (can be used multiple times)\n"
+ " --"OPT_SOCKET_MEM" Memory to allocate on sockets (comma separated values)\n"
+ " --"OPT_HUGE_DIR" Directory where hugetlbfs is mounted\n"
+ " --"OPT_FILE_PREFIX" Prefix for hugepage filenames\n"
+ " --"OPT_BASE_VIRTADDR" Base virtual address\n"
+ " --"OPT_CREATE_UIO_DEV" Create /dev/uioX (usually done by hotplug)\n"
+ " --"OPT_VFIO_INTR" Interrupt mode for VFIO (legacy|msi|msix)\n"
+ " --"OPT_XEN_DOM0" Support running on Xen dom0 without hugetlbfs\n"
"\n");
/* Allow the application to print its usage message too if hook is set */
if ( rte_application_usage_hook ) {
--
2.2.2
^ permalink raw reply [flat|nested] 16+ messages in thread
* [dpdk-dev] [PATCH v3 2/2] eal: add help option
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 0/2] " Thomas Monjalon
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 1/2] eal: sort and align options lists Thomas Monjalon
@ 2015-02-12 16:47 ` Thomas Monjalon
2015-02-13 10:50 ` [dpdk-dev] [PATCH v3 0/2] " David Marchand
2015-02-13 12:57 ` Neil Horman
3 siblings, 0 replies; 16+ messages in thread
From: Thomas Monjalon @ 2015-02-12 16:47 UTC (permalink / raw)
To: dev
Help is printed with -h or --help.
Help is also printed for an unknown option.
This was broken since the rework of options.
Fixes: 489a9d6c9f77 ("merge bsd and linux common options parsing")
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: David Marchand <david.marchand@6wind.com>
---
lib/librte_eal/bsdapp/eal/eal.c | 7 ++++++-
lib/librte_eal/common/eal_common_options.c | 3 +++
lib/librte_eal/common/eal_options.h | 2 ++
lib/librte_eal/linuxapp/eal/eal.c | 8 +++++++-
4 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c
index 69f3c03..ca2f445 100644
--- a/lib/librte_eal/bsdapp/eal/eal.c
+++ b/lib/librte_eal/bsdapp/eal/eal.c
@@ -326,8 +326,10 @@ eal_parse_args(int argc, char **argv)
int ret;
/* getopt is not happy, stop right now */
- if (opt == '?')
+ if (opt == '?') {
+ eal_usage(prgname);
return -1;
+ }
ret = eal_parse_common_option(opt, optarg, &internal_config);
/* common parser is not happy */
@@ -340,6 +342,9 @@ eal_parse_args(int argc, char **argv)
continue;
switch (opt) {
+ case 'h':
+ eal_usage(prgname);
+ exit(EXIT_SUCCESS);
default:
if (opt < OPT_LONG_MIN_NUM && isprint(opt)) {
RTE_LOG(ERR, EAL, "Option %c is not supported "
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 3dda237..4314e4e 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -57,6 +57,7 @@ eal_short_options[] =
"b:" /* pci-blacklist */
"c:" /* coremask */
"d:" /* driver */
+ "h" /* help */
"l:" /* corelist */
"m:" /* memory size */
"n:" /* memory channels */
@@ -70,6 +71,7 @@ eal_long_options[] = {
{OPT_BASE_VIRTADDR, 1, NULL, OPT_BASE_VIRTADDR_NUM },
{OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM },
{OPT_FILE_PREFIX, 1, NULL, OPT_FILE_PREFIX_NUM },
+ {OPT_HELP, 0, NULL, OPT_HELP_NUM },
{OPT_HUGE_DIR, 1, NULL, OPT_HUGE_DIR_NUM },
{OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM },
{OPT_MASTER_LCORE, 1, NULL, OPT_MASTER_LCORE_NUM },
@@ -605,6 +607,7 @@ eal_common_usage(void)
" --"OPT_SYSLOG" Set syslog facility\n"
" --"OPT_LOG_LEVEL" Set default log level\n"
" -v Display version information on startup\n"
+ " -h, --help This help\n"
"\nEAL options for DEBUG use only:\n"
" --"OPT_NO_HUGE" Use malloc instead of hugetlbfs\n"
" --"OPT_NO_PCI" Disable PCI\n"
diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h
index fe1c85d..d199a00 100644
--- a/lib/librte_eal/common/eal_options.h
+++ b/lib/librte_eal/common/eal_options.h
@@ -35,6 +35,8 @@
enum {
/* long options mapped to a short option */
+#define OPT_HELP "help"
+ OPT_HELP_NUM = 'h',
#define OPT_PCI_BLACKLIST "pci-blacklist"
OPT_PCI_BLACKLIST_NUM = 'b',
#define OPT_PCI_WHITELIST "pci-whitelist"
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index e3955e7..d8c0628 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -520,8 +520,10 @@ eal_parse_args(int argc, char **argv)
int ret;
/* getopt is not happy, stop right now */
- if (opt == '?')
+ if (opt == '?') {
+ eal_usage(prgname);
return -1;
+ }
ret = eal_parse_common_option(opt, optarg, &internal_config);
/* common parser is not happy */
@@ -534,6 +536,10 @@ eal_parse_args(int argc, char **argv)
continue;
switch (opt) {
+ case 'h':
+ eal_usage(prgname);
+ exit(EXIT_SUCCESS);
+
/* force loading of external driver */
case 'd':
solib = malloc(sizeof(*solib));
--
2.2.2
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [dpdk-dev] [PATCH v3 0/2] help option
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 0/2] " Thomas Monjalon
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 1/2] eal: sort and align options lists Thomas Monjalon
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 2/2] eal: add help option Thomas Monjalon
@ 2015-02-13 10:50 ` David Marchand
2015-02-24 11:09 ` Thomas Monjalon
2015-02-13 12:57 ` Neil Horman
3 siblings, 1 reply; 16+ messages in thread
From: David Marchand @ 2015-02-13 10:50 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
On Thu, Feb 12, 2015 at 5:47 PM, Thomas Monjalon <thomas.monjalon@6wind.com>
wrote:
> This is a small reorganization of options.
> The main goal is to provide a nice --help option.
>
> changes in v3:
> - reword arguments in usage
> changes in v2:
> - sort also the options enum
>
> Thomas Monjalon (2):
> eal: sort and align options lists
> eal: add help option
>
> lib/librte_eal/bsdapp/eal/eal.c | 7 +-
> lib/librte_eal/common/eal_common_options.c | 115
> +++++++++++++++--------------
> lib/librte_eal/common/eal_options.h | 64 ++++++++--------
> lib/librte_eal/linuxapp/eal/eal.c | 27 ++++---
> 4 files changed, 113 insertions(+), 100 deletions(-)
>
Series
Acked-by: David Marchand <david.marchand@6wind.com>
--
David Marchand
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [dpdk-dev] [PATCH v3 0/2] help option
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 0/2] " Thomas Monjalon
` (2 preceding siblings ...)
2015-02-13 10:50 ` [dpdk-dev] [PATCH v3 0/2] " David Marchand
@ 2015-02-13 12:57 ` Neil Horman
3 siblings, 0 replies; 16+ messages in thread
From: Neil Horman @ 2015-02-13 12:57 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
On Thu, Feb 12, 2015 at 05:47:55PM +0100, Thomas Monjalon wrote:
> This is a small reorganization of options.
> The main goal is to provide a nice --help option.
>
> changes in v3:
> - reword arguments in usage
> changes in v2:
> - sort also the options enum
>
> Thomas Monjalon (2):
> eal: sort and align options lists
> eal: add help option
>
> lib/librte_eal/bsdapp/eal/eal.c | 7 +-
> lib/librte_eal/common/eal_common_options.c | 115 +++++++++++++++--------------
> lib/librte_eal/common/eal_options.h | 64 ++++++++--------
> lib/librte_eal/linuxapp/eal/eal.c | 27 ++++---
> 4 files changed, 113 insertions(+), 100 deletions(-)
>
> --
> 2.2.2
>
>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [dpdk-dev] [PATCH v3 0/2] help option
2015-02-13 10:50 ` [dpdk-dev] [PATCH v3 0/2] " David Marchand
@ 2015-02-24 11:09 ` Thomas Monjalon
0 siblings, 0 replies; 16+ messages in thread
From: Thomas Monjalon @ 2015-02-24 11:09 UTC (permalink / raw)
To: David Marchand; +Cc: dev
> > This is a small reorganization of options.
> > The main goal is to provide a nice --help option.
> >
> > changes in v3:
> > - reword arguments in usage
> > changes in v2:
> > - sort also the options enum
> >
> > Thomas Monjalon (2):
> > eal: sort and align options lists
> > eal: add help option
>
> Series
> Acked-by: David Marchand <david.marchand@6wind.com>
Applied, thanks
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2015-02-24 11:09 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-29 18:07 [dpdk-dev] [PATCH 0/2] help option Thomas Monjalon
2015-01-29 18:07 ` [dpdk-dev] [PATCH 1/2] eal: sort and align options lists Thomas Monjalon
2015-01-29 18:07 ` [dpdk-dev] [PATCH 2/2] eal: add help option Thomas Monjalon
2015-02-02 17:44 ` [dpdk-dev] [PATCH v2 0/2] " Thomas Monjalon
2015-02-02 17:44 ` [dpdk-dev] [PATCH v2 1/2] eal: sort and align options lists Thomas Monjalon
2015-02-03 6:26 ` David Marchand
2015-02-03 8:27 ` Thomas Monjalon
[not found] ` <1422899093-20207-3-git-send-email-thomas.monjalon@6wind.com>
2015-02-03 6:33 ` [dpdk-dev] [PATCH v2 2/2] eal: add help option David Marchand
2015-02-03 8:20 ` Thomas Monjalon
2015-02-03 9:07 ` David Marchand
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 0/2] " Thomas Monjalon
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 1/2] eal: sort and align options lists Thomas Monjalon
2015-02-12 16:47 ` [dpdk-dev] [PATCH v3 2/2] eal: add help option Thomas Monjalon
2015-02-13 10:50 ` [dpdk-dev] [PATCH v3 0/2] " David Marchand
2015-02-24 11:09 ` Thomas Monjalon
2015-02-13 12:57 ` Neil Horman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).