aboutsummaryrefslogtreecommitdiff
path: root/sim/cris/traps.c
AgeCommit message (Collapse)AuthorFilesLines
2023-01-16sim: assume sys/stat.h always exists (via gnulib)Mike Frysinger1-2/+0
We have many uses of sys/stat.h that are unprotected by HAVE_SYS_STAT_H, so this is more formalizing the reality that we require this header. Since we switched to gnulib, it guarantees that a sys/stat.h exists for us to include, so we're doubly OK.
2023-01-16sim: formally assume unistd.h always exists (via gnulib)Mike Frysinger1-2/+0
We have many uses of unistd.h that are unprotected by HAVE_UNISTD_H, so this is more formalizing the reality that we require this header. Since we switched to gnulib, it guarantees that a unistd.h exists for us to include, so we're doubly OK.
2023-01-01Update copyright year range in header of all files managed by GDBJoel Brobecker1-1/+1
This commit is the result of running the gdb/copyright.py script, which automated the update of the copyright year range for all source files managed by the GDB project to be updated to include year 2023.
2022-12-21sim: cris: invert sim_cpu storageMike Frysinger1-204/+208
The cpu*.h changes are in generated cgen code, but that has been sent upstream too, so the next regen should include it automatically.
2022-10-11sim/cris: Add ATTRIBUTE_PRINTFTsukasa OI1-1/+1
Clang generates a warning if the format string of a printf-like function is not a literal ("-Wformat-nonliteral"). On the default configuration, it causes a build failure (unless "--disable-werror" is specified). To avoid warnings on the printf-like wrapper, it requires proper __attribute__((format)) and we have ATTRIBUTE_PRINTF macro for this reason. This commit adds ATTRIBUTE_PRINTF to a printf-like function.
2022-05-13sim: remove use of PTRAlan Modra1-2/+2
PTR will soon disappear from ansidecl.h. Remove uses in sim. Where a PTR cast is used in assignment or function args to a void* I've simply removed the unnecessary (in C) cast rather than replacing with (void *).
2022-01-06sim: cris: migrate to standard uintXX_t typesMike Frysinger1-1/+1
Move off the sim-specific unsignedXX types and to the standard uintXX_t types that C11 provides.
2022-01-01Automatic Copyright Year update after running gdb/copyright.pyJoel Brobecker1-1/+1
This commit brings all the changes made by running gdb/copyright.py as per GDB's Start of New Year Procedure. For the avoidance of doubt, all changes in this commits were performed by the script.
2021-06-24sim: cris: fix a few missing prototype warningsMike Frysinger1-31/+3
Add a stub prototype for the dump function meant to be called by devs from gdb, and trim unused functions that aren't supposed to be used.
2021-06-23sim: cris: override getpid callbackMike Frysinger1-0/+8
The cris linux syscall layers assume getpid returns a constant, so add a custom function to provide that.
2021-06-20sim: cris: clean up printf & abort usage a bitMike Frysinger1-40/+37
Inline the stats printf calls to avoid compiler warnings about non-literal format strings. This in turn highlights bad type sizes being passed in, so fix the strings to use the right size type. This in turn highlights the rest of the func using casts rather than the right type directly, so adjust all of those. Finally, replace a few abort+sim_engine_halt calls with the common sim_engine_abort. This provides good output while still aborting as we want.
2021-06-18sim: split sim-signal.h include outMike Frysinger1-0/+1
The sim-basics.h is too big and includes too many things. This leads to some arch's sim-main.h having circular loop issues with defs, and makes it hard to separate out common objects from arch-specific defs. By splitting up sim-basics.h and killing off sim-main.h, it'll make it easier to separate out the two.
2021-06-17sim: split sim/callback.h include outMike Frysinger1-0/+1
The sim-basics.h is too big and includes too many things. This leads to some arch's sim-main.h having circular loop issues with defs, and makes it hard to separate out common objects from arch-specific defs. By splitting up sim-basics.h and killing off sim-main.h, it'll make it easier to separate out the two. Start with splitting out sim/callback.h.
2021-06-12sim: start unifying portability shimsMike Frysinger1-0/+1
There are some functions that gnulib does not yet provide fallbacks for, so start a common file of our own for holding existing stubs.
2021-05-16sim: switch config.h usage to defs.hMike Frysinger1-0/+3
The defs.h header will take care of including the various config.h headers. For now, it's just config.h, but we'll add more when we integrate gnulib in. This header should be used instead of config.h, and should be the first include in every .c file. We won't rely on the old behavior where we expected files to include the port's sim-main.h which then includes the common sim-basics.h which then includes config.h. We have a ton of code that includes things before sim-main.h, and it sometimes needs to be that way. Creating a dedicated header avoids the ordering mess and implicit inclusion that shows up otherwise.
2021-05-14sim: callback: convert time interface to 64-bitMike Frysinger1-7/+4
PR sim/27705 Rather than rely on time_t being the right size between the host & target, have the interface always be 64-bit. We can figure out if we need to truncate when actually outputting it to the right target.
2021-04-08Add system includes in simTom Tromey1-0/+1
This updates various parts of the sim to include missing system headers. I made the includes unconditional, because other parts of the tree are already doing this. 2021-04-08 Tom Tromey <tom@tromey.com> * traps.c: Include stdlib.h. * cris-tmpl.c: Include stdlib.h. sim/erc32/ChangeLog 2021-04-08 Tom Tromey <tom@tromey.com> * func.c: Include sys/time.h. sim/frv/ChangeLog 2021-04-08 Tom Tromey <tom@tromey.com> * traps.c: Include stdlib.h. * registers.c: Include stdlib.h. * profile.c: Include stdlib.h. * memory.c: Include stdlib.h. * interrupts.c: Include stdlib.h. * frv.c: Include stdlib.h. * cache.c: Include stdlib.h. sim/iq2000/ChangeLog 2021-04-08 Tom Tromey <tom@tromey.com> * iq2000.c: Include stdlib.h. sim/m32r/ChangeLog 2021-04-08 Tom Tromey <tom@tromey.com> * traps.c: Include stdlib.h. * m32r.c: Include stdlib.h. sim/ppc/ChangeLog 2021-04-08 Tom Tromey <tom@tromey.com> * emul_unix.c: Include time.h.
2021-01-11sim: clean up C11 header includesMike Frysinger1-2/+0
Since we require C11 now, we can assume many headers exist, and clean up all of the conditional includes. It's not like any of this code actually accounted for the headers not existing, just whether we could include them. The strings.h cleanup is a little nuanced: it isn't in C11, but every use of it in the codebase will include strings.h only if string.h doesn't exist. Since we now assume the C11 string.h exists, we'll never include strings.h, so we can delete it.
2021-01-01Update copyright year range in all GDB filesJoel Brobecker1-1/+1
This commits the result of running gdb/copyright.py as per our Start of New Year procedure... gdb/ChangeLog Update copyright year range in copyright header of all GDB files.
2020-01-01Update copyright year range in all GDB files.Joel Brobecker1-1/+1
gdb/ChangeLog: Update copyright year range in all GDB files.
2019-01-01Update copyright year range in all GDB files.Joel Brobecker1-1/+1
This commit applies all changes made after running the gdb/copyright.py script. Note that one file was flagged by the script, due to an invalid copyright header (gdb/unittests/basic_string_view/element_access/char/empty.cc). As the file was copied from GCC's libstdc++-v3 testsuite, this commit leaves this file untouched for the time being; a patch to fix the header was sent to gcc-patches first. gdb/ChangeLog: Update copyright year range in all GDB files.
2018-01-02Update copyright year range in all GDB filesJoel Brobecker1-1/+1
gdb/ChangeLog: Update copyright year range in all GDB files
2017-01-01update copyright year range in GDB filesJoel Brobecker1-1/+1
This applies the second part of GDB's End of Year Procedure, which updates the copyright year range in all of GDB's files. gdb/ChangeLog: Update copyright year range in all GDB files.
2016-01-01GDB copyright headers update after running GDB's copyright.py script.Joel Brobecker1-1/+1
gdb/ChangeLog: Update year range in copyright notice of all files.
2015-06-17sim: syscall: unify memory helpersMike Frysinger1-30/+3
Almost every port implements these two callbacks in the same way, so unify them in the common layer.
2015-06-17sim: callback: add human readable strings for debugging to mapsMike Frysinger1-161/+161
When tracing, we often want to display the human readable name for the various syscall/errno values. Rather than make each target duplicate the lookup, extend the existing maps to include the string directly, and add helper functions to look up the constants. While most targets are autogenerated (from libgloss), the bfin/cris targets have custom maps for the Linux ABI which need to be updated by hand.
2015-01-01Update year range in copyright notice of all files owned by the GDB project.Joel Brobecker1-1/+1
gdb/ChangeLog: Update year range in copyright notice of all files.
2014-12-03callback.h:struct host_callback_struct compilation error on Windows hosts.Joel Brobecker1-1/+1
On Windows, a recent gnulib update imported the lstat module, and this caused a remote-sim.c build failure in struct host_callback_struct: In file included from /[...]/gdb/remote-sim.c:34:0: /[...]/gdb/../include/gdb/callback.h:93:9: error: duplicate member '_stati64' int (*lstat) (host_callback *, const char *, struct stat *); ^ What happens it that gnulib's stat.h makes the following defines: /* Large File Support on native Windows. */ #if 1 # define stat _stati64 #endif and then: #if 1 # if ! 0 /* mingw does not support symlinks, therefore it does not have lstat. But without links, stat does just fine. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lstat stat # endif So, the following fields in struct host_callback_struct... int (*stat) (host_callback *, const char *, struct stat *); int (*fstat) (host_callback *, int, struct stat *); int (*lstat) (host_callback *, const char *, struct stat *); ... get translated to... int (*_stati64) (host_callback *, const char *, struct _stati64 *); int (*_fstati64) (host_callback *, int, struct _stati64 *); int (*_stati64) (host_callback *, const char *, struct _stati64 *); ... which causes two fields to have the same name. This patch fixes the issue by renaming the stat-related fields by adding a "to_" prefix, similar to what is done in GDB's target_ops vector. include/gdb/ChangeLog: * callback.h (struct host_callback_struct) <to_stat>: Renamed from "stat". <to_fstat>: Renamed from "fstat". <to_lstat>: Renamed from "lstat". sim/common/ChangeLog: * sim-io.c (sim_io_stat, sim_io_fstat): Adjust calls to "stat" and "fstat" callbacks by calls to "to_stat" and "to_fstat" (resp) callbacks following renaming in callback.h. * syscall.c (cb_syscall): Likewise. Adjust calls to "lstat" callback by call to "to_lstat" callback sim/cris/ChangeLog: * traps.c (cris_break_13_handler): Adjust call to "fstat" callback by call to "to_fstat" following renaming in callback.h. sim/h8300/ChangeLog: * compile.c (sim_resume): Adjust calls to "stat" and "fstat" callbacks by calls to "to_stat" and "to_fstat" (resp) callbacks following renaming in callback.h.
2014-01-01Update Copyright year range in all files maintained by GDB.Joel Brobecker1-1/+1
2013-01-01Update years in copyright notice for the GDB files.Joel Brobecker1-1/+1
Two modifications: 1. The addition of 2013 to the copyright year range for every file; 2. The use of a single year range, instead of potentially multiple year ranges, as approved by the FSF.
2012-01-04Copyright year update in most files of the GDB Project.Joel Brobecker1-2/+1
gdb/ChangeLog: Copyright year update in most files of the GDB Project.
2011-01-01run copyright.sh for 2011.Joel Brobecker1-1/+1
2010-10-06 * traps.c (cris_break_13_handler): Pass lseekHans-Peter Nilsson1-0/+8
offset parameter as sign-extended.
2010-01-01Update copyright notices to add year 2010.Joel Brobecker1-1/+2
2009-01-14 Update the copyright notice of some of the files I missedJoel Brobecker1-1/+1
in the previous copyright update.
2009-01-06 * cris/traps.c (abort): Define to call sim_io_error.Hans-Peter Nilsson1-24/+51
(create_map): Make -1 imply a non-fixed address, not 0. All callers changed. Only prefer the next higher unmapped address if the last mapped address is no less than 0x40000000. Check that the address to be mapped is not already mapped. Update head comment. (unmap_pages): Don't call abort when recursive call fails, just note and return an error if a page in the range couldn't be unmapped. (cris_bmod_handler, h_supr_set_handler, h_supr_get_handler) (schedule, make_first_thread, cris_pipe_empty): New local variable sd. (cris_break_13_handler) <case TARGET_SYS_mmap2>: Handle non-MAP_FIXED argument overlapping existing map. For MAP_FIXED, don't abort on page not being mapped. Handle non-anon filemap with length padded to pagesize.
2009-01-03 * cris/sim-main.h (struct _sim_cpu): New memberHans-Peter Nilsson1-0/+12
set_target_thread_data. * cris/crisv32f.c (CRIS_TLS_REGISTER): Define. * cris/crisv10f.c: Ditto. * cris/cris-tmpl.c (MY (set_target_thread_data)): New function. (MY (f_specific_init)): Set new _sim_cpu member to new function. * cris/traps.c (TARGET_SYS_set_thread_area): Define. (cris_break_13_handler) <case TARGET_SYS_set_thread_area>: New case.
2009-01-03 * cris/traps.c (TARGET_SYS_exit_group): Define.Hans-Peter Nilsson1-1/+3
(cris_break_13_handler): Handle it like the exit for the last thread.
2009-01-03 * cris/traps.c (TARGET_UTSNAME): Update to 2009-01-01.Hans-Peter Nilsson1-6/+14
(TARGET_EPOCH): Update to match TARGET_UTSNAME. Correct comment. (cris_break_13_handler) <case TARGET_SYS_uname>: Update to 2.6.27. Set machine field to the BFD printable name of the machine.
2009-01-03 * cris/traps.c (TARGET_MAP_DENYWRITE): Define.Hans-Peter Nilsson1-0/+6
<case TARGET_SYS_mmap2>: Handle TARGET_MAP_DENYWRITE.
2009-01-03 * cris/traps.c (TARGET_SYS_access, TARGET_R_OK, TARGET_W_OK)Hans-Peter Nilsson1-0/+57
(TARGET_X_OK, TARGET_F_OK): Define. (cris_break_13_handler) <case TARGET_SYS_access>: New case.
2008-12-30 * cris/traps.c (TARGET_SYS_writev): New macro.Hans-Peter Nilsson1-19/+176
(is_mapped_only, cris_dump_map): New functions. (cris_break_13_handler) <case TARGET_SYS_mmap2>: Handle more flags and prot combinations and a non-zero page-offset. If TARGET_MAP_FIXED, unmap pages before mapping them. <case TARGET_SYS_mprotect>: When checking, allow any length argument. Don't actually do anything. <case TARGET_SYS_writev>: New case.
2008-01-01 Updated copyright notices for most files.Daniel Jacobowitz1-1/+1
2007-08-24 Switch the license of all files explicitly copyright the FSFJoel Brobecker1-5/+4
to GPLv3.
2007-02-20 * cris/traps.c (dump_statistics): Change format for cycle numbersHans-Peter Nilsson1-19/+19
to %llu and cast parameters to unsigned long long.
2007-01-09Copyright updates for 2007.Daniel Jacobowitz1-1/+1
2006-10-02 * cris/cris-sim.h (enum cris_unknown_syscall_action_type)Hans-Peter Nilsson1-109/+152
(cris_unknown_syscall_action): Declare. * cris/sim-if.c (cris_unknown_syscall_action): Define. (cris_options): Add cris-unknown-syscall option. (cris_option_handler): Correct comment about and error message for invalid --cris-cycles argument. Handle --cris-unknown-syscall. * cris/traps.c: Include stdarg.h (cris_unknown_syscall): New function. (cris_break_13_handler): Instead of sim_io_eprintf and sim_engine_halt, call cris_unknown_syscall to handle more or less unknown syscalls. Adjust code as necessary to handle return value.
2006-09-30 * cris/traps.c (TARGET_PIPE_BUF): New macro.Hans-Peter Nilsson1-13/+24
(cris_pipe_empty): Correct initialization of "remaining". Only adjust the "write" return value if more than TARGET_PIPE_BUF bytes are written.
2006-09-29 * cris/configure.ac: Check for limits.h and sys/param.h.Hans-Peter Nilsson1-9/+24
* cris/configure, cris/config.in: Rebuild. * cris/traps.c (SIM_PATHMAX): New macro. (cris_break_13_handler): Use SIM_PATHMAX, not MAXPATHLEN.
2006-02-23 * cris/traps.c (syscall_map): Remove CB_SYS_time / TARGET_SYS_timeHans-Peter Nilsson1-1/+11
mapping. (cris_break_13_handler) <case TARGET_SYS_time>: New case.