sim: move scache init to dynamic modules.c
[deliverable/binutils-gdb.git] / sim / common / gentmap.c
index e4f5d0dc8b43f7b5ba500017c58d2d345d5c4d1d..f1f1bc2c03f3bb1c6d25a86638589d8cf3037589 100644 (file)
@@ -1,6 +1,8 @@
 /* Generate targ-vals.h and targ-map.c.  */
 
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
 struct tdefs {
   char *symbol;
@@ -9,27 +11,34 @@ struct tdefs {
 
 static struct tdefs sys_tdefs[] = {
 #define sys_defs
-#include "targ-vals.def"
+#include "nltvals.def"
 #undef sys_defs
   { 0, 0 }
 };
 
 static struct tdefs errno_tdefs[] =  {
 #define errno_defs
-#include "targ-vals.def"
+#include "nltvals.def"
 #undef errno_defs
   { 0, 0 }
 };
 
+static struct tdefs signal_tdefs[] = {
+#define signal_defs
+#include "nltvals.def"
+#undef signal_defs
+  { 0, 0 }
+};
+
 static struct tdefs open_tdefs[] = {
 #define open_defs
-#include "targ-vals.def"
+#include "nltvals.def"
 #undef open_defs
   { 0, 0 }
 };
 
 static void
-gen_targ_vals_h ()
+gen_targ_vals_h (void)
 {
   struct tdefs *t;
 
@@ -49,6 +58,11 @@ gen_targ_vals_h ()
     printf ("#define TARGET_%s %d\n", t->symbol, t->value);
   printf ("\n");
 
+  printf ("/* signal values */\n");
+  for (t = &signal_tdefs[0]; t->symbol; ++t)
+    printf ("#define TARGET_%s %d\n", t->symbol, t->value);
+  printf ("\n");
+
   printf ("/* open flag values */\n");
   for (t = &open_tdefs[0]; t->symbol; ++t)
     printf ("#define TARGET_%s 0x%x\n", t->symbol, t->value);
@@ -58,17 +72,19 @@ gen_targ_vals_h ()
 }
 
 static void
-gen_targ_map_c ()
+gen_targ_map_c (void)
 {
   struct tdefs *t;
 
   printf ("/* Target value mapping utilities needed by the simulator and gdb.  */\n");
   printf ("/* This file is machine generated by gentmap.c.  */\n\n");
 
+  printf ("#include \"defs.h\"\n");
   printf ("#include <errno.h>\n");
   printf ("#include <fcntl.h>\n");
+  printf ("#include <signal.h>\n");
   printf ("#include \"ansidecl.h\"\n");
-  printf ("#include \"callback.h\"\n");
+  printf ("#include \"sim/callback.h\"\n");
   printf ("#include \"targ-vals.h\"\n");
   printf ("\n");
 
@@ -77,10 +93,11 @@ gen_targ_map_c ()
   for (t = &sys_tdefs[0]; t->symbol; ++t)
     {
       printf ("#ifdef CB_%s\n", t->symbol);
-      printf ("  { CB_%s, TARGET_%s },\n", t->symbol, t->symbol);
+      /* Skip the "SYS_" prefix for the name.  */
+      printf ("  { \"%s\", CB_%s, TARGET_%s },\n", t->symbol + 4, t->symbol, t->symbol);
       printf ("#endif\n");
     }
-  printf ("  { -1, -1 }\n");
+  printf ("  { 0, -1, -1 }\n");
   printf ("};\n\n");
 
   printf ("/* errno mapping table */\n");
@@ -88,10 +105,21 @@ gen_targ_map_c ()
   for (t = &errno_tdefs[0]; t->symbol; ++t)
     {
       printf ("#ifdef %s\n", t->symbol);
-      printf ("  { %s, TARGET_%s },\n", t->symbol, t->symbol);
+      printf ("  { \"%s\", %s, TARGET_%s },\n", t->symbol, t->symbol, t->symbol);
+      printf ("#endif\n");
+    }
+  printf ("  { 0, 0, 0 }\n");
+  printf ("};\n\n");
+
+  printf ("/* signals mapping table */\n");
+  printf ("CB_TARGET_DEFS_MAP cb_init_signal_map[] = {\n");
+  for (t = &signal_tdefs[0]; t->symbol; ++t)
+    {
+      printf ("#ifdef %s\n", t->symbol);
+      printf ("  { \"%s\", %s, TARGET_%s },\n", t->symbol, t->symbol, t->symbol);
       printf ("#endif\n");
     }
-  printf ("  { 0, 0 }\n");
+  printf ("  { 0, -1, -1 }\n");
   printf ("};\n\n");
 
   printf ("/* open flags mapping table */\n");
@@ -99,17 +127,15 @@ gen_targ_map_c ()
   for (t = &open_tdefs[0]; t->symbol; ++t)
     {
       printf ("#ifdef %s\n", t->symbol);
-      printf ("  { %s, TARGET_%s },\n", t->symbol, t->symbol);
+      printf ("  { \"%s\", %s, TARGET_%s },\n", t->symbol, t->symbol, t->symbol);
       printf ("#endif\n");
     }
-  printf ("  { -1, -1 }\n");
+  printf ("  { 0, -1, -1 }\n");
   printf ("};\n\n");
 }
 
 int
-main (argc, argv)
-     int argc;
-     char *argv[];
+main (int argc, char *argv[])
 {
   if (argc != 2)
     abort ();
This page took 0.032017 seconds and 4 git commands to generate.