INLINE_PSIM\
(void)
-psim_usage(int verbose, int help)
+psim_usage (int verbose, int help, SIM_OPEN_KIND kind)
{
printf_filtered("Usage:\n");
printf_filtered("\n");
print_options();
}
- if (REPORT_BUGS_TO[0])
- printf ("Report bugs to %s\n", REPORT_BUGS_TO);
- exit (help ? 0 : 1);
+ if (kind == SIM_OPEN_STANDALONE)
+ {
+ if (REPORT_BUGS_TO[0])
+ printf ("Report bugs to %s\n", REPORT_BUGS_TO);
+ exit (help ? 0 : 1);
+ }
}
/* Test "string" for containing a string of digits that form a number
INLINE_PSIM\
(char **)
psim_options(device *root,
- char **argv)
+ char **argv,
+ SIM_OPEN_KIND kind)
{
device *current = root;
int argp;
switch (*p) {
default:
printf_filtered ("Invalid Option: %s\n", argv[argp]);
- psim_usage(0, 0);
- error ("");
- break;
+ psim_usage (0, 0, kind);
+ return NULL;
case 'c':
param = find_arg("Missing <count> option for -c (max-iterations)\n", &argp, argv);
tree_parse(root, "/openprom/options/max-iterations %s", param);
else
{
printf_filtered ("Invalid <endian> option for -E (target-endian)\n");
- psim_usage (0, 0);
+ psim_usage (0, 0, kind);
+ return NULL;
}
break;
case 'f':
break;
case 'h':
case '?':
- psim_usage(1, 1);
- break;
+ psim_usage (1, 1, kind);
+ return NULL;
case 'H':
- psim_usage(2, 1);
- break;
+ psim_usage (2, 1, kind);
+ return NULL;
case 'i':
if (isdigit(p[1])) {
tree_parse(root, "/openprom/trace/print-info %c", p[1]);
printf_filtered("Warning - architecture parameter ignored\n");
}
else if (strcmp (argv[argp], "--help") == 0)
- psim_usage (0, 1);
+ {
+ psim_usage (0, 1, kind);
+ return NULL;
+ }
else if (strncmp (argv[argp], "--sysroot=",
sizeof ("--sysroot=") - 1) == 0)
/* Ignore this option. */
{
extern const char version[];
printf ("GNU simulator %s%s\n", PKGVERSION, version);
- exit (0);
+ if (kind == SIM_OPEN_STANDALONE)
+ exit (0);
+ else
+ return NULL;
}
else
{
printf_filtered ("Invalid option: %s\n", argv[argp]);
- psim_usage (0, 0);
- error ("");
+ psim_usage (0, 0, kind);
+ return NULL;
}
break;
}