diff options
author | Mike Frysinger <vapier@gentoo.org> | 2021-06-20 22:55:44 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2021-06-22 19:38:09 -0400 |
commit | cc40b4f2a3c66db1219e851c837c9e5481124aab (patch) | |
tree | e2f52273d8d885c995ad7ceef8ece22d3d9861a5 /sim/common/gentmap.c | |
parent | c45cffdbe1a1b816fd9a88f88bb83bd7078a1e4e (diff) | |
download | gdb-cc40b4f2a3c66db1219e851c837c9e5481124aab.zip gdb-cc40b4f2a3c66db1219e851c837c9e5481124aab.tar.gz gdb-cc40b4f2a3c66db1219e851c837c9e5481124aab.tar.bz2 |
sim: callback: generate signal map
We've been generating the syscall/errno/open maps, but not the signal
map, even though we've been including them in the source constants.
Diffstat (limited to 'sim/common/gentmap.c')
-rw-r--r-- | sim/common/gentmap.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/sim/common/gentmap.c b/sim/common/gentmap.c index 254ec3f..f1f1bc2 100644 --- a/sim/common/gentmap.c +++ b/sim/common/gentmap.c @@ -23,6 +23,13 @@ static struct tdefs errno_tdefs[] = { { 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 "nltvals.def" @@ -51,6 +58,11 @@ gen_targ_vals_h (void) 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); @@ -70,6 +82,7 @@ gen_targ_map_c (void) 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 \"sim/callback.h\"\n"); printf ("#include \"targ-vals.h\"\n"); @@ -98,6 +111,17 @@ gen_targ_map_c (void) 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, -1, -1 }\n"); + printf ("};\n\n"); + printf ("/* open flags mapping table */\n"); printf ("CB_TARGET_DEFS_MAP cb_init_open_map[] = {\n"); for (t = &open_tdefs[0]; t->symbol; ++t) |