/* Generate targ-vals.h and targ-map.c. */
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
struct tdefs {
char *symbol;
int value;
};
+static struct tdefs sys_tdefs[] = {
+#define sys_defs
+#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 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;
printf ("#ifndef TARG_VALS_H\n");
printf ("#define TARG_VALS_H\n\n");
+ printf ("/* syscall values */\n");
+ for (t = &sys_tdefs[0]; t->symbol; ++t)
+ printf ("#define TARGET_%s %d\n", t->symbol, t->value);
+ printf ("\n");
+
printf ("/* errno values */\n");
for (t = &errno_tdefs[0]; t->symbol; ++t)
printf ("#define TARGET_%s %d\n", t->symbol, t->value);
}
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 \"config.h\"\n");
printf ("#include <errno.h>\n");
printf ("#include <fcntl.h>\n");
printf ("#include \"ansidecl.h\"\n");
- printf ("#include \"callback.h\"\n");
+ printf ("#include \"gdb/callback.h\"\n");
printf ("#include \"targ-vals.h\"\n");
printf ("\n");
+ printf ("/* syscall mapping table */\n");
+ printf ("CB_TARGET_DEFS_MAP cb_init_syscall_map[] = {\n");
+ for (t = &sys_tdefs[0]; t->symbol; ++t)
+ {
+ printf ("#ifdef CB_%s\n", 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 (" { 0, -1, -1 }\n");
+ printf ("};\n\n");
+
printf ("/* errno mapping table */\n");
- printf ("target_defs_map errno_map[] = {\n");
+ printf ("CB_TARGET_DEFS_MAP cb_init_errno_map[] = {\n");
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 }\n");
+ printf (" { 0, 0, 0 }\n");
printf ("};\n\n");
printf ("/* open flags mapping table */\n");
- printf ("target_defs_map open_map[] = {\n");
+ printf ("CB_TARGET_DEFS_MAP cb_init_open_map[] = {\n");
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 ();