Lines Matching defs:arg

21 is_arg_optional(const struct rte_argparse_arg *arg)
23 return arg->name_long[0] == '-';
27 is_arg_positional(const struct rte_argparse_arg *arg)
29 return arg->name_long[0] != '-';
33 arg_attr_has_val(const struct rte_argparse_arg *arg)
35 return RTE_FIELD_GET64(RTE_ARGPARSE_HAS_VAL_BITMASK, arg->flags);
39 arg_attr_val_type(const struct rte_argparse_arg *arg)
41 return RTE_FIELD_GET64(RTE_ARGPARSE_VAL_TYPE_BITMASK, arg->flags);
45 arg_attr_flag_multi(const struct rte_argparse_arg *arg)
47 return RTE_FIELD_GET64(RTE_ARGPARSE_ARG_SUPPORT_MULTI, arg->flags);
51 arg_attr_unused_bits(const struct rte_argparse_arg *arg)
56 return arg->flags & ~USED_BIT_MASK;
60 verify_arg_name(const struct rte_argparse_arg *arg)
62 if (is_arg_optional(arg)) {
63 if (strlen(arg->name_long) <= 3) {
64 ARGPARSE_LOG(ERR, "optional long name %s too short!", arg->name_long);
67 if (arg->name_long[1] != '-') {
69 arg->name_long);
72 if (arg->name_long[2] == '-') {
74 arg->name_long);
79 if (arg->name_short == NULL)
82 if (!is_arg_optional(arg)) {
84 arg->name_short);
88 if (strlen(arg->name_short) != 2 || arg->name_short[0] != '-' ||
89 arg->name_short[1] == '-') {
91 arg->name_short);
99 verify_arg_help(const struct rte_argparse_arg *arg)
101 if (arg->help == NULL) {
102 ARGPARSE_LOG(ERR, "argument %s doesn't have help info!", arg->name_long);
110 verify_arg_has_val(const struct rte_argparse_arg *arg)
112 uint32_t has_val = arg_attr_has_val(arg);
114 if (is_arg_positional(arg)) {
118 arg->name_long);
124 arg->name_long);
136 const struct rte_argparse_arg *arg = &obj->args[index];
137 uint32_t val_type = arg_attr_val_type(arg);
138 uint32_t has_val = arg_attr_has_val(arg);
140 if (arg->val_saver == NULL) {
143 arg->name_long);
149 arg->name_long);
157 ARGPARSE_LOG(ERR, "argument %s value-type config wrong!", arg->name_long);
161 if (has_val == RTE_ARGPARSE_ARG_REQUIRED_VALUE && arg->val_set != NULL) {
163 arg->name_long);
173 const struct rte_argparse_arg *arg = &obj->args[index];
174 uint64_t unused_bits = arg_attr_unused_bits(arg);
178 arg->name_long);
182 if (!(arg->flags & RTE_ARGPARSE_ARG_SUPPORT_MULTI))
185 if (is_arg_positional(arg)) {
187 arg->name_long);
191 if (arg->val_saver != NULL) {
193 arg->name_long);
203 const struct rte_argparse_arg *arg = &self->args[index];
207 if (!strcmp(arg->name_long, self->args[i].name_long)) {
208 ARGPARSE_LOG(ERR, "argument %s repeat!", arg->name_long);
213 if (arg->name_short == NULL)
219 if (!strcmp(arg->name_short, self->args[i].name_short)) {
220 ARGPARSE_LOG(ERR, "argument %s repeat!", arg->name_short);
231 const struct rte_argparse_arg *arg = &obj->args[index];
234 ret = verify_arg_name(arg);
238 ret = verify_arg_help(arg);
242 ret = verify_arg_has_val(arg);
298 const struct rte_argparse_arg *arg;
303 arg = &obj->args[i];
306 if (is_arg_positional(arg))
316 struct rte_argparse_arg *arg;
321 arg = &obj->args[i];
322 if (arg->name_long == NULL)
324 if (!is_arg_positional(arg))
328 return arg;
335 is_arg_match(struct rte_argparse_arg *arg, const char *curr_argv, uint32_t len)
337 if (strlen(arg->name_long) == len && strncmp(arg->name_long, curr_argv, len) == 0)
340 if (arg->name_short == NULL)
343 if (strlen(arg->name_short) == len && strncmp(arg->name_short, curr_argv, len) == 0)
354 struct rte_argparse_arg *arg;
359 arg = &obj->args[i];
360 if (arg->name_long == NULL)
362 match = is_arg_match(arg, curr_argv, len);
365 *arg_name = len > 2 ? arg->name_long : arg->name_short;
366 return arg;
374 parse_arg_int(struct rte_argparse_arg *arg, const char *value)
379 *(int *)arg->val_saver = (int)(intptr_t)arg->val_set;
384 *(int *)arg->val_saver = strtol(value, &s, 0);
386 ARGPARSE_LOG(ERR, "argument %s numerical out of range!", arg->name_long);
391 ARGPARSE_LOG(ERR, "argument %s expect an integer value!", arg->name_long);
399 parse_arg_u8(struct rte_argparse_arg *arg, const char *value)
405 *(uint8_t *)arg->val_saver = (uint8_t)(intptr_t)arg->val_set;
412 ARGPARSE_LOG(ERR, "argument %s numerical out of range!", arg->name_long);
417 ARGPARSE_LOG(ERR, "argument %s expect an uint8 value!", arg->name_long);
421 *(uint8_t *)arg->val_saver = val;
427 parse_arg_u16(struct rte_argparse_arg *arg, const char *value)
433 *(uint16_t *)arg->val_saver = (uint16_t)(intptr_t)arg->val_set;
440 ARGPARSE_LOG(ERR, "argument %s numerical out of range!", arg->name_long);
445 ARGPARSE_LOG(ERR, "argument %s expect an uint16 value!", arg->name_long);
449 *(uint16_t *)arg->val_saver = val;
455 parse_arg_u32(struct rte_argparse_arg *arg, const char *value)
461 *(uint32_t *)arg->val_saver = (uint32_t)(intptr_t)arg->val_set;
468 ARGPARSE_LOG(ERR, "argument %s numerical out of range!", arg->name_long);
473 ARGPARSE_LOG(ERR, "argument %s expect an uint32 value!", arg->name_long);
477 *(uint32_t *)arg->val_saver = val;
483 parse_arg_u64(struct rte_argparse_arg *arg, const char *value)
489 *(uint64_t *)arg->val_saver = (uint64_t)(intptr_t)arg->val_set;
496 ARGPARSE_LOG(ERR, "argument %s numerical out of range!", arg->name_long);
501 ARGPARSE_LOG(ERR, "argument %s expect an uint64 value!", arg->name_long);
505 *(uint64_t *)arg->val_saver = val;
511 parse_arg_autosave(struct rte_argparse_arg *arg, const char *value)
514 int (*f_parse_type)(struct rte_argparse_arg *arg, const char *value);
524 uint32_t index = arg_attr_val_type(arg);
528 ret = map[index].f_parse_type(arg, value);
536 struct rte_argparse_arg *arg, char *value)
540 if (arg->val_saver == NULL)
541 ret = obj->callback((uint32_t)(uintptr_t)arg->val_set, value, obj->opaque);
543 ret = parse_arg_autosave(arg, value);
562 struct rte_argparse_arg *arg;
580 arg = find_position_arg(obj, position_index);
581 ret = parse_arg_val(obj, arg->name_long, arg, curr_argv);
595 arg = find_option_arg(obj, curr_argv, has_equal, &arg_name);
596 if (arg == NULL || arg_name == NULL) {
601 if ((arg->flags & ARG_ATTR_FLAG_PARSED_MASK) && !arg_attr_flag_multi(arg)) {
608 if (arg_attr_has_val(arg) == RTE_ARGPARSE_ARG_NO_VALUE) {
614 } else if (arg_attr_has_val(arg) == RTE_ARGPARSE_ARG_REQUIRED_VALUE) {
625 /* Do nothing, because it's optional value, only support arg=val or arg. */
628 ret = parse_arg_val(obj, arg_name, arg, value);
633 arg->flags |= ARG_ATTR_FLAG_PARSED_MASK;
642 const struct rte_argparse_arg *arg;
648 arg = &obj->args[i];
649 if (arg->name_long == NULL)
651 len = strlen(arg->name_long);
652 if (is_arg_optional(arg) && arg->name_short != NULL) {
654 len += strlen(arg->name_short);
663 show_oneline_help(const struct rte_argparse_arg *arg, uint32_t width)
668 if (arg->name_short != NULL)
669 len = printf(" %s,", arg->name_short);
670 len += printf(" %s", arg->name_long);
675 printf("%s\n", arg->help);
682 const struct rte_argparse_arg *arg;
690 arg = &obj->args[i];
691 if (arg->name_long == NULL)
693 if (!is_arg_positional(arg))
695 show_oneline_help(arg, align);
707 const struct rte_argparse_arg *arg;
713 arg = &obj->args[i];
714 if (arg->name_long == NULL)
716 if (!is_arg_optional(arg))
718 show_oneline_help(arg, align);
772 struct rte_argparse_arg arg = {
779 uint32_t value_type = arg_attr_val_type(&arg);
784 return parse_arg_autosave(&arg, str);