iPXE
Data Structures | Macros | Functions
parseopt.h File Reference

Command line option parsing. More...

#include <stdint.h>
#include <stddef.h>
#include <ipxe/settings.h>

Go to the source code of this file.

Data Structures

struct  option_descriptor
 A command-line option descriptor. More...
 
struct  command_descriptor
 A command descriptor. More...
 
struct  named_setting
 A parsed named setting. More...
 

Macros

#define OPTION_PARSER(_struct, _field, _parse)
 Construct option parser. More...
 
#define OPTION_DESC(_longopt, _shortopt, _has_arg, _struct, _field, _parse)
 Construct option descriptor. More...
 
#define MAX_ARGUMENTS   0xff
 No maximum number of arguments. More...
 
#define COMMAND_DESC(_struct, _options, _min_args, _max_args, _usage)
 Construct command descriptor. More...
 

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 
int parse_string (char *text, char **value)
 Parse string value. More...
 
int parse_integer (char *text, unsigned int *value)
 Parse integer value. More...
 
int parse_timeout (char *text, unsigned long *value)
 Parse timeout value (in ms) More...
 
int parse_netdev (char *text, struct net_device **netdev)
 Parse network device name. More...
 
int parse_netdev_configurator (char *text, struct net_device_configurator **configurator)
 Parse network device configurator name. More...
 
int parse_menu (char *text, struct menu **menu)
 Parse menu name. More...
 
int parse_flag (char *text __unused, int *flag)
 Parse flag. More...
 
int parse_key (char *text, unsigned int *key)
 Parse key. More...
 
int parse_settings (char *text, struct settings **settings)
 Parse settings block name. More...
 
int parse_setting (char *text, struct named_setting *setting, get_child_settings_t get_child)
 Parse setting name. More...
 
int parse_existing_setting (char *text, struct named_setting *setting)
 Parse existing setting name. More...
 
int parse_autovivified_setting (char *text, struct named_setting *setting)
 Parse and autovivify setting name. More...
 
int parse_parameters (char *text, struct parameters **params)
 Parse form parameter list name. More...
 
void print_usage (struct command_descriptor *cmd, char **argv)
 Print command usage message. More...
 
int reparse_options (int argc, char **argv, struct command_descriptor *cmd, void *opts)
 Reparse command-line options. More...
 
int parse_options (int argc, char **argv, struct command_descriptor *cmd, void *opts)
 Parse command-line options. More...
 

Detailed Description

Command line option parsing.

Definition in file parseopt.h.

Macro Definition Documentation

◆ OPTION_PARSER

#define OPTION_PARSER (   _struct,
  _field,
  _parse 
)
Value:
( ( int ( * ) ( char *text, void *value ) ) \
( ( ( ( typeof ( _parse ) * ) NULL ) == \
( ( int ( * ) ( char *text, \
typeof ( ( ( _struct * ) NULL )->_field ) * ) ) \
NULL ) ) ? _parse : _parse ) )
pseudo_bit_t value[0x00020]
Definition: arbel.h:13
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362

Construct option parser.

Parameters
_structOptions structure type
_fieldField within options structure
_parseField type-specific option parser
Return values
_parseGeneric option parser

Definition at line 48 of file parseopt.h.

◆ OPTION_DESC

#define OPTION_DESC (   _longopt,
  _shortopt,
  _has_arg,
  _struct,
  _field,
  _parse 
)
Value:
{ \
.longopt = _longopt, \
.shortopt = _shortopt, \
.has_arg = _has_arg, \
.offset = offsetof ( _struct, _field ), \
.parse = OPTION_PARSER ( _struct, _field, _parse ), \
}
#define OPTION_PARSER(_struct, _field, _parse)
Construct option parser.
Definition: parseopt.h:48
#define offsetof(type, field)
Get offset of a field within a structure.
Definition: stddef.h:24

Construct option descriptor.

Parameters
_longoptLong option name, if any
_shortoptShort option name, if any
_has_argArgument requirement
_structOptions structure type
_fieldField within options structure
_parseField type-specific option parser
Return values
_optionOption descriptor

Definition at line 66 of file parseopt.h.

◆ MAX_ARGUMENTS

#define MAX_ARGUMENTS   0xff

No maximum number of arguments.

Definition at line 96 of file parseopt.h.

◆ COMMAND_DESC

#define COMMAND_DESC (   _struct,
  _options,
  _min_args,
  _max_args,
  _usage 
)
Value:
{ \
.options = ( ( ( ( typeof ( _options[0] ) * ) NULL ) == \
( ( struct option_descriptor * ) NULL ) ) ? \
_options : _options ), \
.num_options = ( sizeof ( _options ) / \
sizeof ( _options[0] ) ), \
.len = sizeof ( _struct ), \
.min_args = _min_args, \
.max_args = _max_args, \
.usage = _usage, \
}
uint32_t len
Length.
Definition: ena.h:14
A command-line option descriptor.
Definition: parseopt.h:22
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362

Construct command descriptor.

Parameters
_structOptions structure type
_optionsOption descriptor array
_check_argsRemaining argument checker
_usageCommand usage
Return values
_commandCommand descriptor

Definition at line 107 of file parseopt.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )

◆ parse_string()

int parse_string ( char *  text,
char **  value 
)

Parse string value.

Parameters
textText
Return values
valueString value
rcReturn status code

Definition at line 70 of file parseopt.c.

70  {
71 
72  /* Sanity check */
73  assert ( text != NULL );
74 
75  /* Parse string */
76  *value = text;
77 
78  return 0;
79 }
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
pseudo_bit_t value[0x00020]
Definition: arbel.h:13
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362

References assert(), NULL, and value.

◆ parse_integer()

int parse_integer ( char *  text,
unsigned int *  value 
)

Parse integer value.

Parameters
textText
Return values
valueInteger value
rcReturn status code

Definition at line 88 of file parseopt.c.

88  {
89  char *endp;
90 
91  /* Sanity check */
92  assert ( text != NULL );
93 
94  /* Parse integer */
95  *value = strtoul ( text, &endp, 0 );
96  if ( *endp ) {
97  printf ( "\"%s\": invalid integer value\n", text );
98  return -EINVAL_INTEGER;
99  }
100 
101  return 0;
102 }
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition: vsprintf.c:464
unsigned long strtoul(const char *string, char **endp, int base)
Convert string to numeric value.
Definition: string.c:441
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
pseudo_bit_t value[0x00020]
Definition: arbel.h:13
#define EINVAL_INTEGER
Definition: parseopt.c:53
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362

References assert(), EINVAL_INTEGER, NULL, printf(), strtoul(), and value.

Referenced by colour_exec(), cpair_exec(), cpuid_exec(), exit_exec(), inc_exec(), parse_key(), parse_timeout(), pxebs_exec(), and sleep_exec().

◆ parse_timeout()

int parse_timeout ( char *  text,
unsigned long *  value 
)

Parse timeout value (in ms)

Parameters
textText
Return values
valueInteger value
rcReturn status code

Definition at line 111 of file parseopt.c.

111  {
112  unsigned int value_ms;
113  int rc;
114 
115  /* Parse raw integer value */
116  if ( ( rc = parse_integer ( text, &value_ms ) ) != 0 )
117  return rc;
118 
119  /* Convert to a number of timer ticks */
120  *value = ( value_ms * TICKS_PER_MS );
121 
122  return 0;
123 }
int parse_integer(char *text, unsigned int *value)
Parse integer value.
Definition: parseopt.c:88
struct arbelprm_rc_send_wqe rc
Definition: arbel.h:14
pseudo_bit_t value[0x00020]
Definition: arbel.h:13
#define TICKS_PER_MS
Number of ticks per millisecond.
Definition: timer.h:25

References parse_integer(), rc, TICKS_PER_MS, and value.

◆ parse_netdev()

int parse_netdev ( char *  text,
struct net_device **  netdev 
)

Parse network device name.

Parameters
textText
Return values
netdevNetwork device
rcReturn status code

Definition at line 132 of file parseopt.c.

132  {
133 
134  /* Sanity check */
135  assert ( text != NULL );
136 
137  /* Find network device */
138  *netdev = find_netdev ( text );
139  if ( ! *netdev ) {
140  printf ( "\"%s\": no such network device\n", text );
141  return -ENODEV;
142  }
143 
144  return 0;
145 }
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition: vsprintf.c:464
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
static struct net_device * netdev
Definition: gdbudp.c:52
#define ENODEV
No such device.
Definition: errno.h:509
struct net_device * find_netdev(const char *name)
Get network device by name.
Definition: netdevice.c:893
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362

References assert(), ENODEV, find_netdev(), netdev, NULL, and printf().

Referenced by ifcommon_exec(), lotest_exec(), pxebs_exec(), vcreate_exec(), and vdestroy_exec().

◆ parse_netdev_configurator()

int parse_netdev_configurator ( char *  text,
struct net_device_configurator **  configurator 
)

Parse network device configurator name.

Parameters
textText
Return values
configuratorNetwork device configurator
rcReturn status code

Definition at line 154 of file parseopt.c.

155  {
156 
157  /* Sanity check */
158  assert ( text != NULL );
159 
160  /* Find network device configurator */
161  *configurator = find_netdev_configurator ( text );
162  if ( ! *configurator ) {
163  printf ( "\"%s\": no such configurator\n", text );
164  return -ENOTSUP;
165  }
166 
167  return 0;
168 }
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition: vsprintf.c:464
#define ENOTSUP
Operation not supported.
Definition: errno.h:589
struct net_device_configurator * find_netdev_configurator(const char *name)
Find network device configurator.
Definition: netdevice.c:1202
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362

References assert(), ENOTSUP, find_netdev_configurator(), NULL, and printf().

◆ parse_menu()

int parse_menu ( char *  text,
struct menu **  menu 
)

Parse menu name.

Parameters
textText
Return values
menuMenu
rcReturn status code

Definition at line 177 of file parseopt.c.

177  {
178 
179  /* Find menu */
180  *menu = find_menu ( text );
181  if ( ! *menu ) {
182  if ( text ) {
183  printf ( "\"%s\": no such menu\n", text );
184  } else {
185  printf ( "No default menu\n" );
186  }
187  return -ENOENT;
188  }
189 
190  return 0;
191 }
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition: vsprintf.c:464
#define ENOENT
No such file or directory.
Definition: errno.h:514
A menu.
Definition: menu.h:15

References ENOENT, find_menu(), and printf().

Referenced by choose_exec(), and item_exec().

◆ parse_flag()

int parse_flag ( char *text  __unused,
int *  flag 
)

Parse flag.

Parameters
textText (ignored)
Return values
flagFlag to set
rcReturn status code

Definition at line 200 of file parseopt.c.

200  {
201 
202  /* Set flag */
203  *flag = 1;
204 
205  return 0;
206 }
uint16_t flag
Flag number.
Definition: hyperv.h:14

References flag.

◆ parse_key()

int parse_key ( char *  text,
unsigned int *  key 
)

Parse key.

Parameters
textText
Return values
keyKey
rcReturn status code

Definition at line 215 of file parseopt.c.

215  {
216 
217  /* Interpret single characters as being a literal key character */
218  if ( text[0] && ! text[1] ) {
219  *key = text[0];
220  return 0;
221  }
222 
223  /* Otherwise, interpret as an integer */
224  return parse_integer ( text, key );
225 }
int parse_integer(char *text, unsigned int *value)
Parse integer value.
Definition: parseopt.c:88
union @375 key
Sense key.
Definition: scsi.h:18

References key, and parse_integer().

◆ parse_settings()

int parse_settings ( char *  text,
struct settings **  value 
)

Parse settings block name.

Parameters
textText
Return values
valueInteger value
rcReturn status code

Definition at line 234 of file parseopt.c.

234  {
235 
236  /* Sanity check */
237  assert ( text != NULL );
238 
239  /* Parse scope name */
240  *value = find_settings ( text );
241  if ( ! *value ) {
242  printf ( "\"%s\": no such scope\n", text );
243  return -EINVAL;
244  }
245 
246  return 0;
247 }
#define EINVAL
Invalid argument.
Definition: errno.h:428
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition: vsprintf.c:464
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
pseudo_bit_t value[0x00020]
Definition: arbel.h:13
struct settings * find_settings(const char *name)
Find settings block.
Definition: settings.c:406
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362

References assert(), EINVAL, find_settings(), NULL, printf(), and value.

Referenced by config_exec().

◆ parse_setting()

int parse_setting ( char *  text,
struct named_setting setting,
get_child_settings_t  get_child 
)

Parse setting name.

Parameters
textText
settingNamed setting to fill in
get_childFunction to find or create child settings block
Return values
rcReturn status code

Note that this function modifies the original text.

Definition at line 259 of file parseopt.c.

260  {
261  int rc;
262 
263  /* Sanity check */
264  assert ( text != NULL );
265 
266  /* Parse setting name */
267  if ( ( rc = parse_setting_name ( text, get_child, &setting->settings,
268  &setting->setting ) ) != 0 ) {
269  printf ( "\"%s\": invalid setting\n", text );
270  return rc;
271  }
272 
273  return 0;
274 }
struct arbelprm_rc_send_wqe rc
Definition: arbel.h:14
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition: vsprintf.c:464
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
A setting.
Definition: settings.h:23
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362
int parse_setting_name(char *name, get_child_settings_t get_child, struct settings **settings, struct setting *setting)
Parse setting name.
Definition: settings.c:1532

References assert(), NULL, parse_setting_name(), printf(), and rc.

Referenced by parse_autovivified_setting(), and parse_existing_setting().

◆ parse_existing_setting()

int parse_existing_setting ( char *  text,
struct named_setting setting 
)

Parse existing setting name.

Parameters
textText
settingNamed setting to fill in
Return values
rcReturn status code

Note that this function modifies the original text.

Definition at line 285 of file parseopt.c.

285  {
286 
287  return parse_setting ( text, setting, find_child_settings );
288 }
int parse_setting(char *text, struct named_setting *setting, get_child_settings_t get_child)
Parse setting name.
Definition: parseopt.c:259
A setting.
Definition: settings.h:23
struct settings * find_child_settings(struct settings *parent, const char *name)
Find child settings block.
Definition: settings.c:279

References find_child_settings(), and parse_setting().

Referenced by inc_exec(), and show_exec().

◆ parse_autovivified_setting()

int parse_autovivified_setting ( char *  text,
struct named_setting setting 
)

Parse and autovivify setting name.

Parameters
textText
settingNamed setting to fill in
Return values
rcReturn status code

Note that this function modifies the original text.

Definition at line 299 of file parseopt.c.

299  {
300 
302 }
int parse_setting(char *text, struct named_setting *setting, get_child_settings_t get_child)
Parse setting name.
Definition: parseopt.c:259
struct settings * autovivify_child_settings(struct settings *parent, const char *name)
Find or create child settings block.
Definition: settings.c:306
A setting.
Definition: settings.h:23

References autovivify_child_settings(), and parse_setting().

Referenced by choose_exec(), pciscan_exec(), and set_core_exec().

◆ parse_parameters()

int parse_parameters ( char *  text,
struct parameters **  params 
)

Parse form parameter list name.

Parameters
textText
Return values
paramsParameter list
rcReturn status code

Definition at line 311 of file parseopt.c.

311  {
312 
313  /* Find parameter list */
314  *params = find_parameters ( text );
315  if ( ! *params ) {
316  if ( text ) {
317  printf ( "\"%s\": no such parameter list\n", text );
318  } else {
319  printf ( "No default parameter list\n" );
320  }
321  return -ENOENT;
322  }
323 
324  return 0;
325 }
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition: vsprintf.c:464
#define ENOENT
No such file or directory.
Definition: errno.h:514
struct parameters * find_parameters(const char *name)
Find form parameter list by name.
Definition: params.c:68

References ENOENT, find_parameters(), and printf().

Referenced by param_exec().

◆ print_usage()

void print_usage ( struct command_descriptor cmd,
char **  argv 
)

Print command usage message.

Parameters
cmdCommand descriptor
argvArgument list

Definition at line 333 of file parseopt.c.

333  {
334  struct option_descriptor *option;
335  unsigned int i;
336  int is_optional;
337 
338  printf ( "Usage:\n\n %s", argv[0] );
339  for ( i = 0 ; i < cmd->num_options ; i++ ) {
340  option = &cmd->options[i];
341  printf ( " [-%c|--%s", option->shortopt, option->longopt );
342  if ( option->has_arg ) {
343  is_optional = ( option->has_arg == optional_argument );
344  printf ( " %s<%s>%s", ( is_optional ? "[" : "" ),
345  option->longopt, ( is_optional ? "]" : "" ) );
346  }
347  printf ( "]" );
348  }
349  if ( cmd->usage )
350  printf ( " %s", cmd->usage );
351  printf ( "\n\nSee " PRODUCT_COMMAND_URI " for further information\n",
352  argv[0] );
353 }
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition: vsprintf.c:464
A long option, as used for getopt_long()
Definition: getopt.h:24
#define PRODUCT_COMMAND_URI
Definition: branding.h:127
A command-line option descriptor.
Definition: parseopt.h:22
Option may have an argument.
Definition: getopt.h:20
int has_arg
Option takes an argument.
Definition: getopt.h:32
struct golan_eqe_cmd cmd
Definition: CIB_PRM.h:29

References cmd, option::has_arg, optional_argument, printf(), and PRODUCT_COMMAND_URI.

Referenced by reparse_options().

◆ reparse_options()

int reparse_options ( int  argc,
char **  argv,
struct command_descriptor cmd,
void *  opts 
)

Reparse command-line options.

Parameters
argcArgument count
argvArgument list
cmdCommand descriptor
optsOptions (already initialised with default values)
Return values
rcReturn status code

Definition at line 364 of file parseopt.c.

365  {
366  struct option longopts[ cmd->num_options + 1 /* help */ + 1 /* end */ ];
367  char shortopts[ cmd->num_options * 3 /* possible "::" */ + 1 /* "h" */
368  + 1 /* NUL */ ];
369  unsigned int shortopt_idx = 0;
370  int ( * parse ) ( char *text, void *value );
371  void *value;
372  unsigned int i;
373  unsigned int j;
374  unsigned int num_args;
375  int c;
376  int rc;
377 
378  /* Construct long and short option lists for getopt_long() */
379  memset ( longopts, 0, sizeof ( longopts ) );
380  for ( i = 0 ; i < cmd->num_options ; i++ ) {
381  longopts[i].name = cmd->options[i].longopt;
382  longopts[i].has_arg = cmd->options[i].has_arg;
383  longopts[i].val = cmd->options[i].shortopt;
384  shortopts[shortopt_idx++] = cmd->options[i].shortopt;
385  assert ( cmd->options[i].has_arg <= optional_argument );
386  for ( j = cmd->options[i].has_arg ; j > 0 ; j-- )
387  shortopts[shortopt_idx++] = ':';
388  }
389  longopts[i].name = "help";
390  longopts[i].val = 'h';
391  shortopts[shortopt_idx++] = 'h';
392  shortopts[shortopt_idx++] = '\0';
393  assert ( shortopt_idx <= sizeof ( shortopts ) );
394  DBGC ( cmd, "Command \"%s\" has options \"%s\", %d-%d args, len %d\n",
395  argv[0], shortopts, cmd->min_args, cmd->max_args, cmd->len );
396 
397  /* Parse options */
398  while ( ( c = getopt_long ( argc, argv, shortopts, longopts,
399  NULL ) ) >= 0 ) {
400  switch ( c ) {
401  case 'h' :
402  /* Print help */
403  print_usage ( cmd, argv );
404  return -ECANCELED_NO_OP;
405  case '?' :
406  /* Print usage message */
407  print_usage ( cmd, argv );
408  return -EINVAL_UNKNOWN_OPTION;
409  case ':' :
410  /* Print usage message */
411  print_usage ( cmd, argv );
412  return -EINVAL_MISSING_ARGUMENT;
413  default:
414  /* Search for an option to parse */
415  for ( i = 0 ; i < cmd->num_options ; i++ ) {
416  if ( c != cmd->options[i].shortopt )
417  continue;
418  parse = cmd->options[i].parse;
419  value = ( opts + cmd->options[i].offset );
420  if ( ( rc = parse ( optarg, value ) ) != 0 )
421  return rc;
422  break;
423  }
424  assert ( i < cmd->num_options );
425  }
426  }
427 
428  /* Check remaining arguments */
429  num_args = ( argc - optind );
430  if ( ( num_args < cmd->min_args ) || ( num_args > cmd->max_args ) ) {
431  print_usage ( cmd, argv );
432  return -ERANGE;
433  }
434 
435  return 0;
436 }
#define EINVAL_UNKNOWN_OPTION
Definition: parseopt.c:56
struct arbelprm_rc_send_wqe rc
Definition: arbel.h:14
int optind
Current option index.
Definition: getopt.c:51
#define DBGC(...)
Definition: compiler.h:505
static __always_inline void off_t int c
Definition: efi_uaccess.h:87
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
A long option, as used for getopt_long()
Definition: getopt.h:24
pseudo_bit_t value[0x00020]
Definition: arbel.h:13
static union @423 opts
"cert<xxx>" option list
#define ERANGE
Result too large.
Definition: errno.h:639
int getopt_long(int argc, char *const argv[], const char *optstring, const struct option *longopts, int *longindex)
Parse command-line options.
Definition: getopt.c:229
void print_usage(struct command_descriptor *cmd, char **argv)
Print command usage message.
Definition: parseopt.c:333
#define EINVAL_MISSING_ARGUMENT
Definition: parseopt.c:59
char * optarg
Option argument.
Definition: getopt.c:43
#define ECANCELED_NO_OP
Return status code for "--help" option.
Definition: parseopt.c:48
Option may have an argument.
Definition: getopt.h:20
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362
struct golan_eqe_cmd cmd
Definition: CIB_PRM.h:29
void * memset(void *dest, int character, size_t len) __nonnull

References assert(), c, cmd, DBGC, ECANCELED_NO_OP, EINVAL_MISSING_ARGUMENT, EINVAL_UNKNOWN_OPTION, ERANGE, getopt_long(), option::has_arg, memset(), option::name, NULL, optarg, optind, optional_argument, opts, print_usage(), rc, option::val, and value.

Referenced by colour_exec(), cpair_exec(), parse_options(), ping_exec(), and sanboot_core_exec().

◆ parse_options()

int parse_options ( int  argc,
char **  argv,
struct command_descriptor cmd,
void *  opts 
)

Parse command-line options.

Parameters
argcArgument count
argvArgument list
cmdCommand descriptor
optsOptions (may be uninitialised)
Return values
rcReturn status code

Definition at line 447 of file parseopt.c.

448  {
449 
450  /* Clear options */
451  memset ( opts, 0, cmd->len );
452 
453  return reparse_options ( argc, argv, cmd, opts );
454 }
int reparse_options(int argc, char **argv, struct command_descriptor *cmd, void *opts)
Reparse command-line options.
Definition: parseopt.c:364
static union @423 opts
"cert<xxx>" option list
struct golan_eqe_cmd cmd
Definition: CIB_PRM.h:29
void * memset(void *dest, int character, size_t len) __nonnull

References cmd, memset(), opts, and reparse_options().

Referenced by cert_exec(), choose_exec(), config_exec(), console_exec(), cpuid_exec(), digest_exec(), echo_exec(), exit_exec(), fcels_exec(), fcstat_exec(), gdbstub_exec(), goto_exec(), ibstat_exec(), ifcommon_exec(), imgmulti_exec(), imgsingle_exec(), imgtrust_exec(), imgverify_exec(), inc_exec(), ipstat_exec(), iseq_exec(), isset_exec(), item_exec(), login_exec(), lotest_exec(), menu_exec(), nslookup_exec(), nstat_exec(), ntp_exec(), param_exec(), params_exec(), pciscan_exec(), poweroff_exec(), profstat_exec(), prompt_exec(), pxebs_exec(), reboot_exec(), route_exec(), set_core_exec(), shell_exec(), show_exec(), sleep_exec(), stoppxe_exec(), sync_exec(), time_exec(), vcreate_exec(), and vdestroy_exec().