diff options
Diffstat (limited to 'tools/lib/subcmd/parse-options.c')
-rw-r--r-- | tools/lib/subcmd/parse-options.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/lib/subcmd/parse-options.c b/tools/lib/subcmd/parse-options.c index cb7154eccbdc..dbb9efbf718a 100644 --- a/tools/lib/subcmd/parse-options.c +++ b/tools/lib/subcmd/parse-options.c | |||
@@ -116,6 +116,7 @@ static int get_value(struct parse_opt_ctx_t *p, | |||
116 | case OPTION_INTEGER: | 116 | case OPTION_INTEGER: |
117 | case OPTION_UINTEGER: | 117 | case OPTION_UINTEGER: |
118 | case OPTION_LONG: | 118 | case OPTION_LONG: |
119 | case OPTION_ULONG: | ||
119 | case OPTION_U64: | 120 | case OPTION_U64: |
120 | default: | 121 | default: |
121 | break; | 122 | break; |
@@ -166,6 +167,7 @@ static int get_value(struct parse_opt_ctx_t *p, | |||
166 | case OPTION_INTEGER: | 167 | case OPTION_INTEGER: |
167 | case OPTION_UINTEGER: | 168 | case OPTION_UINTEGER: |
168 | case OPTION_LONG: | 169 | case OPTION_LONG: |
170 | case OPTION_ULONG: | ||
169 | case OPTION_U64: | 171 | case OPTION_U64: |
170 | default: | 172 | default: |
171 | break; | 173 | break; |
@@ -295,6 +297,22 @@ static int get_value(struct parse_opt_ctx_t *p, | |||
295 | return opterror(opt, "expects a numerical value", flags); | 297 | return opterror(opt, "expects a numerical value", flags); |
296 | return 0; | 298 | return 0; |
297 | 299 | ||
300 | case OPTION_ULONG: | ||
301 | if (unset) { | ||
302 | *(unsigned long *)opt->value = 0; | ||
303 | return 0; | ||
304 | } | ||
305 | if (opt->flags & PARSE_OPT_OPTARG && !p->opt) { | ||
306 | *(unsigned long *)opt->value = opt->defval; | ||
307 | return 0; | ||
308 | } | ||
309 | if (get_arg(p, opt, flags, &arg)) | ||
310 | return -1; | ||
311 | *(unsigned long *)opt->value = strtoul(arg, (char **)&s, 10); | ||
312 | if (*s) | ||
313 | return opterror(opt, "expects a numerical value", flags); | ||
314 | return 0; | ||
315 | |||
298 | case OPTION_U64: | 316 | case OPTION_U64: |
299 | if (unset) { | 317 | if (unset) { |
300 | *(u64 *)opt->value = 0; | 318 | *(u64 *)opt->value = 0; |
@@ -703,6 +721,7 @@ static void print_option_help(const struct option *opts, int full) | |||
703 | case OPTION_ARGUMENT: | 721 | case OPTION_ARGUMENT: |
704 | break; | 722 | break; |
705 | case OPTION_LONG: | 723 | case OPTION_LONG: |
724 | case OPTION_ULONG: | ||
706 | case OPTION_U64: | 725 | case OPTION_U64: |
707 | case OPTION_INTEGER: | 726 | case OPTION_INTEGER: |
708 | case OPTION_UINTEGER: | 727 | case OPTION_UINTEGER: |