diff options
Diffstat (limited to 'sim')
-rw-r--r-- | sim/Makefile.am | 5 | ||||
-rw-r--r-- | sim/Makefile.in | 24 | ||||
-rw-r--r-- | sim/README-HACKING | 23 | ||||
-rw-r--r-- | sim/common/Make-common.in | 15 | ||||
-rwxr-xr-x | sim/common/gennltvals.py | 77 | ||||
-rw-r--r-- | sim/common/local.mk | 1 | ||||
-rw-r--r-- | sim/common/target-newlib-syscall.c | 634 | ||||
-rw-r--r-- | sim/common/target-newlib-syscall.h | 237 | ||||
-rw-r--r-- | sim/ppc/Makefile.in | 36 |
9 files changed, 987 insertions, 65 deletions
diff --git a/sim/Makefile.am b/sim/Makefile.am index 909bec0..c3e7e76 100644 --- a/sim/Makefile.am +++ b/sim/Makefile.am @@ -49,12 +49,9 @@ LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ # into any subdirs. SIM_ALL_RECURSIVE_DEPS = -# Generate nltvals.def for newlib/libgloss using devo and build tree. +# Generate target constants for newlib/libgloss from its source tree. # This file is shipped with distributions so we build in the source dir. # Use `make nltvals' to rebuild. -# Note: If gdb releases begin to contain target header files (not a good idea, -# but if they did ...), nltvals.def coud be generated at build time. -# An alternative is to slurp in the tables at runtime. .PHONY: nltvals nltvals: $(srccom)/gennltvals.py --cpp "$(CPP)" diff --git a/sim/Makefile.in b/sim/Makefile.in index 1dae0a4..250fb49 100644 --- a/sim/Makefile.in +++ b/sim/Makefile.in @@ -647,6 +647,7 @@ am_common_libcommon_a_OBJECTS = \ common/common_libcommon_a-target-newlib-errno.$(OBJEXT) \ common/common_libcommon_a-target-newlib-open.$(OBJEXT) \ common/common_libcommon_a-target-newlib-signal.$(OBJEXT) \ + common/common_libcommon_a-target-newlib-syscall.$(OBJEXT) \ common/common_libcommon_a-version.$(OBJEXT) common_libcommon_a_OBJECTS = $(am_common_libcommon_a_OBJECTS) igen_libigen_a_AR = $(AR) $(ARFLAGS) @@ -1286,6 +1287,7 @@ common_libcommon_a_SOURCES = \ common/target-newlib-errno.c \ common/target-newlib-open.c \ common/target-newlib-signal.c \ + common/target-newlib-syscall.c \ common/version.c @@ -1622,6 +1624,8 @@ common/common_libcommon_a-target-newlib-open.$(OBJEXT): \ common/$(am__dirstamp) common/$(DEPDIR)/$(am__dirstamp) common/common_libcommon_a-target-newlib-signal.$(OBJEXT): \ common/$(am__dirstamp) common/$(DEPDIR)/$(am__dirstamp) +common/common_libcommon_a-target-newlib-syscall.$(OBJEXT): \ + common/$(am__dirstamp) common/$(DEPDIR)/$(am__dirstamp) common/common_libcommon_a-version.$(OBJEXT): common/$(am__dirstamp) \ common/$(DEPDIR)/$(am__dirstamp) @@ -1812,6 +1816,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-target-newlib-errno.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-target-newlib-open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-target-newlib-signal.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-target-newlib-syscall.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-version.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@cr16/$(DEPDIR)/gencode.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@d10v/$(DEPDIR)/gencode.Po@am__quote@ @@ -1951,6 +1956,20 @@ common/common_libcommon_a-target-newlib-signal.obj: common/target-newlib-signal. @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o common/common_libcommon_a-target-newlib-signal.obj `if test -f 'common/target-newlib-signal.c'; then $(CYGPATH_W) 'common/target-newlib-signal.c'; else $(CYGPATH_W) '$(srcdir)/common/target-newlib-signal.c'; fi` +common/common_libcommon_a-target-newlib-syscall.o: common/target-newlib-syscall.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT common/common_libcommon_a-target-newlib-syscall.o -MD -MP -MF common/$(DEPDIR)/common_libcommon_a-target-newlib-syscall.Tpo -c -o common/common_libcommon_a-target-newlib-syscall.o `test -f 'common/target-newlib-syscall.c' || echo '$(srcdir)/'`common/target-newlib-syscall.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) common/$(DEPDIR)/common_libcommon_a-target-newlib-syscall.Tpo common/$(DEPDIR)/common_libcommon_a-target-newlib-syscall.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/target-newlib-syscall.c' object='common/common_libcommon_a-target-newlib-syscall.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o common/common_libcommon_a-target-newlib-syscall.o `test -f 'common/target-newlib-syscall.c' || echo '$(srcdir)/'`common/target-newlib-syscall.c + +common/common_libcommon_a-target-newlib-syscall.obj: common/target-newlib-syscall.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT common/common_libcommon_a-target-newlib-syscall.obj -MD -MP -MF common/$(DEPDIR)/common_libcommon_a-target-newlib-syscall.Tpo -c -o common/common_libcommon_a-target-newlib-syscall.obj `if test -f 'common/target-newlib-syscall.c'; then $(CYGPATH_W) 'common/target-newlib-syscall.c'; else $(CYGPATH_W) '$(srcdir)/common/target-newlib-syscall.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) common/$(DEPDIR)/common_libcommon_a-target-newlib-syscall.Tpo common/$(DEPDIR)/common_libcommon_a-target-newlib-syscall.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/target-newlib-syscall.c' object='common/common_libcommon_a-target-newlib-syscall.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o common/common_libcommon_a-target-newlib-syscall.obj `if test -f 'common/target-newlib-syscall.c'; then $(CYGPATH_W) 'common/target-newlib-syscall.c'; else $(CYGPATH_W) '$(srcdir)/common/target-newlib-syscall.c'; fi` + common/common_libcommon_a-version.o: common/version.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT common/common_libcommon_a-version.o -MD -MP -MF common/$(DEPDIR)/common_libcommon_a-version.Tpo -c -o common/common_libcommon_a-version.o `test -f 'common/version.c' || echo '$(srcdir)/'`common/version.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) common/$(DEPDIR)/common_libcommon_a-version.Tpo common/$(DEPDIR)/common_libcommon_a-version.Po @@ -2626,12 +2645,9 @@ uninstall-am: uninstall-armdocDATA uninstall-erc32docDATA \ .PRECIOUS: Makefile -# Generate nltvals.def for newlib/libgloss using devo and build tree. +# Generate target constants for newlib/libgloss from its source tree. # This file is shipped with distributions so we build in the source dir. # Use `make nltvals' to rebuild. -# Note: If gdb releases begin to contain target header files (not a good idea, -# but if they did ...), nltvals.def coud be generated at build time. -# An alternative is to slurp in the tables at runtime. .PHONY: nltvals nltvals: $(srccom)/gennltvals.py --cpp "$(CPP)" diff --git a/sim/README-HACKING b/sim/README-HACKING index 9bb705e..38915bf 100644 --- a/sim/README-HACKING +++ b/sim/README-HACKING @@ -20,10 +20,7 @@ The common directory contains: - common Makefile fragment and configury (e.g. Make-common.in, aclocal.m4). In addition "common" contains portions of the system call support -(e.g. callback.c, nltvals.def). - -Even though no files are built in this directory, it is still configured -so support for regenerating nltvals.def is present. +(e.g. callback.c, target-newlib-*.c). Common Makefile Support ======================= @@ -161,8 +158,8 @@ internal state pretty printed from gdb. FIXME: This can obviously be made more elaborate. As needed it will be. -Rebuilding nltvals.def -====================== +Rebuilding target-newlib-* files +================================ Checkout a copy of the SIM and LIBGLOSS modules (Unless you've already got one to hand): @@ -191,17 +188,9 @@ all set! If the target has a custom syscall table, you need to declare it: Add your new processor target (you'll need to grub around to find where your syscall.h lives). - devo/sim/<processor>/Makefile.in - - Add the definition: - - ``NL_TARGET = -DNL_TARGET_d10v'' - - just before the line COMMON_POST_CONFIG_FRAG. - devo/sim/<processor>/*.[ch] - Include targ-vals.h instead of syscall.h. + Include target-newlib-syscall.h instead of syscall.h. Tracing ======= @@ -335,8 +324,8 @@ only store the error code when the result is an error. Keep in mind that the CB_SYS_xxx defines are normalized values with no real meaning with respect to the target. They provide a unique map on the host so -that it can parse things sanely. For libgloss, the common/nltvals.def file -creates the target's system call numbers to the CB_SYS_xxx values. +that it can parse things sanely. For libgloss, the common/target-newlib-syscall +file contains the target's system call numbers to the CB_SYS_xxx values. To simulate other userspace targets, you really only need to update the maps pointers that are part of the callback interface. So create CB_TARGET_DEFS_MAP diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in index 9be682e..f834edb 100644 --- a/sim/common/Make-common.in +++ b/sim/common/Make-common.in @@ -238,7 +238,14 @@ COMMON_OBJS_NAMES = \ version.o COMMON_OBJS = $(COMMON_OBJS_NAMES:%=../common/common_libcommon_a-%) -LIB_OBJS = modules.o syscall.o targ-map.o $(COMMON_OBJS) $(SIM_OBJS) +LIB_OBJS = modules.o syscall.o $(COMMON_OBJS) $(SIM_OBJS) + +# TODO: Migrate everyone to target-newlib-syscall.o. +ifeq ($(NL_TARGET),) +COMMON_OBJS_NAMES += target-newlib-syscall.o +else +LIB_OBJS += targ-map.o +endif COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS) LINK_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(LDFLAGS_FOR_BUILD) -o $@ @@ -275,9 +282,11 @@ stamp-tvals: gentmap $(ECHO_STAMP) targ-vals.h $(SILENCE) ./gentmap -h >tmp-tvals.h $(SILENCE) $(SHELL) $(srcroot)/move-if-change tmp-tvals.h targ-vals.h +ifneq ($(NL_TARGET),) $(ECHO_STAMP) targ-tmap.c $(SILENCE) ./gentmap -c >tmp-tmap.c $(SILENCE) $(SHELL) $(srcroot)/move-if-change tmp-tmap.c targ-map.c +endif $(SILENCE) touch $@ # @@ -405,8 +414,10 @@ generated_files = \ $(SIM_EXTRA_DEPS) \ hw-config.h \ modules.c \ - targ-map.c \ targ-vals.h +ifneq ($(NL_TARGET),) +generated_files += targ-map.c +endif # Ensure that generated files are created early. Use order-only # dependencies if available. They require GNU make 3.80 or newer, diff --git a/sim/common/gennltvals.py b/sim/common/gennltvals.py index 66ee9c5..1e98691 100755 --- a/sim/common/gennltvals.py +++ b/sim/common/gennltvals.py @@ -177,15 +177,80 @@ def gen_common(output_dir: Path, output: TextIO, newlib: Path, cpp: str): ('fcntl.h', 'sys/fcntl.h', 'sys/_default_fcntl.h'), r'O_[A-Z0-9]*') -def gen_targets(output_dir: Path, output: TextIO, newlib: Path, cpp: str): - """Generate the target-specific lists.""" +def gen_target_syscall(output_dir: Path, newlib: Path, cpp: str): + """Generate the target-specific syscall lists.""" + target_map_c = output_dir / 'target-newlib-syscall.c' + old_lines_c = target_map_c.read_text().splitlines() + start_i = end_i = None + for i, line in enumerate(old_lines_c): + if START_MARKER in line: + start_i = i + if END_MARKER in line: + end_i = i + assert start_i and end_i, f'{target_map_c}: Unable to find markers' + new_lines_c = old_lines_c[0:start_i + 1] + new_lines_c_end = old_lines_c[end_i:] + + target_map_h = output_dir / 'target-newlib-syscall.h' + old_lines_h = target_map_h.read_text().splitlines() + start_i = end_i = None + for i, line in enumerate(old_lines_h): + if START_MARKER in line: + start_i = i + if END_MARKER in line: + end_i = i + assert start_i and end_i, f'{target_map_h}: Unable to find markers' + new_lines_h = old_lines_h[0:start_i + 1] + new_lines_h_end = old_lines_h[end_i:] + + headers = ('syscall.h',) + pattern = r'SYS_[_a-zA-Z0-9]*' + + # Output the target-specific syscalls. for target, subdir in sorted(TARGET_DIRS.items()): - gentvals(output_dir, output, cpp, 'sys', newlib / subdir, - ('syscall.h',), r'SYS_[_a-zA-Z0-9]*', target=target) + syms = extract_syms(cpp, newlib / subdir, headers, pattern) + new_lines_c.append(f'CB_TARGET_DEFS_MAP cb_{target}_syscall_map[] = {{') + new_lines_c.extend( + f'#ifdef CB_{sym}\n' + ' { ' + f'"{sym[4:]}", CB_{sym}, TARGET_NEWLIB_{target.upper()}_{sym}' + ' },\n' + '#endif' for sym in sorted(syms)) + new_lines_c.append(' {NULL, -1, -1},') + new_lines_c.append('};\n') + + new_lines_h.append( + f'extern CB_TARGET_DEFS_MAP cb_{target}_syscall_map[];') + new_lines_h.extend( + f'#define TARGET_NEWLIB_{target.upper()}_{sym} {val}' + for sym, val in sorted(syms.items())) + new_lines_h.append('') # Then output the common syscall targets. - gentvals(output_dir, output, cpp, 'sys', newlib / 'libgloss', - ('syscall.h',), r'SYS_[_a-zA-Z0-9]*') + syms = extract_syms(cpp, newlib / 'libgloss', headers, pattern) + new_lines_c.append(f'CB_TARGET_DEFS_MAP cb_init_syscall_map[] = {{') + new_lines_c.extend( + f'#ifdef CB_{sym}\n' + f' {{ "{sym[4:]}", CB_{sym}, TARGET_NEWLIB_{sym} }},\n' + f'#endif' for sym in sorted(syms)) + new_lines_c.append(' {NULL, -1, -1},') + new_lines_c.append('};') + + new_lines_h.append('extern CB_TARGET_DEFS_MAP cb_init_syscall_map[];') + new_lines_h.extend( + f'#define TARGET_NEWLIB_{sym} {val}' + for sym, val in sorted(syms.items())) + + new_lines_c.extend(new_lines_c_end) + target_map_c.write_text('\n'.join(new_lines_c) + '\n') + + new_lines_h.extend(new_lines_h_end) + target_map_h.write_text('\n'.join(new_lines_h) + '\n') + + +def gen_targets(output_dir: Path, output: TextIO, newlib: Path, cpp: str): + """Generate the target-specific lists.""" + gen_target_syscall(output_dir, newlib, cpp) def gen(output_dir: Path, output: TextIO, newlib: Path, cpp: str): diff --git a/sim/common/local.mk b/sim/common/local.mk index 2fd7826..a83b487 100644 --- a/sim/common/local.mk +++ b/sim/common/local.mk @@ -40,6 +40,7 @@ noinst_LIBRARIES += %D%/libcommon.a %D%/target-newlib-errno.c \ %D%/target-newlib-open.c \ %D%/target-newlib-signal.c \ + %D%/target-newlib-syscall.c \ %D%/version.c %D%/version.c: %D%/version.c-stamp ; @true diff --git a/sim/common/target-newlib-syscall.c b/sim/common/target-newlib-syscall.c new file mode 100644 index 0000000..1617ee2 --- /dev/null +++ b/sim/common/target-newlib-syscall.c @@ -0,0 +1,634 @@ +/* Target syscall mappings for newlib/libgloss environment. + Copyright 1995-2021 Free Software Foundation, Inc. + Contributed by Mike Frysinger. + + This file is part of simulators. + + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + 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, see <http://www.gnu.org/licenses/>. */ + +/* This must come before any other includes. */ +#include "defs.h" + +#include "sim/callback.h" + +#include "target-newlib-syscall.h" + +/* This file is kept up-to-date via the gennltvals.py script. Do not edit + anything between the START & END comment blocks below. */ + + /* gennltvals: START */ +CB_TARGET_DEFS_MAP cb_cr16_syscall_map[] = { +#ifdef CB_SYS_ARG + { "ARG", CB_SYS_ARG, TARGET_NEWLIB_CR16_SYS_ARG }, +#endif +#ifdef CB_SYS_chdir + { "chdir", CB_SYS_chdir, TARGET_NEWLIB_CR16_SYS_chdir }, +#endif +#ifdef CB_SYS_chmod + { "chmod", CB_SYS_chmod, TARGET_NEWLIB_CR16_SYS_chmod }, +#endif +#ifdef CB_SYS_chown + { "chown", CB_SYS_chown, TARGET_NEWLIB_CR16_SYS_chown }, +#endif +#ifdef CB_SYS_close + { "close", CB_SYS_close, TARGET_NEWLIB_CR16_SYS_close }, +#endif +#ifdef CB_SYS_create + { "create", CB_SYS_create, TARGET_NEWLIB_CR16_SYS_create }, +#endif +#ifdef CB_SYS_execv + { "execv", CB_SYS_execv, TARGET_NEWLIB_CR16_SYS_execv }, +#endif +#ifdef CB_SYS_execve + { "execve", CB_SYS_execve, TARGET_NEWLIB_CR16_SYS_execve }, +#endif +#ifdef CB_SYS_exit + { "exit", CB_SYS_exit, TARGET_NEWLIB_CR16_SYS_exit }, +#endif +#ifdef CB_SYS_fork + { "fork", CB_SYS_fork, TARGET_NEWLIB_CR16_SYS_fork }, +#endif +#ifdef CB_SYS_fstat + { "fstat", CB_SYS_fstat, TARGET_NEWLIB_CR16_SYS_fstat }, +#endif +#ifdef CB_SYS_getpid + { "getpid", CB_SYS_getpid, TARGET_NEWLIB_CR16_SYS_getpid }, +#endif +#ifdef CB_SYS_isatty + { "isatty", CB_SYS_isatty, TARGET_NEWLIB_CR16_SYS_isatty }, +#endif +#ifdef CB_SYS_kill + { "kill", CB_SYS_kill, TARGET_NEWLIB_CR16_SYS_kill }, +#endif +#ifdef CB_SYS_link + { "link", CB_SYS_link, TARGET_NEWLIB_CR16_SYS_link }, +#endif +#ifdef CB_SYS_lseek + { "lseek", CB_SYS_lseek, TARGET_NEWLIB_CR16_SYS_lseek }, +#endif +#ifdef CB_SYS_mknod + { "mknod", CB_SYS_mknod, TARGET_NEWLIB_CR16_SYS_mknod }, +#endif +#ifdef CB_SYS_open + { "open", CB_SYS_open, TARGET_NEWLIB_CR16_SYS_open }, +#endif +#ifdef CB_SYS_pipe + { "pipe", CB_SYS_pipe, TARGET_NEWLIB_CR16_SYS_pipe }, +#endif +#ifdef CB_SYS_read + { "read", CB_SYS_read, TARGET_NEWLIB_CR16_SYS_read }, +#endif +#ifdef CB_SYS_rename + { "rename", CB_SYS_rename, TARGET_NEWLIB_CR16_SYS_rename }, +#endif +#ifdef CB_SYS_stat + { "stat", CB_SYS_stat, TARGET_NEWLIB_CR16_SYS_stat }, +#endif +#ifdef CB_SYS_time + { "time", CB_SYS_time, TARGET_NEWLIB_CR16_SYS_time }, +#endif +#ifdef CB_SYS_unlink + { "unlink", CB_SYS_unlink, TARGET_NEWLIB_CR16_SYS_unlink }, +#endif +#ifdef CB_SYS_utime + { "utime", CB_SYS_utime, TARGET_NEWLIB_CR16_SYS_utime }, +#endif +#ifdef CB_SYS_wait + { "wait", CB_SYS_wait, TARGET_NEWLIB_CR16_SYS_wait }, +#endif +#ifdef CB_SYS_wait4 + { "wait4", CB_SYS_wait4, TARGET_NEWLIB_CR16_SYS_wait4 }, +#endif +#ifdef CB_SYS_write + { "write", CB_SYS_write, TARGET_NEWLIB_CR16_SYS_write }, +#endif + {NULL, -1, -1}, +}; + +CB_TARGET_DEFS_MAP cb_d10v_syscall_map[] = { +#ifdef CB_SYS_ARG + { "ARG", CB_SYS_ARG, TARGET_NEWLIB_D10V_SYS_ARG }, +#endif +#ifdef CB_SYS_chdir + { "chdir", CB_SYS_chdir, TARGET_NEWLIB_D10V_SYS_chdir }, +#endif +#ifdef CB_SYS_chmod + { "chmod", CB_SYS_chmod, TARGET_NEWLIB_D10V_SYS_chmod }, +#endif +#ifdef CB_SYS_chown + { "chown", CB_SYS_chown, TARGET_NEWLIB_D10V_SYS_chown }, +#endif +#ifdef CB_SYS_close + { "close", CB_SYS_close, TARGET_NEWLIB_D10V_SYS_close }, +#endif +#ifdef CB_SYS_creat + { "creat", CB_SYS_creat, TARGET_NEWLIB_D10V_SYS_creat }, +#endif +#ifdef CB_SYS_execv + { "execv", CB_SYS_execv, TARGET_NEWLIB_D10V_SYS_execv }, +#endif +#ifdef CB_SYS_execve + { "execve", CB_SYS_execve, TARGET_NEWLIB_D10V_SYS_execve }, +#endif +#ifdef CB_SYS_exit + { "exit", CB_SYS_exit, TARGET_NEWLIB_D10V_SYS_exit }, +#endif +#ifdef CB_SYS_fork + { "fork", CB_SYS_fork, TARGET_NEWLIB_D10V_SYS_fork }, +#endif +#ifdef CB_SYS_fstat + { "fstat", CB_SYS_fstat, TARGET_NEWLIB_D10V_SYS_fstat }, +#endif +#ifdef CB_SYS_getpid + { "getpid", CB_SYS_getpid, TARGET_NEWLIB_D10V_SYS_getpid }, +#endif +#ifdef CB_SYS_isatty + { "isatty", CB_SYS_isatty, TARGET_NEWLIB_D10V_SYS_isatty }, +#endif +#ifdef CB_SYS_kill + { "kill", CB_SYS_kill, TARGET_NEWLIB_D10V_SYS_kill }, +#endif +#ifdef CB_SYS_link + { "link", CB_SYS_link, TARGET_NEWLIB_D10V_SYS_link }, +#endif +#ifdef CB_SYS_lseek + { "lseek", CB_SYS_lseek, TARGET_NEWLIB_D10V_SYS_lseek }, +#endif +#ifdef CB_SYS_mknod + { "mknod", CB_SYS_mknod, TARGET_NEWLIB_D10V_SYS_mknod }, +#endif +#ifdef CB_SYS_open + { "open", CB_SYS_open, TARGET_NEWLIB_D10V_SYS_open }, +#endif +#ifdef CB_SYS_pipe + { "pipe", CB_SYS_pipe, TARGET_NEWLIB_D10V_SYS_pipe }, +#endif +#ifdef CB_SYS_read + { "read", CB_SYS_read, TARGET_NEWLIB_D10V_SYS_read }, +#endif +#ifdef CB_SYS_stat + { "stat", CB_SYS_stat, TARGET_NEWLIB_D10V_SYS_stat }, +#endif +#ifdef CB_SYS_time + { "time", CB_SYS_time, TARGET_NEWLIB_D10V_SYS_time }, +#endif +#ifdef CB_SYS_unlink + { "unlink", CB_SYS_unlink, TARGET_NEWLIB_D10V_SYS_unlink }, +#endif +#ifdef CB_SYS_utime + { "utime", CB_SYS_utime, TARGET_NEWLIB_D10V_SYS_utime }, +#endif +#ifdef CB_SYS_wait + { "wait", CB_SYS_wait, TARGET_NEWLIB_D10V_SYS_wait }, +#endif +#ifdef CB_SYS_wait4 + { "wait4", CB_SYS_wait4, TARGET_NEWLIB_D10V_SYS_wait4 }, +#endif +#ifdef CB_SYS_write + { "write", CB_SYS_write, TARGET_NEWLIB_D10V_SYS_write }, +#endif + {NULL, -1, -1}, +}; + +CB_TARGET_DEFS_MAP cb_mcore_syscall_map[] = { +#ifdef CB_SYS_access + { "access", CB_SYS_access, TARGET_NEWLIB_MCORE_SYS_access }, +#endif +#ifdef CB_SYS_close + { "close", CB_SYS_close, TARGET_NEWLIB_MCORE_SYS_close }, +#endif +#ifdef CB_SYS_creat + { "creat", CB_SYS_creat, TARGET_NEWLIB_MCORE_SYS_creat }, +#endif +#ifdef CB_SYS_link + { "link", CB_SYS_link, TARGET_NEWLIB_MCORE_SYS_link }, +#endif +#ifdef CB_SYS_lseek + { "lseek", CB_SYS_lseek, TARGET_NEWLIB_MCORE_SYS_lseek }, +#endif +#ifdef CB_SYS_open + { "open", CB_SYS_open, TARGET_NEWLIB_MCORE_SYS_open }, +#endif +#ifdef CB_SYS_read + { "read", CB_SYS_read, TARGET_NEWLIB_MCORE_SYS_read }, +#endif +#ifdef CB_SYS_time + { "time", CB_SYS_time, TARGET_NEWLIB_MCORE_SYS_time }, +#endif +#ifdef CB_SYS_times + { "times", CB_SYS_times, TARGET_NEWLIB_MCORE_SYS_times }, +#endif +#ifdef CB_SYS_unlink + { "unlink", CB_SYS_unlink, TARGET_NEWLIB_MCORE_SYS_unlink }, +#endif +#ifdef CB_SYS_write + { "write", CB_SYS_write, TARGET_NEWLIB_MCORE_SYS_write }, +#endif + {NULL, -1, -1}, +}; + +CB_TARGET_DEFS_MAP cb_riscv_syscall_map[] = { +#ifdef CB_SYS_access + { "access", CB_SYS_access, TARGET_NEWLIB_RISCV_SYS_access }, +#endif +#ifdef CB_SYS_brk + { "brk", CB_SYS_brk, TARGET_NEWLIB_RISCV_SYS_brk }, +#endif +#ifdef CB_SYS_chdir + { "chdir", CB_SYS_chdir, TARGET_NEWLIB_RISCV_SYS_chdir }, +#endif +#ifdef CB_SYS_clock_gettime64 + { "clock_gettime64", CB_SYS_clock_gettime64, TARGET_NEWLIB_RISCV_SYS_clock_gettime64 }, +#endif +#ifdef CB_SYS_close + { "close", CB_SYS_close, TARGET_NEWLIB_RISCV_SYS_close }, +#endif +#ifdef CB_SYS_dup + { "dup", CB_SYS_dup, TARGET_NEWLIB_RISCV_SYS_dup }, +#endif +#ifdef CB_SYS_exit + { "exit", CB_SYS_exit, TARGET_NEWLIB_RISCV_SYS_exit }, +#endif +#ifdef CB_SYS_exit_group + { "exit_group", CB_SYS_exit_group, TARGET_NEWLIB_RISCV_SYS_exit_group }, +#endif +#ifdef CB_SYS_faccessat + { "faccessat", CB_SYS_faccessat, TARGET_NEWLIB_RISCV_SYS_faccessat }, +#endif +#ifdef CB_SYS_fcntl + { "fcntl", CB_SYS_fcntl, TARGET_NEWLIB_RISCV_SYS_fcntl }, +#endif +#ifdef CB_SYS_fstat + { "fstat", CB_SYS_fstat, TARGET_NEWLIB_RISCV_SYS_fstat }, +#endif +#ifdef CB_SYS_fstatat + { "fstatat", CB_SYS_fstatat, TARGET_NEWLIB_RISCV_SYS_fstatat }, +#endif +#ifdef CB_SYS_getcwd + { "getcwd", CB_SYS_getcwd, TARGET_NEWLIB_RISCV_SYS_getcwd }, +#endif +#ifdef CB_SYS_getdents + { "getdents", CB_SYS_getdents, TARGET_NEWLIB_RISCV_SYS_getdents }, +#endif +#ifdef CB_SYS_getegid + { "getegid", CB_SYS_getegid, TARGET_NEWLIB_RISCV_SYS_getegid }, +#endif +#ifdef CB_SYS_geteuid + { "geteuid", CB_SYS_geteuid, TARGET_NEWLIB_RISCV_SYS_geteuid }, +#endif +#ifdef CB_SYS_getgid + { "getgid", CB_SYS_getgid, TARGET_NEWLIB_RISCV_SYS_getgid }, +#endif +#ifdef CB_SYS_getmainvars + { "getmainvars", CB_SYS_getmainvars, TARGET_NEWLIB_RISCV_SYS_getmainvars }, +#endif +#ifdef CB_SYS_getpid + { "getpid", CB_SYS_getpid, TARGET_NEWLIB_RISCV_SYS_getpid }, +#endif +#ifdef CB_SYS_gettimeofday + { "gettimeofday", CB_SYS_gettimeofday, TARGET_NEWLIB_RISCV_SYS_gettimeofday }, +#endif +#ifdef CB_SYS_getuid + { "getuid", CB_SYS_getuid, TARGET_NEWLIB_RISCV_SYS_getuid }, +#endif +#ifdef CB_SYS_kill + { "kill", CB_SYS_kill, TARGET_NEWLIB_RISCV_SYS_kill }, +#endif +#ifdef CB_SYS_link + { "link", CB_SYS_link, TARGET_NEWLIB_RISCV_SYS_link }, +#endif +#ifdef CB_SYS_lseek + { "lseek", CB_SYS_lseek, TARGET_NEWLIB_RISCV_SYS_lseek }, +#endif +#ifdef CB_SYS_lstat + { "lstat", CB_SYS_lstat, TARGET_NEWLIB_RISCV_SYS_lstat }, +#endif +#ifdef CB_SYS_mkdir + { "mkdir", CB_SYS_mkdir, TARGET_NEWLIB_RISCV_SYS_mkdir }, +#endif +#ifdef CB_SYS_mmap + { "mmap", CB_SYS_mmap, TARGET_NEWLIB_RISCV_SYS_mmap }, +#endif +#ifdef CB_SYS_mremap + { "mremap", CB_SYS_mremap, TARGET_NEWLIB_RISCV_SYS_mremap }, +#endif +#ifdef CB_SYS_munmap + { "munmap", CB_SYS_munmap, TARGET_NEWLIB_RISCV_SYS_munmap }, +#endif +#ifdef CB_SYS_open + { "open", CB_SYS_open, TARGET_NEWLIB_RISCV_SYS_open }, +#endif +#ifdef CB_SYS_openat + { "openat", CB_SYS_openat, TARGET_NEWLIB_RISCV_SYS_openat }, +#endif +#ifdef CB_SYS_pread + { "pread", CB_SYS_pread, TARGET_NEWLIB_RISCV_SYS_pread }, +#endif +#ifdef CB_SYS_pwrite + { "pwrite", CB_SYS_pwrite, TARGET_NEWLIB_RISCV_SYS_pwrite }, +#endif +#ifdef CB_SYS_read + { "read", CB_SYS_read, TARGET_NEWLIB_RISCV_SYS_read }, +#endif +#ifdef CB_SYS_rt_sigaction + { "rt_sigaction", CB_SYS_rt_sigaction, TARGET_NEWLIB_RISCV_SYS_rt_sigaction }, +#endif +#ifdef CB_SYS_stat + { "stat", CB_SYS_stat, TARGET_NEWLIB_RISCV_SYS_stat }, +#endif +#ifdef CB_SYS_time + { "time", CB_SYS_time, TARGET_NEWLIB_RISCV_SYS_time }, +#endif +#ifdef CB_SYS_times + { "times", CB_SYS_times, TARGET_NEWLIB_RISCV_SYS_times }, +#endif +#ifdef CB_SYS_uname + { "uname", CB_SYS_uname, TARGET_NEWLIB_RISCV_SYS_uname }, +#endif +#ifdef CB_SYS_unlink + { "unlink", CB_SYS_unlink, TARGET_NEWLIB_RISCV_SYS_unlink }, +#endif +#ifdef CB_SYS_write + { "write", CB_SYS_write, TARGET_NEWLIB_RISCV_SYS_write }, +#endif +#ifdef CB_SYS_writev + { "writev", CB_SYS_writev, TARGET_NEWLIB_RISCV_SYS_writev }, +#endif + {NULL, -1, -1}, +}; + +CB_TARGET_DEFS_MAP cb_sh_syscall_map[] = { +#ifdef CB_SYS_ARG + { "ARG", CB_SYS_ARG, TARGET_NEWLIB_SH_SYS_ARG }, +#endif +#ifdef CB_SYS_argc + { "argc", CB_SYS_argc, TARGET_NEWLIB_SH_SYS_argc }, +#endif +#ifdef CB_SYS_argn + { "argn", CB_SYS_argn, TARGET_NEWLIB_SH_SYS_argn }, +#endif +#ifdef CB_SYS_argnlen + { "argnlen", CB_SYS_argnlen, TARGET_NEWLIB_SH_SYS_argnlen }, +#endif +#ifdef CB_SYS_chdir + { "chdir", CB_SYS_chdir, TARGET_NEWLIB_SH_SYS_chdir }, +#endif +#ifdef CB_SYS_chmod + { "chmod", CB_SYS_chmod, TARGET_NEWLIB_SH_SYS_chmod }, +#endif +#ifdef CB_SYS_chown + { "chown", CB_SYS_chown, TARGET_NEWLIB_SH_SYS_chown }, +#endif +#ifdef CB_SYS_close + { "close", CB_SYS_close, TARGET_NEWLIB_SH_SYS_close }, +#endif +#ifdef CB_SYS_creat + { "creat", CB_SYS_creat, TARGET_NEWLIB_SH_SYS_creat }, +#endif +#ifdef CB_SYS_execv + { "execv", CB_SYS_execv, TARGET_NEWLIB_SH_SYS_execv }, +#endif +#ifdef CB_SYS_execve + { "execve", CB_SYS_execve, TARGET_NEWLIB_SH_SYS_execve }, +#endif +#ifdef CB_SYS_exit + { "exit", CB_SYS_exit, TARGET_NEWLIB_SH_SYS_exit }, +#endif +#ifdef CB_SYS_fork + { "fork", CB_SYS_fork, TARGET_NEWLIB_SH_SYS_fork }, +#endif +#ifdef CB_SYS_fstat + { "fstat", CB_SYS_fstat, TARGET_NEWLIB_SH_SYS_fstat }, +#endif +#ifdef CB_SYS_ftruncate + { "ftruncate", CB_SYS_ftruncate, TARGET_NEWLIB_SH_SYS_ftruncate }, +#endif +#ifdef CB_SYS_getpid + { "getpid", CB_SYS_getpid, TARGET_NEWLIB_SH_SYS_getpid }, +#endif +#ifdef CB_SYS_isatty + { "isatty", CB_SYS_isatty, TARGET_NEWLIB_SH_SYS_isatty }, +#endif +#ifdef CB_SYS_link + { "link", CB_SYS_link, TARGET_NEWLIB_SH_SYS_link }, +#endif +#ifdef CB_SYS_lseek + { "lseek", CB_SYS_lseek, TARGET_NEWLIB_SH_SYS_lseek }, +#endif +#ifdef CB_SYS_mknod + { "mknod", CB_SYS_mknod, TARGET_NEWLIB_SH_SYS_mknod }, +#endif +#ifdef CB_SYS_open + { "open", CB_SYS_open, TARGET_NEWLIB_SH_SYS_open }, +#endif +#ifdef CB_SYS_pipe + { "pipe", CB_SYS_pipe, TARGET_NEWLIB_SH_SYS_pipe }, +#endif +#ifdef CB_SYS_read + { "read", CB_SYS_read, TARGET_NEWLIB_SH_SYS_read }, +#endif +#ifdef CB_SYS_stat + { "stat", CB_SYS_stat, TARGET_NEWLIB_SH_SYS_stat }, +#endif +#ifdef CB_SYS_time + { "time", CB_SYS_time, TARGET_NEWLIB_SH_SYS_time }, +#endif +#ifdef CB_SYS_truncate + { "truncate", CB_SYS_truncate, TARGET_NEWLIB_SH_SYS_truncate }, +#endif +#ifdef CB_SYS_unlink + { "unlink", CB_SYS_unlink, TARGET_NEWLIB_SH_SYS_unlink }, +#endif +#ifdef CB_SYS_utime + { "utime", CB_SYS_utime, TARGET_NEWLIB_SH_SYS_utime }, +#endif +#ifdef CB_SYS_wait + { "wait", CB_SYS_wait, TARGET_NEWLIB_SH_SYS_wait }, +#endif +#ifdef CB_SYS_wait4 + { "wait4", CB_SYS_wait4, TARGET_NEWLIB_SH_SYS_wait4 }, +#endif +#ifdef CB_SYS_write + { "write", CB_SYS_write, TARGET_NEWLIB_SH_SYS_write }, +#endif + {NULL, -1, -1}, +}; + +CB_TARGET_DEFS_MAP cb_v850_syscall_map[] = { +#ifdef CB_SYS_ARG + { "ARG", CB_SYS_ARG, TARGET_NEWLIB_V850_SYS_ARG }, +#endif +#ifdef CB_SYS_chdir + { "chdir", CB_SYS_chdir, TARGET_NEWLIB_V850_SYS_chdir }, +#endif +#ifdef CB_SYS_chmod + { "chmod", CB_SYS_chmod, TARGET_NEWLIB_V850_SYS_chmod }, +#endif +#ifdef CB_SYS_chown + { "chown", CB_SYS_chown, TARGET_NEWLIB_V850_SYS_chown }, +#endif +#ifdef CB_SYS_close + { "close", CB_SYS_close, TARGET_NEWLIB_V850_SYS_close }, +#endif +#ifdef CB_SYS_creat + { "creat", CB_SYS_creat, TARGET_NEWLIB_V850_SYS_creat }, +#endif +#ifdef CB_SYS_execv + { "execv", CB_SYS_execv, TARGET_NEWLIB_V850_SYS_execv }, +#endif +#ifdef CB_SYS_execve + { "execve", CB_SYS_execve, TARGET_NEWLIB_V850_SYS_execve }, +#endif +#ifdef CB_SYS_exit + { "exit", CB_SYS_exit, TARGET_NEWLIB_V850_SYS_exit }, +#endif +#ifdef CB_SYS_fork + { "fork", CB_SYS_fork, TARGET_NEWLIB_V850_SYS_fork }, +#endif +#ifdef CB_SYS_fstat + { "fstat", CB_SYS_fstat, TARGET_NEWLIB_V850_SYS_fstat }, +#endif +#ifdef CB_SYS_getpid + { "getpid", CB_SYS_getpid, TARGET_NEWLIB_V850_SYS_getpid }, +#endif +#ifdef CB_SYS_gettimeofday + { "gettimeofday", CB_SYS_gettimeofday, TARGET_NEWLIB_V850_SYS_gettimeofday }, +#endif +#ifdef CB_SYS_isatty + { "isatty", CB_SYS_isatty, TARGET_NEWLIB_V850_SYS_isatty }, +#endif +#ifdef CB_SYS_link + { "link", CB_SYS_link, TARGET_NEWLIB_V850_SYS_link }, +#endif +#ifdef CB_SYS_lseek + { "lseek", CB_SYS_lseek, TARGET_NEWLIB_V850_SYS_lseek }, +#endif +#ifdef CB_SYS_mknod + { "mknod", CB_SYS_mknod, TARGET_NEWLIB_V850_SYS_mknod }, +#endif +#ifdef CB_SYS_open + { "open", CB_SYS_open, TARGET_NEWLIB_V850_SYS_open }, +#endif +#ifdef CB_SYS_pipe + { "pipe", CB_SYS_pipe, TARGET_NEWLIB_V850_SYS_pipe }, +#endif +#ifdef CB_SYS_read + { "read", CB_SYS_read, TARGET_NEWLIB_V850_SYS_read }, +#endif +#ifdef CB_SYS_rename + { "rename", CB_SYS_rename, TARGET_NEWLIB_V850_SYS_rename }, +#endif +#ifdef CB_SYS_stat + { "stat", CB_SYS_stat, TARGET_NEWLIB_V850_SYS_stat }, +#endif +#ifdef CB_SYS_time + { "time", CB_SYS_time, TARGET_NEWLIB_V850_SYS_time }, +#endif +#ifdef CB_SYS_times + { "times", CB_SYS_times, TARGET_NEWLIB_V850_SYS_times }, +#endif +#ifdef CB_SYS_unlink + { "unlink", CB_SYS_unlink, TARGET_NEWLIB_V850_SYS_unlink }, +#endif +#ifdef CB_SYS_utime + { "utime", CB_SYS_utime, TARGET_NEWLIB_V850_SYS_utime }, +#endif +#ifdef CB_SYS_wait + { "wait", CB_SYS_wait, TARGET_NEWLIB_V850_SYS_wait }, +#endif +#ifdef CB_SYS_wait4 + { "wait4", CB_SYS_wait4, TARGET_NEWLIB_V850_SYS_wait4 }, +#endif +#ifdef CB_SYS_write + { "write", CB_SYS_write, TARGET_NEWLIB_V850_SYS_write }, +#endif + {NULL, -1, -1}, +}; + +CB_TARGET_DEFS_MAP cb_init_syscall_map[] = { +#ifdef CB_SYS_argc + { "argc", CB_SYS_argc, TARGET_NEWLIB_SYS_argc }, +#endif +#ifdef CB_SYS_argn + { "argn", CB_SYS_argn, TARGET_NEWLIB_SYS_argn }, +#endif +#ifdef CB_SYS_argnlen + { "argnlen", CB_SYS_argnlen, TARGET_NEWLIB_SYS_argnlen }, +#endif +#ifdef CB_SYS_argv + { "argv", CB_SYS_argv, TARGET_NEWLIB_SYS_argv }, +#endif +#ifdef CB_SYS_argvlen + { "argvlen", CB_SYS_argvlen, TARGET_NEWLIB_SYS_argvlen }, +#endif +#ifdef CB_SYS_chdir + { "chdir", CB_SYS_chdir, TARGET_NEWLIB_SYS_chdir }, +#endif +#ifdef CB_SYS_chmod + { "chmod", CB_SYS_chmod, TARGET_NEWLIB_SYS_chmod }, +#endif +#ifdef CB_SYS_close + { "close", CB_SYS_close, TARGET_NEWLIB_SYS_close }, +#endif +#ifdef CB_SYS_exit + { "exit", CB_SYS_exit, TARGET_NEWLIB_SYS_exit }, +#endif +#ifdef CB_SYS_fstat + { "fstat", CB_SYS_fstat, TARGET_NEWLIB_SYS_fstat }, +#endif +#ifdef CB_SYS_getpid + { "getpid", CB_SYS_getpid, TARGET_NEWLIB_SYS_getpid }, +#endif +#ifdef CB_SYS_gettimeofday + { "gettimeofday", CB_SYS_gettimeofday, TARGET_NEWLIB_SYS_gettimeofday }, +#endif +#ifdef CB_SYS_kill + { "kill", CB_SYS_kill, TARGET_NEWLIB_SYS_kill }, +#endif +#ifdef CB_SYS_link + { "link", CB_SYS_link, TARGET_NEWLIB_SYS_link }, +#endif +#ifdef CB_SYS_lseek + { "lseek", CB_SYS_lseek, TARGET_NEWLIB_SYS_lseek }, +#endif +#ifdef CB_SYS_open + { "open", CB_SYS_open, TARGET_NEWLIB_SYS_open }, +#endif +#ifdef CB_SYS_read + { "read", CB_SYS_read, TARGET_NEWLIB_SYS_read }, +#endif +#ifdef CB_SYS_reconfig + { "reconfig", CB_SYS_reconfig, TARGET_NEWLIB_SYS_reconfig }, +#endif +#ifdef CB_SYS_stat + { "stat", CB_SYS_stat, TARGET_NEWLIB_SYS_stat }, +#endif +#ifdef CB_SYS_time + { "time", CB_SYS_time, TARGET_NEWLIB_SYS_time }, +#endif +#ifdef CB_SYS_times + { "times", CB_SYS_times, TARGET_NEWLIB_SYS_times }, +#endif +#ifdef CB_SYS_unlink + { "unlink", CB_SYS_unlink, TARGET_NEWLIB_SYS_unlink }, +#endif +#ifdef CB_SYS_utime + { "utime", CB_SYS_utime, TARGET_NEWLIB_SYS_utime }, +#endif +#ifdef CB_SYS_write + { "write", CB_SYS_write, TARGET_NEWLIB_SYS_write }, +#endif + {NULL, -1, -1}, +}; + /* gennltvals: END */ diff --git a/sim/common/target-newlib-syscall.h b/sim/common/target-newlib-syscall.h new file mode 100644 index 0000000..fed9da5 --- /dev/null +++ b/sim/common/target-newlib-syscall.h @@ -0,0 +1,237 @@ +/* Target syscall mappings for newlib/libgloss environment. + Copyright 1995-2021 Free Software Foundation, Inc. + Contributed by Mike Frysinger. + + This file is part of simulators. + + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + 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, see <http://www.gnu.org/licenses/>. */ + +#ifndef TARGET_NEWLIB_SYSCALL_H +#define TARGET_NEWLIB_SYSCALL_H + +/* For CB_TARGET_DEFS_MAP. */ +#include "sim/callback.h" + +/* This file is kept up-to-date via the gennltvals.py script. Do not edit + anything between the START & END comment blocks below. */ + + /* gennltvals: START */ +extern CB_TARGET_DEFS_MAP cb_cr16_syscall_map[]; +#define TARGET_NEWLIB_CR16_SYS_ARG 24 +#define TARGET_NEWLIB_CR16_SYS_chdir 12 +#define TARGET_NEWLIB_CR16_SYS_chmod 15 +#define TARGET_NEWLIB_CR16_SYS_chown 16 +#define TARGET_NEWLIB_CR16_SYS_close 0x402 +#define TARGET_NEWLIB_CR16_SYS_create 8 +#define TARGET_NEWLIB_CR16_SYS_execv 11 +#define TARGET_NEWLIB_CR16_SYS_execve 59 +#define TARGET_NEWLIB_CR16_SYS_exit 0x410 +#define TARGET_NEWLIB_CR16_SYS_fork 2 +#define TARGET_NEWLIB_CR16_SYS_fstat 22 +#define TARGET_NEWLIB_CR16_SYS_getpid 20 +#define TARGET_NEWLIB_CR16_SYS_isatty 21 +#define TARGET_NEWLIB_CR16_SYS_kill 60 +#define TARGET_NEWLIB_CR16_SYS_link 9 +#define TARGET_NEWLIB_CR16_SYS_lseek 0x405 +#define TARGET_NEWLIB_CR16_SYS_mknod 14 +#define TARGET_NEWLIB_CR16_SYS_open 0x401 +#define TARGET_NEWLIB_CR16_SYS_pipe 42 +#define TARGET_NEWLIB_CR16_SYS_read 0x403 +#define TARGET_NEWLIB_CR16_SYS_rename 0x406 +#define TARGET_NEWLIB_CR16_SYS_stat 38 +#define TARGET_NEWLIB_CR16_SYS_time 0x300 +#define TARGET_NEWLIB_CR16_SYS_unlink 0x407 +#define TARGET_NEWLIB_CR16_SYS_utime 201 +#define TARGET_NEWLIB_CR16_SYS_wait 202 +#define TARGET_NEWLIB_CR16_SYS_wait4 7 +#define TARGET_NEWLIB_CR16_SYS_write 0x404 + +extern CB_TARGET_DEFS_MAP cb_d10v_syscall_map[]; +#define TARGET_NEWLIB_D10V_SYS_ARG 24 +#define TARGET_NEWLIB_D10V_SYS_chdir 12 +#define TARGET_NEWLIB_D10V_SYS_chmod 15 +#define TARGET_NEWLIB_D10V_SYS_chown 16 +#define TARGET_NEWLIB_D10V_SYS_close 6 +#define TARGET_NEWLIB_D10V_SYS_creat 8 +#define TARGET_NEWLIB_D10V_SYS_execv 11 +#define TARGET_NEWLIB_D10V_SYS_execve 59 +#define TARGET_NEWLIB_D10V_SYS_exit 1 +#define TARGET_NEWLIB_D10V_SYS_fork 2 +#define TARGET_NEWLIB_D10V_SYS_fstat 22 +#define TARGET_NEWLIB_D10V_SYS_getpid 20 +#define TARGET_NEWLIB_D10V_SYS_isatty 21 +#define TARGET_NEWLIB_D10V_SYS_kill 60 +#define TARGET_NEWLIB_D10V_SYS_link 9 +#define TARGET_NEWLIB_D10V_SYS_lseek 19 +#define TARGET_NEWLIB_D10V_SYS_mknod 14 +#define TARGET_NEWLIB_D10V_SYS_open 5 +#define TARGET_NEWLIB_D10V_SYS_pipe 42 +#define TARGET_NEWLIB_D10V_SYS_read 3 +#define TARGET_NEWLIB_D10V_SYS_stat 38 +#define TARGET_NEWLIB_D10V_SYS_time 23 +#define TARGET_NEWLIB_D10V_SYS_unlink 10 +#define TARGET_NEWLIB_D10V_SYS_utime 201 +#define TARGET_NEWLIB_D10V_SYS_wait 202 +#define TARGET_NEWLIB_D10V_SYS_wait4 7 +#define TARGET_NEWLIB_D10V_SYS_write 4 + +extern CB_TARGET_DEFS_MAP cb_mcore_syscall_map[]; +#define TARGET_NEWLIB_MCORE_SYS_access 33 +#define TARGET_NEWLIB_MCORE_SYS_close 6 +#define TARGET_NEWLIB_MCORE_SYS_creat 8 +#define TARGET_NEWLIB_MCORE_SYS_link 9 +#define TARGET_NEWLIB_MCORE_SYS_lseek 19 +#define TARGET_NEWLIB_MCORE_SYS_open 5 +#define TARGET_NEWLIB_MCORE_SYS_read 3 +#define TARGET_NEWLIB_MCORE_SYS_time 13 +#define TARGET_NEWLIB_MCORE_SYS_times 43 +#define TARGET_NEWLIB_MCORE_SYS_unlink 10 +#define TARGET_NEWLIB_MCORE_SYS_write 4 + +extern CB_TARGET_DEFS_MAP cb_riscv_syscall_map[]; +#define TARGET_NEWLIB_RISCV_SYS_access 1033 +#define TARGET_NEWLIB_RISCV_SYS_brk 214 +#define TARGET_NEWLIB_RISCV_SYS_chdir 49 +#define TARGET_NEWLIB_RISCV_SYS_clock_gettime64 403 +#define TARGET_NEWLIB_RISCV_SYS_close 57 +#define TARGET_NEWLIB_RISCV_SYS_dup 23 +#define TARGET_NEWLIB_RISCV_SYS_exit 93 +#define TARGET_NEWLIB_RISCV_SYS_exit_group 94 +#define TARGET_NEWLIB_RISCV_SYS_faccessat 48 +#define TARGET_NEWLIB_RISCV_SYS_fcntl 25 +#define TARGET_NEWLIB_RISCV_SYS_fstat 80 +#define TARGET_NEWLIB_RISCV_SYS_fstatat 79 +#define TARGET_NEWLIB_RISCV_SYS_getcwd 17 +#define TARGET_NEWLIB_RISCV_SYS_getdents 61 +#define TARGET_NEWLIB_RISCV_SYS_getegid 177 +#define TARGET_NEWLIB_RISCV_SYS_geteuid 175 +#define TARGET_NEWLIB_RISCV_SYS_getgid 176 +#define TARGET_NEWLIB_RISCV_SYS_getmainvars 2011 +#define TARGET_NEWLIB_RISCV_SYS_getpid 172 +#define TARGET_NEWLIB_RISCV_SYS_gettimeofday 169 +#define TARGET_NEWLIB_RISCV_SYS_getuid 174 +#define TARGET_NEWLIB_RISCV_SYS_kill 129 +#define TARGET_NEWLIB_RISCV_SYS_link 1025 +#define TARGET_NEWLIB_RISCV_SYS_lseek 62 +#define TARGET_NEWLIB_RISCV_SYS_lstat 1039 +#define TARGET_NEWLIB_RISCV_SYS_mkdir 1030 +#define TARGET_NEWLIB_RISCV_SYS_mmap 222 +#define TARGET_NEWLIB_RISCV_SYS_mremap 216 +#define TARGET_NEWLIB_RISCV_SYS_munmap 215 +#define TARGET_NEWLIB_RISCV_SYS_open 1024 +#define TARGET_NEWLIB_RISCV_SYS_openat 56 +#define TARGET_NEWLIB_RISCV_SYS_pread 67 +#define TARGET_NEWLIB_RISCV_SYS_pwrite 68 +#define TARGET_NEWLIB_RISCV_SYS_read 63 +#define TARGET_NEWLIB_RISCV_SYS_rt_sigaction 134 +#define TARGET_NEWLIB_RISCV_SYS_stat 1038 +#define TARGET_NEWLIB_RISCV_SYS_time 1062 +#define TARGET_NEWLIB_RISCV_SYS_times 153 +#define TARGET_NEWLIB_RISCV_SYS_uname 160 +#define TARGET_NEWLIB_RISCV_SYS_unlink 1026 +#define TARGET_NEWLIB_RISCV_SYS_write 64 +#define TARGET_NEWLIB_RISCV_SYS_writev 66 + +extern CB_TARGET_DEFS_MAP cb_sh_syscall_map[]; +#define TARGET_NEWLIB_SH_SYS_ARG 24 +#define TARGET_NEWLIB_SH_SYS_argc 172 +#define TARGET_NEWLIB_SH_SYS_argn 174 +#define TARGET_NEWLIB_SH_SYS_argnlen 173 +#define TARGET_NEWLIB_SH_SYS_chdir 12 +#define TARGET_NEWLIB_SH_SYS_chmod 15 +#define TARGET_NEWLIB_SH_SYS_chown 16 +#define TARGET_NEWLIB_SH_SYS_close 6 +#define TARGET_NEWLIB_SH_SYS_creat 8 +#define TARGET_NEWLIB_SH_SYS_execv 11 +#define TARGET_NEWLIB_SH_SYS_execve 59 +#define TARGET_NEWLIB_SH_SYS_exit 1 +#define TARGET_NEWLIB_SH_SYS_fork 2 +#define TARGET_NEWLIB_SH_SYS_fstat 22 +#define TARGET_NEWLIB_SH_SYS_ftruncate 130 +#define TARGET_NEWLIB_SH_SYS_getpid 20 +#define TARGET_NEWLIB_SH_SYS_isatty 21 +#define TARGET_NEWLIB_SH_SYS_link 9 +#define TARGET_NEWLIB_SH_SYS_lseek 19 +#define TARGET_NEWLIB_SH_SYS_mknod 14 +#define TARGET_NEWLIB_SH_SYS_open 5 +#define TARGET_NEWLIB_SH_SYS_pipe 42 +#define TARGET_NEWLIB_SH_SYS_read 3 +#define TARGET_NEWLIB_SH_SYS_stat 38 +#define TARGET_NEWLIB_SH_SYS_time 23 +#define TARGET_NEWLIB_SH_SYS_truncate 129 +#define TARGET_NEWLIB_SH_SYS_unlink 10 +#define TARGET_NEWLIB_SH_SYS_utime 201 +#define TARGET_NEWLIB_SH_SYS_wait 202 +#define TARGET_NEWLIB_SH_SYS_wait4 7 +#define TARGET_NEWLIB_SH_SYS_write 4 + +extern CB_TARGET_DEFS_MAP cb_v850_syscall_map[]; +#define TARGET_NEWLIB_V850_SYS_ARG 24 +#define TARGET_NEWLIB_V850_SYS_chdir 12 +#define TARGET_NEWLIB_V850_SYS_chmod 15 +#define TARGET_NEWLIB_V850_SYS_chown 16 +#define TARGET_NEWLIB_V850_SYS_close 6 +#define TARGET_NEWLIB_V850_SYS_creat 8 +#define TARGET_NEWLIB_V850_SYS_execv 11 +#define TARGET_NEWLIB_V850_SYS_execve 59 +#define TARGET_NEWLIB_V850_SYS_exit 1 +#define TARGET_NEWLIB_V850_SYS_fork 2 +#define TARGET_NEWLIB_V850_SYS_fstat 22 +#define TARGET_NEWLIB_V850_SYS_getpid 20 +#define TARGET_NEWLIB_V850_SYS_gettimeofday 116 +#define TARGET_NEWLIB_V850_SYS_isatty 21 +#define TARGET_NEWLIB_V850_SYS_link 9 +#define TARGET_NEWLIB_V850_SYS_lseek 19 +#define TARGET_NEWLIB_V850_SYS_mknod 14 +#define TARGET_NEWLIB_V850_SYS_open 5 +#define TARGET_NEWLIB_V850_SYS_pipe 42 +#define TARGET_NEWLIB_V850_SYS_read 3 +#define TARGET_NEWLIB_V850_SYS_rename 134 +#define TARGET_NEWLIB_V850_SYS_stat 38 +#define TARGET_NEWLIB_V850_SYS_time 23 +#define TARGET_NEWLIB_V850_SYS_times 43 +#define TARGET_NEWLIB_V850_SYS_unlink 10 +#define TARGET_NEWLIB_V850_SYS_utime 201 +#define TARGET_NEWLIB_V850_SYS_wait 202 +#define TARGET_NEWLIB_V850_SYS_wait4 7 +#define TARGET_NEWLIB_V850_SYS_write 4 + +extern CB_TARGET_DEFS_MAP cb_init_syscall_map[]; +#define TARGET_NEWLIB_SYS_argc 22 +#define TARGET_NEWLIB_SYS_argn 24 +#define TARGET_NEWLIB_SYS_argnlen 23 +#define TARGET_NEWLIB_SYS_argv 13 +#define TARGET_NEWLIB_SYS_argvlen 12 +#define TARGET_NEWLIB_SYS_chdir 14 +#define TARGET_NEWLIB_SYS_chmod 16 +#define TARGET_NEWLIB_SYS_close 3 +#define TARGET_NEWLIB_SYS_exit 1 +#define TARGET_NEWLIB_SYS_fstat 10 +#define TARGET_NEWLIB_SYS_getpid 8 +#define TARGET_NEWLIB_SYS_gettimeofday 19 +#define TARGET_NEWLIB_SYS_kill 9 +#define TARGET_NEWLIB_SYS_link 21 +#define TARGET_NEWLIB_SYS_lseek 6 +#define TARGET_NEWLIB_SYS_open 2 +#define TARGET_NEWLIB_SYS_read 4 +#define TARGET_NEWLIB_SYS_reconfig 25 +#define TARGET_NEWLIB_SYS_stat 15 +#define TARGET_NEWLIB_SYS_time 18 +#define TARGET_NEWLIB_SYS_times 20 +#define TARGET_NEWLIB_SYS_unlink 7 +#define TARGET_NEWLIB_SYS_utime 17 +#define TARGET_NEWLIB_SYS_write 5 + /* gennltvals: END */ + +#endif diff --git a/sim/ppc/Makefile.in b/sim/ppc/Makefile.in index b991895..33d7df9 100644 --- a/sim/ppc/Makefile.in +++ b/sim/ppc/Makefile.in @@ -411,9 +411,6 @@ SUPPORT_H = \ support.h \ support.c -TARG_VALS_H = \ - targ-vals.h - INLINE = \ inline.h \ inline.c @@ -429,8 +426,7 @@ BUILT_SRC_WO_CONFIG = \ support.h support.c \ pk.h \ hw.h hw.c \ - filter_host.c \ - targ-vals.h targ-map.c targ-vals.def + filter_host.c BUILT_SRC = \ $(BUILT_SRC_WO_CONFIG) \ @@ -473,6 +469,7 @@ COMMON_OBJS_NAMES = \ target-newlib-errno.o \ target-newlib-open.o \ target-newlib-signal.o \ + target-newlib-syscall.o \ version.o COMMON_OBJS = $(COMMON_OBJS_NAMES:%=../common/common_libcommon_a-%) @@ -515,7 +512,7 @@ LIB_OBJ = \ options.o -GDB_OBJ = gdb-sim.o sim_calls.o targ-map.o +GDB_OBJ = gdb-sim.o sim_calls.o HW_SRC = @sim_hw_src@ HW_OBJ = @sim_hw_obj@ @@ -598,30 +595,6 @@ itable.o: itable.c $(ITABLE_H) mon.o: mon.c $(BASICS_H) $(CPU_H) $(MON_H) -# GDB after 4.16 expects the default_callback structure to be setup. -# As a kludge, build the common stuff here for now. -gentmap: $(srcdir)/../common/gentmap.c Makefile targ-vals.def - $(ECHO_CCLD) $(LINK_FOR_BUILD) -I. -I../common -I$(srcdir)/../common \ - $(srcdir)/../common/gentmap.c -DUSE_CONFIG_H - -targ-vals.def: $(srcdir)/../common/nltvals.def - $(ECHO_GEN) cat $(srcdir)/../common/nltvals.def > tmp-vals.def - $(SILENCE) $(SHELL) $(srcroot)/move-if-change tmp-vals.def targ-vals.def - -targ-vals.h: stamp-vals ; @true -stamp-vals: Makefile gentmap $(srcroot)/move-if-change - $(ECHO_GEN) ./gentmap -h > tmp-vals.h - $(SILENCE) $(SHELL) $(srcroot)/move-if-change tmp-vals.h targ-vals.h - $(SILENCE) touch $@ - -targ-map.c: stamp-map; @true -stamp-map: Makefile gentmap $(srcroot)/move-if-change - $(ECHO_GEN) ./gentmap -c > tmp-map.c - $(SILENCE) $(SHELL) $(srcroot)/move-if-change tmp-map.c targ-map.c - $(SILENCE) touch $@ - -targ-map.o: targ-map.c $(ANSIDECL_H) $(GDB_CALLBACK_H) $(TARG_VALS_H) - sim-fpu.o: $(srcdir)/../common/sim-fpu.c $(CONFIG_H) $(ECHO_CC) $(CC) -c $(STD_CFLAGS) -DHAVE_CONFIG_H $(srcdir)/../common/sim-fpu.c @@ -838,8 +811,7 @@ TAGS: $(BUILT_SRC) etags $(srcdir)/*.h $(srcdir)/*.c $(BUILT_SRC) clean mostlyclean: - rm -f tmp-* *.[oasi] core psim$(EXEEXT) run$(EXEEXT) igen dgen $(BUILT_SRC_WO_CONFIG) gentmap - rm -f stamp-vals targ-vals.h stamp-map targ-map.c + rm -f tmp-* *.[oasi] core psim$(EXEEXT) run$(EXEEXT) igen dgen $(BUILT_SRC_WO_CONFIG) distclean realclean: clean rm -f TAGS Makefile config.cache config.status config.h defines.h stamp-h config.log |