Fix TCL error in gdb.python/py-format-string.exp.
[deliverable/binutils-gdb.git] / sim / ppc / psim.c
index 3e7638690a1c83e2f9cbeb68d0c31c4289dd0833..3e322e3820f83830d5076cf46fe7e69ee48804b8 100644 (file)
@@ -4,7 +4,7 @@
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
+    the Free Software Foundation; either version 3 of the License, or
     (at your option) any later version.
 
     This program is distributed in the hope that it will be useful,
     (at your option) any later version.
 
     This program is distributed in the hope that it will be useful,
@@ -13,8 +13,7 @@
     GNU General Public License for more details.
  
     You should have received a copy of the GNU General Public License
     GNU General Public License for more details.
  
     You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+    along with this program; if not, see <http://www.gnu.org/licenses/>.
  
     */
 
  
     */
 
@@ -119,7 +118,7 @@ find_arg(char *err_msg,
 
 INLINE_PSIM\
 (void)
 
 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");
 {
   printf_filtered("Usage:\n");
   printf_filtered("\n");
@@ -218,9 +217,12 @@ psim_usage(int verbose, int help)
     print_options();
   }
 
     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
 }
 
 /* Test "string" for containing a string of digits that form a number
@@ -248,7 +250,8 @@ int is_num( char *string, int min, int max, int err)
 INLINE_PSIM\
 (char **)
 psim_options(device *root,
 INLINE_PSIM\
 (char **)
 psim_options(device *root,
-            char **argv)
+            char **argv,
+            SIM_OPEN_KIND kind)
 {
   device *current = root;
   int argp;
 {
   device *current = root;
   int argp;
@@ -262,9 +265,8 @@ psim_options(device *root,
       switch (*p) {
       default:
        printf_filtered ("Invalid Option: %s\n", argv[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);
       case 'c':
        param = find_arg("Missing <count> option for -c (max-iterations)\n", &argp, argv);
        tree_parse(root, "/openprom/options/max-iterations %s", param);
@@ -283,7 +285,8 @@ psim_options(device *root,
        else
          {
            printf_filtered ("Invalid <endian> option for -E (target-endian)\n");
        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 'f':
@@ -292,11 +295,11 @@ psim_options(device *root,
        break;
       case 'h':
       case '?':
        break;
       case 'h':
       case '?':
-       psim_usage(1, 1);
-       break;
+       psim_usage (1, 1, kind);
+       return NULL;
       case 'H':
       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]);
       case 'i':
        if (isdigit(p[1])) {
          tree_parse(root, "/openprom/trace/print-info %c", p[1]);
@@ -357,7 +360,10 @@ psim_options(device *root,
          printf_filtered("Warning - architecture parameter ignored\n");
         }
        else if (strcmp (argv[argp], "--help") == 0)
          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.  */
        else if (strncmp (argv[argp], "--sysroot=",
                          sizeof ("--sysroot=") - 1) == 0)
          /* Ignore this option.  */
@@ -366,13 +372,16 @@ psim_options(device *root,
          {
            extern const char version[];
            printf ("GNU simulator %s%s\n", PKGVERSION, version);
          {
            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]);
          }
        else
          {
            printf_filtered ("Invalid option: %s\n", argv[argp]);
-           psim_usage (0, 0);
-           error ("");
+           psim_usage (0, 0, kind);
+           return NULL;
          }
        break;
       }
          }
        break;
       }
@@ -592,7 +601,7 @@ cntrl_c_simulation(void *data)
   psim_halt(system,
            psim_nr_cpus(system),
            was_continuing,
   psim_halt(system,
            psim_nr_cpus(system),
            was_continuing,
-           TARGET_SIGNAL_INT);
+           GDB_SIGNAL_INT);
 }
 
 INLINE_PSIM\
 }
 
 INLINE_PSIM\
This page took 0.02485 seconds and 4 git commands to generate.