17 #define RV_HELP 0x10000000 63 #define ARG_GROUP(VARIABLE,LIST,DESCRIPTION) cmdline_argument_group_t VARIABLE={DESCRIPTION,sizeof(LIST)/sizeof(cmdline_argument_t),LIST}; 78 #define DOUBLE_RANGE_VALIDATOR(FUNC,FIELD,MIN,MAX) static BOOLEAN FUNC(cmdline_value_t v) { return validate_double_range(v,FIELD,MIN,MAX); } 90 #define INT_RANGE_VALIDATOR(FUNC,FIELD,MIN,MAX) static BOOLEAN FUNC(cmdline_value_t v) { return validate_uint64_range(v,FIELD,MIN,MAX); } 94 EFI_STATUS
parse_parameters(INTN argc, CHAR16 **argv, UINTN group_count, VA_LIST groups);
CHAR16 * helptext
a user-friendly help text
Definition: cmdline.h:46
BOOLEAN validate_uint64_range(cmdline_value_t v, CHAR16 *field, UINT64 min, UINT64 max)
Checks whether a uint64 command line parameter is within boundaries.
Definition: cmdline.c:176
UINTN count
the number of entries in the group
Definition: cmdline.h:52
cmdline_value_t value
the parsed value
Definition: cmdline.h:42
model for one command line argument
Definition: cmdline.h:41
BOOLEAN wctype_int(CHAR16 *string)
Checks whether a string looks like an integer.
Definition: cmdline.c:63
double _wcstof(CHAR16 *str)
Converts a numeric string into a double value.
Definition: cmdline.c:88
BOOLEAN validate_double_range(cmdline_value_t v, CHAR16 *field, double min, double max)
Checks whether a double command line parameter is within boundaries.
Definition: cmdline.c:159
void free_argv()
Frees the memory pages for the internal _argv storage.
Definition: cmdline.c:508
argument_type
the supported command line argument types
Definition: cmdline.h:20
BOOLEAN wctype_float(CHAR16 *string)
Checks whether a string looks like a number.
Definition: cmdline.c:74
UINT64 uint64
UINT64 variant.
Definition: cmdline.h:33
one parsed command line value
Definition: cmdline.h:31
boolean
Definition: cmdline.h:22
void print_help_text(UINTN group_count, VA_LIST groups)
Outputs the help text for all argument groups, including the built-in ones.
Definition: cmdline.c:276
double dbl
double variant
Definition: cmdline.h:32
CHAR16 ** argv_from_ascii(int argc, char **argv_ascii)
Converts ASCII command line parameters to UTF-16.
Definition: cmdline.c:489
CHAR16 * name
the argument's name
Definition: cmdline.h:45
CHAR16 * wcstr
UTF-16 string variant.
Definition: cmdline.h:34
cmdline_argument_t * list
the list of arguments in this group
Definition: cmdline.h:53
integer
Definition: cmdline.h:23
CHAR16 * name
the group's name or short description, may be NULL
Definition: cmdline.h:51
BOOLEAN validate_argument_f(cmdline_value_t)
function pointer type for command line argument validators
Definition: cmdline.h:38
UTF-16 string.
Definition: cmdline.h:25
validate_argument_f * validator_func
the validator function, may be NULL
Definition: cmdline.h:44
model for group of command line arguments
Definition: cmdline.h:50
argument_type type
the argument's type
Definition: cmdline.h:43
double
Definition: cmdline.h:24
EFI_STATUS parse_parameters(INTN argc, CHAR16 **argv, UINTN group_count, VA_LIST groups)
Parses command-line parameters.
Definition: cmdline.c:449