Line 280... |
Line 280... |
struct arg_file *cfg_file;
|
struct arg_file *cfg_file;
|
struct arg_lit *nosrv;
|
struct arg_lit *nosrv;
|
struct arg_int *srv;
|
struct arg_int *srv;
|
struct arg_str *dbg;
|
struct arg_str *dbg;
|
struct arg_lit *command;
|
struct arg_lit *command;
|
|
struct arg_lit *quiet;
|
|
struct arg_lit *report_mem_errs;
|
struct arg_lit *strict_npc;
|
struct arg_lit *strict_npc;
|
struct arg_lit *profile;
|
struct arg_lit *profile;
|
struct arg_lit *mprofile;
|
struct arg_lit *mprofile;
|
struct arg_file *load_file;
|
struct arg_file *load_file;
|
struct arg_end *end;
|
struct arg_end *end;
|
|
|
void *argtab[12];
|
void *argtab[14];
|
int nerrors;
|
int nerrors;
|
|
|
/* Specify each argument, with fall back values */
|
/* Specify each argument, with fall back values */
|
vercop = arg_lit0 ("v", "version", "version and copyright notice");
|
vercop = arg_lit0 ("v", "version", "version and copyright notice");
|
help = arg_lit0 ("h", "help", "print this help message");
|
help = arg_lit0 ("h", "help", "print this help message");
|
Line 301... |
Line 303... |
srv = arg_int0 (NULL, "srv", "<n>", "port number (default random)");
|
srv = arg_int0 (NULL, "srv", "<n>", "port number (default random)");
|
srv->ival[0] = rand () % (65536 - 49152) + 49152;
|
srv->ival[0] = rand () % (65536 - 49152) + 49152;
|
srv->hdr.flag |= ARG_HASOPTVALUE;
|
srv->hdr.flag |= ARG_HASOPTVALUE;
|
dbg = arg_str0 ("d", "debug-config", "<str>", "Debug config string");
|
dbg = arg_str0 ("d", "debug-config", "<str>", "Debug config string");
|
command = arg_lit0 ("i", "interactive", "launch interactive prompt");
|
command = arg_lit0 ("i", "interactive", "launch interactive prompt");
|
|
quiet = arg_lit0 ("q", "quiet", "minimal message output");
|
|
report_mem_errs = arg_lit0 (NULL, "report-memory-errors",
|
|
"Report out of memory accesses");
|
strict_npc = arg_lit0 (NULL, "strict-npc", "setting NPC flushes pipeline");
|
strict_npc = arg_lit0 (NULL, "strict-npc", "setting NPC flushes pipeline");
|
profile = arg_lit0 (NULL, "enable-profile", "enable profiling");
|
profile = arg_lit0 (NULL, "enable-profile", "enable profiling");
|
mprofile = arg_lit0 (NULL, "enable-mprofile", "enable memory profiling");
|
mprofile = arg_lit0 (NULL, "enable-mprofile", "enable memory profiling");
|
load_file = arg_file0 (NULL, NULL, "<file>", "OR32 executable");
|
load_file = arg_file0 (NULL, NULL, "<file>", "OR32 executable");
|
end = arg_end (20);
|
end = arg_end (20);
|
Line 315... |
Line 320... |
argtab[ 2] = cfg_file;
|
argtab[ 2] = cfg_file;
|
argtab[ 3] = nosrv;
|
argtab[ 3] = nosrv;
|
argtab[ 4] = srv;
|
argtab[ 4] = srv;
|
argtab[ 5] = dbg;
|
argtab[ 5] = dbg;
|
argtab[ 6] = command;
|
argtab[ 6] = command;
|
argtab[ 7] = strict_npc;
|
argtab[ 7] = quiet;
|
argtab[ 8] = profile;
|
argtab[ 8] = report_mem_errs;
|
argtab[ 9] = mprofile;
|
argtab[ 9] = strict_npc;
|
argtab[10] = load_file;
|
argtab[10] = profile;
|
argtab[11] = end;
|
argtab[11] = mprofile;
|
|
argtab[12] = load_file;
|
|
argtab[13] = end;
|
|
|
/* Parse */
|
/* Parse */
|
nerrors = arg_parse (argc, argv, argtab);
|
nerrors = arg_parse (argc, argv, argtab);
|
|
|
/* Special case here is if help or version is specified, we ignore any other
|
/* Special case here is if help or version is specified, we ignore any other
|
Line 398... |
Line 405... |
}
|
}
|
|
|
/* Interactive operation */
|
/* Interactive operation */
|
runtime.sim.iprompt = command->count;
|
runtime.sim.iprompt = command->count;
|
|
|
|
/* Request for quiet running */
|
|
config.sim.quiet = quiet->count;
|
|
|
|
/* Request for quiet running */
|
|
config.sim.report_mem_errs = report_mem_errs->count;
|
|
|
/* Request for strict NPC behavior (flush the pipeline on change) */
|
/* Request for strict NPC behavior (flush the pipeline on change) */
|
config.sim.strict_npc = strict_npc->count;
|
config.sim.strict_npc = strict_npc->count;
|
|
|
/* Profiling requests */
|
/* Profiling requests */
|
config.sim.profile = profile->count;
|
config.sim.profile = profile->count;
|