diff options
author | Jason Molenda <jmolenda@apple.com> | 2000-01-25 02:39:20 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2000-01-25 02:39:20 +0000 |
commit | 34f9a7d1912b320f2c67bee375a52d51549b102e (patch) | |
tree | 47a11a9d315313bf3c162fdbcdde1a33fb931bb3 | |
parent | b427daf6bcd5d1a4fb8263efa87bca0efcd8454f (diff) | |
download | gdb-34f9a7d1912b320f2c67bee375a52d51549b102e.tar.gz |
import gdb-2000-01-24 snapshot
-rw-r--r-- | gdb/ChangeLog | 65 | ||||
-rw-r--r-- | gdb/Makefile.in | 12 | ||||
-rw-r--r-- | gdb/config/sparc/sun4sol2.mh | 2 | ||||
-rw-r--r-- | gdb/configure.tgt | 1 | ||||
-rw-r--r-- | gdb/defs.h | 1 | ||||
-rw-r--r-- | gdb/linux-thread.c | 2 | ||||
-rw-r--r-- | gdb/proc-api.c | 312 | ||||
-rw-r--r-- | gdb/proc-events.c | 1115 | ||||
-rw-r--r-- | gdb/proc-flags.c | 34 | ||||
-rw-r--r-- | gdb/proc-utils.h | 118 | ||||
-rw-r--r-- | gdb/proc-why.c | 105 | ||||
-rw-r--r-- | gdb/procfs.c | 53 | ||||
-rw-r--r-- | gdb/rdi-share/devsw.c | 12 | ||||
-rw-r--r-- | gdb/utils.c | 70 | ||||
-rw-r--r-- | sim/common/cgen-ops.h | 60 | ||||
-rwxr-xr-x | sim/configure | 81 | ||||
-rw-r--r-- | sim/mcore/interp.c | 2 | ||||
-rw-r--r-- | sim/mcore/sysdep.h | 2 |
18 files changed, 1130 insertions, 917 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dd46c8280f4..2d45b2a5d87 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,63 @@ +2000-01-24 Kevin Buettner <kevinb@redhat.com> + + * utils.c (get_field, put_field): Fix buffer underruns and + overruns. Also, handle case where total_len is not evenly + divisible by 8. + (getfield): Make sure zeroing of unwanted bits occurs even + when bit field to extract does not straddle two or more + bytes. + +2000-01-23 Christopher Faylor <cgf@cygnus.com> + + * defs.h: Add gdb_thread_select declaration. + +2000-01-23 Kevin Buettner <kevinb@redhat.com> + + * linux-thread.c (_initialize_linuxthreads): Make sure that + linuxthreads_block_mask does not block SIGCHLD. + +2000-01-20 Fernando Nasser <fnasser@totem.to.cygnus.com> + + * rdi-share/devsw.c (openLogFile): On cygwin, set the log mode to + text so that new lines work properly. + +2000-01-18 Elena Zannoni <ezannoni@kwikemart.cygnus.com> + + * proc-utils.h: New file. Export functions from proc-*.c. + + * proc_api.c: Rename to: + * proc-api.c: New file. Add include of proc-utils.h. + + * proc_events.c: Rename to: + * proc-events.c: New file. + + * proc_flags.c: Rename to: + * proc-flags.c: New file. + + * proc_why.c: Rename to: + * proc-why.c: New file. Add include of proc-utils.h. + + * procfs.c: Add includes of gdbthread.h, sys/wait.h, signal.h, + ctype.h, proc-utils.h. + (find_procinfo_or_die): Add braces to avoid ambiguous else clause. + (open_procinfo_files): Conditionalize local variable tmp, to avoid + compiler warnings. + (proc_iterate_over_mappings): Conditionalize local vars mapfd and + pathname. + (procfs_wait): Adjust format in some printf_filetered calls to + avoid compiler warnings. + (make_signal_thread_runnable): Ifdef 0. The calls to this function + are also ifdef'd 0 . + (procfs_resume): Add parentheses around '&&' operation. + (procfs_set_exec_trap): Remove unused variable. + (info_proc_cmd): Add braces to avoid ambiguous else clause. + + * Makefile.in (procfs.o, proc-api.o, proc-events.o, proc-flags.o, + proc-why.o): Update dependencies. + + * config/sparc/sun4sol2.mh (NATDEPFILES): Change proc_*.o files to + proc-*.o. + 2000-01-17 Jason Molenda (jsm@bugshack.cygnus.com) * configure.in (NEW_PROC_API): Fix Unixware-matching regexp. @@ -32,6 +92,11 @@ Sun Jan 16 17:58:00 2000 David Taylor <taylor@texas.cygnus.com> * v850-tdep.c (v850_target_architecture_hook): Setup correct machine id for disassembly. +2000-01-13 Jim Blandy <jimb@cygnus.com> + + * i386-linux-nat.c (fill_gregset): Pass the correct arguments to + convert_to_regset, when regno indicates a specific register. + Thu Jan 13 23:34:17 EST 2000 Nicholas Duffek <nsd@cygnus.com> * uw-thread.c: Document libthread.so debugging interface. Minor diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 8ce6044fd75..68292d53e27 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -229,7 +229,7 @@ CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE) \ ADD_FILES = $(REGEX) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) ADD_DEPS = $(REGEX1) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) -VERSION = 20000117 +VERSION = 20000124 DIST=gdb LINT=/usr/5bin/lint @@ -1412,16 +1412,16 @@ printcmd.o: printcmd.c $(breakpoint_h) $(defs_h) $(expression_h) \ # FIXME: Procfs.o gets -Wformat errors because things like pid_t don't # match output format strings. procfs.o: procfs.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \ - target.h gdb_string.h + target.h gdb_string.h gdbthread.h proc-utils.h $(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) $< -proc_api.o: proc_api.c $(defs_h) $(gdbcmd_h) +proc-api.o: proc-api.c $(defs_h) $(gdbcmd_h) proc-utils.h -proc_events.o: proc_events.c $(defs_h) +proc-events.o: proc-events.c $(defs_h) -proc_flags.o: proc_flags.c $(defs_h) +proc-flags.o: proc-flags.c $(defs_h) -proc_why.o: proc_why.c $(defs_h) +proc-why.o: proc-why.c $(defs_h) proc-utils.h sol-thread.o: sol-thread.c $(defs_h) gdbthread.h target.h $(inferior_h) \ $(gdbcmd_h) diff --git a/gdb/config/sparc/sun4sol2.mh b/gdb/config/sparc/sun4sol2.mh index 1659c7a3c91..b9ab28e8273 100644 --- a/gdb/config/sparc/sun4sol2.mh +++ b/gdb/config/sparc/sun4sol2.mh @@ -6,7 +6,7 @@ XM_CLIBS= -lsocket -lnsl NAT_FILE= nm-sun4sol2.h NATDEPFILES= corelow.o core-sol2.o solib.o fork-child.o procfs.o \ - proc_api.o proc_events.o proc_flags.o proc_why.o + proc-api.o proc-events.o proc-flags.o proc-why.o # If you are compiling with Sun's compiler, add the -xs option to CC # (e.g. `make CC="cc -xs"'). diff --git a/gdb/configure.tgt b/gdb/configure.tgt index 6eac3a442e2..95dee85b212 100644 --- a/gdb/configure.tgt +++ b/gdb/configure.tgt @@ -65,6 +65,7 @@ d30v-*-*) gdb_target=d30v ;; h8300-*-*) gdb_target=h8300 ;; h8500-*-*) gdb_target=h8500 ;; + fr30-*-elf*) gdb_target=fr30 ;; diff --git a/gdb/defs.h b/gdb/defs.h index 3ae2b2d69fa..ef4049d8c00 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -1345,5 +1345,6 @@ enum gdb_rc gdb_breakpoint_query (/* struct {ui,gdb}_out *output, */ int bnum); enum gdb_rc gdb_breakpoint (char *address, char *condition, int hardwareflag, int tempflag, int thread, int ignore_count); +enum gdb_rc gdb_thread_select (/* output object */ char *tidstr); #endif /* #ifndef DEFS_H */ diff --git a/gdb/linux-thread.c b/gdb/linux-thread.c index df982a6f777..3e72ab402f1 100644 --- a/gdb/linux-thread.c +++ b/gdb/linux-thread.c @@ -1800,4 +1800,6 @@ _initialize_linuxthreads () sigprocmask(SIG_BLOCK, &linuxthreads_wait_mask, &linuxthreads_block_mask); + /* Make sure that linuxthreads_block_mask is not blocking SIGCHLD */ + sigdelset (&linuxthreads_block_mask, SIGCHLD); } diff --git a/gdb/proc-api.c b/gdb/proc-api.c index 268db819624..a3629d747a5 100644 --- a/gdb/proc-api.c +++ b/gdb/proc-api.c @@ -1,25 +1,23 @@ /* Machine independent support for SVR4 /proc (process file system) for GDB. - - Copyright (C) 1999, 2000, 2001, 2003, 2005, 2007, 2008 - Free Software Foundation, Inc. - + Copyright 1999 Free Software Foundation, Inc. Written by Michael Snyder at Cygnus Solutions. Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others. - This file is part of GDB. +This file is part of GDB. - 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 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 2 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. +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/>. */ +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, +Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * Pretty-print trace of api calls to the /proc api @@ -29,7 +27,6 @@ #include "defs.h" #include "gdbcmd.h" -#include "completer.h" #if defined (NEW_PROC_API) #define _STRUCTURED_PROC 1 @@ -38,14 +35,10 @@ #include <stdio.h> #include <sys/types.h> #include <sys/procfs.h> -#ifdef HAVE_SYS_PROC_H #include <sys/proc.h> /* for struct proc */ -#endif -#ifdef HAVE_SYS_USER_H #include <sys/user.h> /* for struct user */ -#endif #include <fcntl.h> /* for O_RDWR etc. */ -#include "gdb_wait.h" +#include <sys/wait.h> #include "proc-utils.h" @@ -60,21 +53,16 @@ struct trans { char *desc; /* Short description of value */ }; -static int procfs_trace = 0; +static int procfs_trace = 1; +/*static int info_verbose = 1;*/ /* kludge */ static FILE *procfs_file = NULL; static char *procfs_filename = "procfs_trace"; static void -prepare_to_trace (void) -{ - if (procfs_trace) /* if procfs tracing turned on */ - if (procfs_file == NULL) /* if output file not yet open */ - if (procfs_filename != NULL) /* if output filename known */ - procfs_file = fopen (procfs_filename, "a"); /* open output file */ -} - -static void -set_procfs_trace_cmd (char *args, int from_tty, struct cmd_list_element *c) +set_procfs_trace_cmd (args, from_tty, c) + char *args; + int from_tty; + struct cmd_list_element *c; { #if 0 /* not sure what I might actually need to do here, if anything */ if (procfs_file) @@ -83,7 +71,10 @@ set_procfs_trace_cmd (char *args, int from_tty, struct cmd_list_element *c) } static void -set_procfs_file_cmd (char *args, int from_tty, struct cmd_list_element *c) +set_procfs_file_cmd (args, from_tty, c) + char *args; + int from_tty; + struct cmd_list_element *c; { /* Just changed the filename for procfs tracing. If a file was already open, close it. */ @@ -119,12 +110,8 @@ static struct trans ioctl_table[] = { { PIOCGETPTIMER, "PIOCGETPTIMER", "get process timers" }, #endif /* irix event counters */ { PIOCGENTRY, "PIOCGENTRY", "get traced syscall entry set" }, -#if defined (PIOCGETPR) { PIOCGETPR, "PIOCGETPR", "read struct proc" }, -#endif -#if defined (PIOCGETU) { PIOCGETU, "PIOCGETU", "read user area" }, -#endif #if defined (PIOCGETUTK) && (defined(KERNEL) || defined(SHOW_UTT)) /* osf */ { PIOCGETUTK, "PIOCGETUTK", "get the utask struct" }, #endif @@ -222,16 +209,20 @@ static struct trans ioctl_table[] = { }; int -ioctl_with_trace (int fd, long opcode, void *ptr, char *file, int line) +ioctl_with_trace (fd, opcode, ptr, file, line) + int fd; + long opcode; + void *ptr; + char *file; + int line; { - int i = 0; - int ret; - int arg1; - - prepare_to_trace (); + int i, ret, arg1; if (procfs_trace) { + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); + for (i = 0; ioctl_table[i].name != NULL; i++) if (ioctl_table[i].value == opcode) break; @@ -373,15 +364,13 @@ ioctl_with_trace (int fd, long opcode, void *ptr, char *file, int line) if (procfs_file) fflush (procfs_file); } - errno = 0; ret = ioctl (fd, opcode, ptr); if (procfs_trace && ret < 0) { fprintf (procfs_file ? procfs_file : stdout, - "[ioctl (%s) FAILED! (%s)]\n", + "[ioctl (%s) FAILED!]\n", ioctl_table[i].name != NULL ? - ioctl_table[i].name : "<unknown>", - safe_strerror (errno)); + ioctl_table[i].name : "<unknown>"); if (procfs_file) fflush (procfs_file); } @@ -399,13 +388,9 @@ static struct trans rw_table[] = { #ifdef PCCSIG /* solaris */ { PCCSIG, "PCCSIG", "clear current signal" }, #endif -#ifdef PCDSTOP /* solaris */ { PCDSTOP, "PCDSTOP", "post stop request" }, -#endif { PCKILL, "PCKILL", "post a signal" }, -#ifdef PCNICE /* solaris */ { PCNICE, "PCNICE", "set nice priority" }, -#endif #ifdef PCREAD /* solaris */ { PCREAD, "PCREAD", "read from the address space" }, { PCWRITE, "PCWRITE", "write to the address space" }, @@ -425,9 +410,7 @@ static struct trans rw_table[] = { { PCSEXIT, "PCSEXIT", "set traced syscall exit set" }, { PCSFAULT, "PCSFAULT", "set traced fault set" }, { PCSFPREG, "PCSFPREG", "set floating point registers" }, -#ifdef PCSHOLD /* solaris */ { PCSHOLD, "PCSHOLD", "set signal mask" }, -#endif { PCSREG, "PCSREG", "set general registers" }, { PCSSIG, "PCSSIG", "set current signal" }, { PCSTOP, "PCSTOP", "post stop request and wait" }, @@ -441,9 +424,7 @@ static struct trans rw_table[] = { #ifdef PCTWSTOP /* solaris */ { PCTWSTOP, "PCTWSTOP", "wait for stop, with timeout arg" }, #endif -#ifdef PCUNKILL /* solaris */ { PCUNKILL, "PCUNKILL", "delete a pending signal" }, -#endif #ifdef PCUNSET /* solaris */ { PCUNSET, "PCUNSET", "unset modes" }, #endif @@ -457,16 +438,22 @@ static struct trans rw_table[] = { static off_t lseek_offset; int -write_with_trace (int fd, void *varg, size_t len, char *file, int line) +write_with_trace (fd, arg, len, file, line) + int fd; + long *arg; + size_t len; + char *file; + int line; { - int i = ARRAY_SIZE (rw_table) - 1; + int i; + long opcode = arg[0]; int ret; - procfs_ctl_t *arg = (procfs_ctl_t *) varg; - prepare_to_trace (); if (procfs_trace) { - procfs_ctl_t opcode = arg[0]; + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); + for (i = 0; rw_table[i].name != NULL; i++) if (rw_table[i].value == opcode) break; @@ -490,10 +477,8 @@ write_with_trace (int fd, void *varg, size_t len, char *file, int line) case PCUNSET: #endif #ifdef PCRESET -#if PCRESET != PCUNSET case PCRESET: #endif -#endif fprintf (procfs_file ? procfs_file : stdout, "write (PCRESET, %s) %s\n", arg[1] == PR_FORK ? "PR_FORK" : @@ -528,14 +513,12 @@ write_with_trace (int fd, void *varg, size_t len, char *file, int line) proc_prettyfprint_syscalls (procfs_file ? procfs_file : stdout, (sysset_t *) &arg[1], 0); break; -#ifdef PCSHOLD case PCSHOLD: fprintf (procfs_file ? procfs_file : stdout, "write (PCSHOLD) "); proc_prettyfprint_signalset (procfs_file ? procfs_file : stdout, (sigset_t *) &arg[1], 0); break; -#endif case PCSSIG: fprintf (procfs_file ? procfs_file : stdout, "write (PCSSIG) "); @@ -554,14 +537,10 @@ write_with_trace (int fd, void *varg, size_t len, char *file, int line) fprintf (procfs_file ? procfs_file : stdout, "clearFlt "); if (arg[1] & PRSTEP) fprintf (procfs_file ? procfs_file : stdout, "step "); -#ifdef PRSABORT if (arg[1] & PRSABORT) fprintf (procfs_file ? procfs_file : stdout, "syscallAbort "); -#endif -#ifdef PRSTOP if (arg[1] & PRSTOP) fprintf (procfs_file ? procfs_file : stdout, "stopReq "); -#endif fprintf (procfs_file ? procfs_file : stdout, "\n"); break; @@ -574,7 +553,13 @@ write_with_trace (int fd, void *varg, size_t len, char *file, int line) break; default: { - if (rw_table[i].name) + static unsigned char break_insn[] = BREAKPOINT; + + if (len == sizeof (break_insn) && + memcmp (arg, &break_insn, len) == 0) + fprintf (procfs_file ? procfs_file : stdout, + "write (<breakpoint at 0x%08x>) \n", lseek_offset); + else if (rw_table[i].name) fprintf (procfs_file ? procfs_file : stdout, "write (%s) %s\n", rw_table[i].name, @@ -583,12 +568,11 @@ write_with_trace (int fd, void *varg, size_t len, char *file, int line) { if (lseek_offset != -1) fprintf (procfs_file ? procfs_file : stdout, - "write (<unknown>, %lud bytes at 0x%08lx) \n", - (unsigned long) len, (unsigned long) lseek_offset); + "write (<unknown>, %d bytes at 0x%08x) \n", + len, lseek_offset); else fprintf (procfs_file ? procfs_file : stdout, - "write (<unknown>, %lud bytes) \n", - (unsigned long) len); + "write (<unknown>, %d bytes) \n", len); } break; } @@ -596,15 +580,13 @@ write_with_trace (int fd, void *varg, size_t len, char *file, int line) if (procfs_file) fflush (procfs_file); } - errno = 0; - ret = write (fd, (void *) arg, len); + ret = write (fd, arg, len); if (procfs_trace && ret != len) { fprintf (procfs_file ? procfs_file : stdout, - "[write (%s) FAILED! (%s)]\n", + "[write (%s) FAILED!\n", rw_table[i].name != NULL ? - rw_table[i].name : "<unknown>", - safe_strerror (errno)); + rw_table[i].name : "<unknown>"); if (procfs_file) fflush (procfs_file); } @@ -614,19 +596,43 @@ write_with_trace (int fd, void *varg, size_t len, char *file, int line) } off_t -lseek_with_trace (int fd, off_t offset, int whence, char *file, int line) +lseek_with_trace (fd, offset, whence, file, line) + int fd; + off_t offset; + int whence; + char *file; + int line; { off_t ret; - prepare_to_trace (); - errno = 0; +#if 0 /* don't need output, just need address */ + if (procfs_trace) + { + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); + + if (info_verbose) + fprintf (procfs_file ? procfs_file : stdout, + "%s:%d -- ", file, line); + fprintf (procfs_file ? procfs_file : stdout, + "lseek (0x%08x, %s) \n", offset, + whence == SEEK_SET ? "SEEK_SET" : + whence == SEEK_CUR ? "SEEK_CUR" : + whence == SEEK_END ? "SEEK_END" : + "<unknown whence>"); + if (procfs_file) + fflush (procfs_file); + } +#endif ret = lseek (fd, offset, whence); lseek_offset = ret; - if (procfs_trace && (ret == -1 || errno != 0)) + if (procfs_trace && ret == -1) { + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); + fprintf (procfs_file ? procfs_file : stdout, - "[lseek (0x%08lx) FAILED! (%s)]\n", - (unsigned long) offset, safe_strerror (errno)); + "[lseek (0x%08x) FAILED!\n", offset); if (procfs_file) fflush (procfs_file); } @@ -637,39 +643,30 @@ lseek_with_trace (int fd, off_t offset, int whence, char *file, int line) #endif /* NEW_PROC_API */ int -open_with_trace (char *filename, int mode, char *file, int line) +open_with_trace (filename, mode, file, line) + char *filename; + int mode; + char *file; + int line; { - int ret; + int ret = open (filename, mode); - prepare_to_trace (); - errno = 0; - ret = open (filename, mode); if (procfs_trace) { + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); + if (info_verbose) fprintf (procfs_file ? procfs_file : stdout, "%s:%d -- ", file, line); - - if (errno) - { - fprintf (procfs_file ? procfs_file : stdout, - "[open FAILED! (%s) line %d]\\n", - safe_strerror (errno), line); - } - else - { - fprintf (procfs_file ? procfs_file : stdout, - "%d = open (%s, ", ret, filename); - if (mode == O_RDONLY) - fprintf (procfs_file ? procfs_file : stdout, "O_RDONLY) %d\n", - line); - else if (mode == O_WRONLY) - fprintf (procfs_file ? procfs_file : stdout, "O_WRONLY) %d\n", - line); - else if (mode == O_RDWR) - fprintf (procfs_file ? procfs_file : stdout, "O_RDWR) %d\n", - line); - } + fprintf (procfs_file ? procfs_file : stdout, + "%d = open (%s, ", ret, filename); + if (mode == O_RDONLY) + fprintf (procfs_file ? procfs_file : stdout, "O_RDONLY) %d\n", line); + else if (mode == O_WRONLY) + fprintf (procfs_file ? procfs_file : stdout, "O_WRONLY) %d\n", line); + else if (mode == O_RDWR) + fprintf (procfs_file ? procfs_file : stdout, "O_RDWR) %d\n", line); if (procfs_file) fflush (procfs_file); } @@ -678,24 +675,23 @@ open_with_trace (char *filename, int mode, char *file, int line) } int -close_with_trace (int fd, char *file, int line) +close_with_trace (fd, file, line) + int fd; + char *file; + int line; { - int ret; + int ret = close (fd); - prepare_to_trace (); - errno = 0; - ret = close (fd); if (procfs_trace) { + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); + if (info_verbose) fprintf (procfs_file ? procfs_file : stdout, "%s:%d -- ", file, line); - if (errno) - fprintf (procfs_file ? procfs_file : stdout, - "[close FAILED! (%s)]\n", safe_strerror (errno)); - else - fprintf (procfs_file ? procfs_file : stdout, - "%d = close (%d)\n", ret, fd); + fprintf (procfs_file ? procfs_file : stdout, + "%d = close (%d)\n", ret, fd); if (procfs_file) fflush (procfs_file); } @@ -703,14 +699,19 @@ close_with_trace (int fd, char *file, int line) return ret; } -pid_t -wait_with_trace (int *wstat, char *file, int line) +int +wait_with_trace (wstat, file, line) + int *wstat; + char *file; + int line; { int ret, lstat = 0; - prepare_to_trace (); if (procfs_trace) { + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); + if (info_verbose) fprintf (procfs_file ? procfs_file : stdout, "%s:%d -- ", file, line); @@ -719,16 +720,11 @@ wait_with_trace (int *wstat, char *file, int line) if (procfs_file) fflush (procfs_file); } - errno = 0; ret = wait (&lstat); if (procfs_trace) { - if (errno) - fprintf (procfs_file ? procfs_file : stdout, - "[wait FAILED! (%s)]\n", safe_strerror (errno)); - else - fprintf (procfs_file ? procfs_file : stdout, - "returned pid %d, status 0x%x\n", ret, lstat); + fprintf (procfs_file ? procfs_file : stdout, + "returned pid %d, status 0x%x\n", ret, lstat); if (procfs_file) fflush (procfs_file); } @@ -739,26 +735,37 @@ wait_with_trace (int *wstat, char *file, int line) } void -procfs_note (char *msg, char *file, int line) +procfs_note (msg, file, line) + char *msg; + char *file; + int line; { - prepare_to_trace (); if (procfs_trace) { + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); + if (info_verbose) fprintf (procfs_file ? procfs_file : stdout, "%s:%d -- ", file, line); - fprintf (procfs_file ? procfs_file : stdout, "%s", msg); + fprintf (procfs_file ? procfs_file : stdout, msg); if (procfs_file) fflush (procfs_file); } } void -proc_prettyfprint_status (long flags, int why, int what, int thread) +proc_prettyfprint_status (flags, why, what, thread) + long flags; + int why; + int what; + int thread; { - prepare_to_trace (); if (procfs_trace) { + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); + if (thread) fprintf (procfs_file ? procfs_file : stdout, "Thread %d: ", thread); @@ -776,21 +783,26 @@ proc_prettyfprint_status (long flags, int why, int what, int thread) void -_initialize_proc_api (void) +_initialize_proc_api () { struct cmd_list_element *c; - add_setshow_boolean_cmd ("procfs-trace", no_class, &procfs_trace, _("\ -Set tracing for /proc api calls."), _("\ -Show tracing for /proc api calls."), NULL, - set_procfs_trace_cmd, - NULL, /* FIXME: i18n: */ - &setlist, &showlist); - - add_setshow_filename_cmd ("procfs-file", no_class, &procfs_filename, _("\ -Set filename for /proc tracefile."), _("\ -Show filename for /proc tracefile."), NULL, - set_procfs_file_cmd, - NULL, /* FIXME: i18n: */ - &setlist, &showlist); + c = add_set_cmd ("procfs-trace", no_class, + var_boolean, (char *) &procfs_trace, + "Set tracing for /proc ioctl calls.\n", &setlist); + + add_show_from_set (c, &showlist); + c->function.sfunc = set_procfs_trace_cmd; + + c = add_set_cmd ("procfs-file", no_class, var_filename, + (char *) &procfs_filename, + "Set filename for /proc tracefile.\n", &setlist); + + add_show_from_set (c, &showlist); + c->function.sfunc = set_procfs_file_cmd; + +#ifdef TRACE_PROCFS + if (procfs_file == NULL && procfs_filename != NULL) + procfs_file = fopen (procfs_filename, "a"); +#endif } diff --git a/gdb/proc-events.c b/gdb/proc-events.c index 8e1066d15f7..2a430d8a6e6 100644 --- a/gdb/proc-events.c +++ b/gdb/proc-events.c @@ -1,66 +1,64 @@ -/* Machine-independent support for SVR4 /proc (process file system) - - Copyright (C) 1999, 2000, 2004, 2007, 2008 Free Software Foundation, Inc. - +/* Machine independent support for SVR4 /proc (process file system) for GDB. + Copyright 1999 Free Software Foundation, Inc. Written by Michael Snyder at Cygnus Solutions. Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others. - 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/>. */ - -/* Pretty-print "events of interest". - - This module includes pretty-print routines for: - * faults (hardware exceptions) - * signals (software interrupts) - * syscalls - - FIXME: At present, the syscall translation table must be - initialized, which is not true of the other translation tables. */ +This file is part of GDB. + +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 2 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, write to the Free Software Foundation, +Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* + * Pretty-print "events of interest". + * + * This module includes pretty-print routines for: + * faults (hardware exceptions): + * signals (software interrupts): + * syscalls + * + * FIXME: At present, the syscall translation table must be initialized, + * which is not true of the other translation tables. + */ #include "defs.h" -#ifdef NEW_PROC_API +#if defined (NEW_PROC_API) #define _STRUCTURED_PROC 1 #endif #include <stdio.h> #include <sys/types.h> #include <sys/procfs.h> -#ifdef HAVE_SYS_SYSCALL_H #include <sys/syscall.h> -#endif -#ifdef HAVE_SYS_FAULT_H #include <sys/fault.h> -#endif -/* Much of the information used in the /proc interface, particularly - for printing status information, is kept as tables of structures of - the following form. These tables can be used to map numeric values - to their symbolic names and to a string that describes their - specific use. */ +/* Much of the information used in the /proc interface, particularly for + printing status information, is kept as tables of structures of the + following form. These tables can be used to map numeric values to + their symbolic names and to a string that describes their specific use. */ -struct trans -{ - int value; /* The numeric value. */ - char *name; /* The equivalent symbolic value. */ - char *desc; /* Short description of value. */ +struct trans { + int value; /* The numeric value */ + char *name; /* The equivalent symbolic value */ + char *desc; /* Short description of value */ }; - -/* Pretty print syscalls. */ +/* + * pretty print syscalls + */ -/* Ugh -- UnixWare and Solaris spell these differently! */ +/* Ugh -- Unixware and Solaris spell these differently! */ #ifdef SYS_lwpcreate #define SYS_lwp_create SYS_lwpcreate @@ -99,1304 +97,1309 @@ struct trans #endif -/* Syscall translation table. */ +/* Syscall translation table. */ -#define MAX_SYSCALLS 262 /* Pretty arbitrary. */ -static char *syscall_table[MAX_SYSCALLS]; +#define MAX_SYSCALLS 262 /* pretty arbitrary */ +static char * syscall_table[MAX_SYSCALLS]; void init_syscall_table (void) { -#ifdef SYS_BSD_getime +#if defined (SYS_BSD_getime) syscall_table[SYS_BSD_getime] = "BSD_getime"; #endif -#ifdef SYS_BSDgetpgrp +#if defined (SYS_BSDgetpgrp) syscall_table[SYS_BSDgetpgrp] = "BSDgetpgrp"; #endif -#ifdef SYS_BSDsetpgrp +#if defined (SYS_BSDsetpgrp) syscall_table[SYS_BSDsetpgrp] = "BSDsetpgrp"; #endif -#ifdef SYS_acancel +#if defined (SYS_acancel) syscall_table[SYS_acancel] = "acancel"; #endif -#ifdef SYS_accept +#if defined (SYS_accept) syscall_table[SYS_accept] = "accept"; #endif -#ifdef SYS_access +#if defined (SYS_access) syscall_table[SYS_access] = "access"; #endif -#ifdef SYS_acct +#if defined (SYS_acct) syscall_table[SYS_acct] = "acct"; #endif -#ifdef SYS_acl +#if defined (SYS_acl) syscall_table[SYS_acl] = "acl"; #endif -#ifdef SYS_aclipc +#if defined (SYS_aclipc) syscall_table[SYS_aclipc] = "aclipc"; #endif -#ifdef SYS_adjtime +#if defined (SYS_adjtime) syscall_table[SYS_adjtime] = "adjtime"; #endif -#ifdef SYS_afs_syscall +#if defined (SYS_afs_syscall) syscall_table[SYS_afs_syscall] = "afs_syscall"; #endif -#ifdef SYS_alarm +#if defined (SYS_alarm) syscall_table[SYS_alarm] = "alarm"; #endif -#ifdef SYS_alt_plock +#if defined (SYS_alt_plock) syscall_table[SYS_alt_plock] = "alt_plock"; #endif -#ifdef SYS_alt_sigpending +#if defined (SYS_alt_sigpending) syscall_table[SYS_alt_sigpending] = "alt_sigpending"; #endif -#ifdef SYS_async +#if defined (SYS_async) syscall_table[SYS_async] = "async"; #endif -#ifdef SYS_async_daemon +#if defined (SYS_async_daemon) syscall_table[SYS_async_daemon] = "async_daemon"; #endif -#ifdef SYS_audcntl +#if defined (SYS_audcntl) syscall_table[SYS_audcntl] = "audcntl"; #endif -#ifdef SYS_audgen +#if defined (SYS_audgen) syscall_table[SYS_audgen] = "audgen"; #endif -#ifdef SYS_auditbuf +#if defined (SYS_auditbuf) syscall_table[SYS_auditbuf] = "auditbuf"; #endif -#ifdef SYS_auditctl +#if defined (SYS_auditctl) syscall_table[SYS_auditctl] = "auditctl"; #endif -#ifdef SYS_auditdmp +#if defined (SYS_auditdmp) syscall_table[SYS_auditdmp] = "auditdmp"; #endif -#ifdef SYS_auditevt +#if defined (SYS_auditevt) syscall_table[SYS_auditevt] = "auditevt"; #endif -#ifdef SYS_auditlog +#if defined (SYS_auditlog) syscall_table[SYS_auditlog] = "auditlog"; #endif -#ifdef SYS_auditsys +#if defined (SYS_auditsys) syscall_table[SYS_auditsys] = "auditsys"; #endif -#ifdef SYS_bind +#if defined (SYS_bind) syscall_table[SYS_bind] = "bind"; #endif -#ifdef SYS_block +#if defined (SYS_block) syscall_table[SYS_block] = "block"; #endif -#ifdef SYS_brk +#if defined (SYS_brk) syscall_table[SYS_brk] = "brk"; #endif -#ifdef SYS_cachectl +#if defined (SYS_cachectl) syscall_table[SYS_cachectl] = "cachectl"; #endif -#ifdef SYS_cacheflush +#if defined (SYS_cacheflush) syscall_table[SYS_cacheflush] = "cacheflush"; #endif -#ifdef SYS_cancelblock +#if defined (SYS_cancelblock) syscall_table[SYS_cancelblock] = "cancelblock"; #endif -#ifdef SYS_cg_bind +#if defined (SYS_cg_bind) syscall_table[SYS_cg_bind] = "cg_bind"; #endif -#ifdef SYS_cg_current +#if defined (SYS_cg_current) syscall_table[SYS_cg_current] = "cg_current"; #endif -#ifdef SYS_cg_ids +#if defined (SYS_cg_ids) syscall_table[SYS_cg_ids] = "cg_ids"; #endif -#ifdef SYS_cg_info +#if defined (SYS_cg_info) syscall_table[SYS_cg_info] = "cg_info"; #endif -#ifdef SYS_cg_memloc +#if defined (SYS_cg_memloc) syscall_table[SYS_cg_memloc] = "cg_memloc"; #endif -#ifdef SYS_cg_processors +#if defined (SYS_cg_processors) syscall_table[SYS_cg_processors] = "cg_processors"; #endif -#ifdef SYS_chdir +#if defined (SYS_chdir) syscall_table[SYS_chdir] = "chdir"; #endif -#ifdef SYS_chflags +#if defined (SYS_chflags) syscall_table[SYS_chflags] = "chflags"; #endif -#ifdef SYS_chmod +#if defined (SYS_chmod) syscall_table[SYS_chmod] = "chmod"; #endif -#ifdef SYS_chown +#if defined (SYS_chown) syscall_table[SYS_chown] = "chown"; #endif -#ifdef SYS_chroot +#if defined (SYS_chroot) syscall_table[SYS_chroot] = "chroot"; #endif -#ifdef SYS_clocal +#if defined (SYS_clocal) syscall_table[SYS_clocal] = "clocal"; #endif -#ifdef SYS_clock_getres +#if defined (SYS_clock_getres) syscall_table[SYS_clock_getres] = "clock_getres"; #endif -#ifdef SYS_clock_gettime +#if defined (SYS_clock_gettime) syscall_table[SYS_clock_gettime] = "clock_gettime"; #endif -#ifdef SYS_clock_settime +#if defined (SYS_clock_settime) syscall_table[SYS_clock_settime] = "clock_settime"; #endif -#ifdef SYS_close +#if defined (SYS_close) syscall_table[SYS_close] = "close"; #endif -#ifdef SYS_connect +#if defined (SYS_connect) syscall_table[SYS_connect] = "connect"; #endif -#ifdef SYS_context +#if defined (SYS_context) syscall_table[SYS_context] = "context"; #endif -#ifdef SYS_creat +#if defined (SYS_creat) syscall_table[SYS_creat] = "creat"; #endif -#ifdef SYS_creat64 +#if defined (SYS_creat64) syscall_table[SYS_creat64] = "creat64"; #endif -#ifdef SYS_devstat +#if defined (SYS_devstat) syscall_table[SYS_devstat] = "devstat"; #endif -#ifdef SYS_dmi +#if defined (SYS_dmi) syscall_table[SYS_dmi] = "dmi"; #endif -#ifdef SYS_door +#if defined (SYS_door) syscall_table[SYS_door] = "door"; #endif -#ifdef SYS_dshmsys +#if defined (SYS_dshmsys) syscall_table[SYS_dshmsys] = "dshmsys"; #endif -#ifdef SYS_dup +#if defined (SYS_dup) syscall_table[SYS_dup] = "dup"; #endif -#ifdef SYS_dup2 +#if defined (SYS_dup2) syscall_table[SYS_dup2] = "dup2"; #endif -#ifdef SYS_evsys +#if defined (SYS_evsys) syscall_table[SYS_evsys] = "evsys"; #endif -#ifdef SYS_evtrapret +#if defined (SYS_evtrapret) syscall_table[SYS_evtrapret] = "evtrapret"; #endif -#ifdef SYS_exec +#if defined (SYS_exec) syscall_table[SYS_exec] = "exec"; #endif -#ifdef SYS_exec_with_loader +#if defined (SYS_exec_with_loader) syscall_table[SYS_exec_with_loader] = "exec_with_loader"; #endif -#ifdef SYS_execv +#if defined (SYS_execv) syscall_table[SYS_execv] = "execv"; #endif -#ifdef SYS_execve +#if defined (SYS_execve) syscall_table[SYS_execve] = "execve"; #endif -#ifdef SYS_exit +#if defined (SYS_exit) syscall_table[SYS_exit] = "exit"; #endif -#ifdef SYS_exportfs +#if defined (SYS_exportfs) syscall_table[SYS_exportfs] = "exportfs"; #endif -#ifdef SYS_facl +#if defined (SYS_facl) syscall_table[SYS_facl] = "facl"; #endif -#ifdef SYS_fchdir +#if defined (SYS_fchdir) syscall_table[SYS_fchdir] = "fchdir"; #endif -#ifdef SYS_fchflags +#if defined (SYS_fchflags) syscall_table[SYS_fchflags] = "fchflags"; #endif -#ifdef SYS_fchmod +#if defined (SYS_fchmod) syscall_table[SYS_fchmod] = "fchmod"; #endif -#ifdef SYS_fchown +#if defined (SYS_fchown) syscall_table[SYS_fchown] = "fchown"; #endif -#ifdef SYS_fchroot +#if defined (SYS_fchroot) syscall_table[SYS_fchroot] = "fchroot"; #endif -#ifdef SYS_fcntl +#if defined (SYS_fcntl) syscall_table[SYS_fcntl] = "fcntl"; #endif -#ifdef SYS_fdatasync +#if defined (SYS_fdatasync) syscall_table[SYS_fdatasync] = "fdatasync"; #endif -#ifdef SYS_fdevstat +#if defined (SYS_fdevstat) syscall_table[SYS_fdevstat] = "fdevstat"; #endif -#ifdef SYS_fdsync +#if defined (SYS_fdsync) syscall_table[SYS_fdsync] = "fdsync"; #endif -#ifdef SYS_filepriv +#if defined (SYS_filepriv) syscall_table[SYS_filepriv] = "filepriv"; #endif -#ifdef SYS_flock +#if defined (SYS_flock) syscall_table[SYS_flock] = "flock"; #endif -#ifdef SYS_flvlfile +#if defined (SYS_flvlfile) syscall_table[SYS_flvlfile] = "flvlfile"; #endif -#ifdef SYS_fork +#if defined (SYS_fork) syscall_table[SYS_fork] = "fork"; #endif -#ifdef SYS_fork1 +#if defined (SYS_fork1) syscall_table[SYS_fork1] = "fork1"; #endif -#ifdef SYS_forkall +#if defined (SYS_forkall) syscall_table[SYS_forkall] = "forkall"; #endif -#ifdef SYS_fpathconf +#if defined (SYS_fpathconf) syscall_table[SYS_fpathconf] = "fpathconf"; #endif -#ifdef SYS_fstat +#if defined (SYS_fstat) syscall_table[SYS_fstat] = "fstat"; #endif -#ifdef SYS_fstat64 +#if defined (SYS_fstat64) syscall_table[SYS_fstat64] = "fstat64"; #endif -#ifdef SYS_fstatfs +#if defined (SYS_fstatfs) syscall_table[SYS_fstatfs] = "fstatfs"; #endif -#ifdef SYS_fstatvfs +#if defined (SYS_fstatvfs) syscall_table[SYS_fstatvfs] = "fstatvfs"; #endif -#ifdef SYS_fstatvfs64 +#if defined (SYS_fstatvfs64) syscall_table[SYS_fstatvfs64] = "fstatvfs64"; #endif -#ifdef SYS_fsync +#if defined (SYS_fsync) syscall_table[SYS_fsync] = "fsync"; #endif -#ifdef SYS_ftruncate +#if defined (SYS_ftruncate) syscall_table[SYS_ftruncate] = "ftruncate"; #endif -#ifdef SYS_ftruncate64 +#if defined (SYS_ftruncate64) syscall_table[SYS_ftruncate64] = "ftruncate64"; #endif -#ifdef SYS_fuser +#if defined (SYS_fuser) syscall_table[SYS_fuser] = "fuser"; #endif -#ifdef SYS_fxstat +#if defined (SYS_fxstat) syscall_table[SYS_fxstat] = "fxstat"; #endif -#ifdef SYS_get_sysinfo +#if defined (SYS_get_sysinfo) syscall_table[SYS_get_sysinfo] = "get_sysinfo"; #endif -#ifdef SYS_getaddressconf +#if defined (SYS_getaddressconf) syscall_table[SYS_getaddressconf] = "getaddressconf"; #endif -#ifdef SYS_getcontext +#if defined (SYS_getcontext) syscall_table[SYS_getcontext] = "getcontext"; #endif -#ifdef SYS_getdents +#if defined (SYS_getdents) syscall_table[SYS_getdents] = "getdents"; #endif -#ifdef SYS_getdents64 +#if defined (SYS_getdents64) syscall_table[SYS_getdents64] = "getdents64"; #endif -#ifdef SYS_getdirentries +#if defined (SYS_getdirentries) syscall_table[SYS_getdirentries] = "getdirentries"; #endif -#ifdef SYS_getdomainname +#if defined (SYS_getdomainname) syscall_table[SYS_getdomainname] = "getdomainname"; #endif -#ifdef SYS_getdtablesize +#if defined (SYS_getdtablesize) syscall_table[SYS_getdtablesize] = "getdtablesize"; #endif -#ifdef SYS_getfh +#if defined (SYS_getfh) syscall_table[SYS_getfh] = "getfh"; #endif -#ifdef SYS_getfsstat +#if defined (SYS_getfsstat) syscall_table[SYS_getfsstat] = "getfsstat"; #endif -#ifdef SYS_getgid +#if defined (SYS_getgid) syscall_table[SYS_getgid] = "getgid"; #endif -#ifdef SYS_getgroups +#if defined (SYS_getgroups) syscall_table[SYS_getgroups] = "getgroups"; #endif -#ifdef SYS_gethostid +#if defined (SYS_gethostid) syscall_table[SYS_gethostid] = "gethostid"; #endif -#ifdef SYS_gethostname +#if defined (SYS_gethostname) syscall_table[SYS_gethostname] = "gethostname"; #endif -#ifdef SYS_getitimer +#if defined (SYS_getitimer) syscall_table[SYS_getitimer] = "getitimer"; #endif -#ifdef SYS_getksym +#if defined (SYS_getksym) syscall_table[SYS_getksym] = "getksym"; #endif -#ifdef SYS_getlogin +#if defined (SYS_getlogin) syscall_table[SYS_getlogin] = "getlogin"; #endif -#ifdef SYS_getmnt +#if defined (SYS_getmnt) syscall_table[SYS_getmnt] = "getmnt"; #endif -#ifdef SYS_getmsg +#if defined (SYS_getmsg) syscall_table[SYS_getmsg] = "getmsg"; #endif -#ifdef SYS_getpagesize +#if defined (SYS_getpagesize) syscall_table[SYS_getpagesize] = "getpagesize"; #endif -#ifdef SYS_getpeername +#if defined (SYS_getpeername) syscall_table[SYS_getpeername] = "getpeername"; #endif -#ifdef SYS_getpgid +#if defined (SYS_getpgid) syscall_table[SYS_getpgid] = "getpgid"; #endif -#ifdef SYS_getpgrp +#if defined (SYS_getpgrp) syscall_table[SYS_getpgrp] = "getpgrp"; #endif -#ifdef SYS_getpid +#if defined (SYS_getpid) syscall_table[SYS_getpid] = "getpid"; #endif -#ifdef SYS_getpmsg +#if defined (SYS_getpmsg) syscall_table[SYS_getpmsg] = "getpmsg"; #endif -#ifdef SYS_getpriority +#if defined (SYS_getpriority) syscall_table[SYS_getpriority] = "getpriority"; #endif -#ifdef SYS_getrlimit +#if defined (SYS_getrlimit) syscall_table[SYS_getrlimit] = "getrlimit"; #endif -#ifdef SYS_getrlimit64 +#if defined (SYS_getrlimit64) syscall_table[SYS_getrlimit64] = "getrlimit64"; #endif -#ifdef SYS_getrusage +#if defined (SYS_getrusage) syscall_table[SYS_getrusage] = "getrusage"; #endif -#ifdef SYS_getsid +#if defined (SYS_getsid) syscall_table[SYS_getsid] = "getsid"; #endif -#ifdef SYS_getsockname +#if defined (SYS_getsockname) syscall_table[SYS_getsockname] = "getsockname"; #endif -#ifdef SYS_getsockopt +#if defined (SYS_getsockopt) syscall_table[SYS_getsockopt] = "getsockopt"; #endif -#ifdef SYS_gettimeofday +#if defined (SYS_gettimeofday) syscall_table[SYS_gettimeofday] = "gettimeofday"; #endif -#ifdef SYS_getuid +#if defined (SYS_getuid) syscall_table[SYS_getuid] = "getuid"; #endif -#ifdef SYS_gtty +#if defined (SYS_gtty) syscall_table[SYS_gtty] = "gtty"; #endif -#ifdef SYS_hrtsys +#if defined (SYS_hrtsys) syscall_table[SYS_hrtsys] = "hrtsys"; #endif -#ifdef SYS_inst_sync +#if defined (SYS_inst_sync) syscall_table[SYS_inst_sync] = "inst_sync"; #endif -#ifdef SYS_install_utrap +#if defined (SYS_install_utrap) syscall_table[SYS_install_utrap] = "install_utrap"; #endif -#ifdef SYS_invlpg +#if defined (SYS_invlpg) syscall_table[SYS_invlpg] = "invlpg"; #endif -#ifdef SYS_ioctl +#if defined (SYS_ioctl) syscall_table[SYS_ioctl] = "ioctl"; #endif -#ifdef SYS_kaio +#if defined (SYS_kaio) syscall_table[SYS_kaio] = "kaio"; #endif -#ifdef SYS_keyctl +#if defined (SYS_keyctl) syscall_table[SYS_keyctl] = "keyctl"; #endif -#ifdef SYS_kill +#if defined (SYS_kill) syscall_table[SYS_kill] = "kill"; #endif -#ifdef SYS_killpg +#if defined (SYS_killpg) syscall_table[SYS_killpg] = "killpg"; #endif -#ifdef SYS_kloadcall +#if defined (SYS_kloadcall) syscall_table[SYS_kloadcall] = "kloadcall"; #endif -#ifdef SYS_kmodcall +#if defined (SYS_kmodcall) syscall_table[SYS_kmodcall] = "kmodcall"; #endif -#ifdef SYS_ksigaction +#if defined (SYS_ksigaction) syscall_table[SYS_ksigaction] = "ksigaction"; #endif -#ifdef SYS_ksigprocmask +#if defined (SYS_ksigprocmask) syscall_table[SYS_ksigprocmask] = "ksigprocmask"; #endif -#ifdef SYS_ksigqueue +#if defined (SYS_ksigqueue) syscall_table[SYS_ksigqueue] = "ksigqueue"; #endif -#ifdef SYS_lchown +#if defined (SYS_lchown) syscall_table[SYS_lchown] = "lchown"; #endif -#ifdef SYS_link +#if defined (SYS_link) syscall_table[SYS_link] = "link"; #endif -#ifdef SYS_listen +#if defined (SYS_listen) syscall_table[SYS_listen] = "listen"; #endif -#ifdef SYS_llseek +#if defined (SYS_llseek) syscall_table[SYS_llseek] = "llseek"; #endif -#ifdef SYS_lseek +#if defined (SYS_lseek) syscall_table[SYS_lseek] = "lseek"; #endif -#ifdef SYS_lseek64 +#if defined (SYS_lseek64) syscall_table[SYS_lseek64] = "lseek64"; #endif -#ifdef SYS_lstat +#if defined (SYS_lstat) syscall_table[SYS_lstat] = "lstat"; #endif -#ifdef SYS_lstat64 +#if defined (SYS_lstat64) syscall_table[SYS_lstat64] = "lstat64"; #endif -#ifdef SYS_lvldom +#if defined (SYS_lvldom) syscall_table[SYS_lvldom] = "lvldom"; #endif -#ifdef SYS_lvlequal +#if defined (SYS_lvlequal) syscall_table[SYS_lvlequal] = "lvlequal"; #endif -#ifdef SYS_lvlfile +#if defined (SYS_lvlfile) syscall_table[SYS_lvlfile] = "lvlfile"; #endif -#ifdef SYS_lvlipc +#if defined (SYS_lvlipc) syscall_table[SYS_lvlipc] = "lvlipc"; #endif -#ifdef SYS_lvlproc +#if defined (SYS_lvlproc) syscall_table[SYS_lvlproc] = "lvlproc"; #endif -#ifdef SYS_lvlvfs +#if defined (SYS_lvlvfs) syscall_table[SYS_lvlvfs] = "lvlvfs"; #endif -#ifdef SYS_lwp_alarm +#if defined (SYS_lwp_alarm) syscall_table[SYS_lwp_alarm] = "lwp_alarm"; #endif -#ifdef SYS_lwp_cond_broadcast +#if defined (SYS_lwp_cond_broadcast) syscall_table[SYS_lwp_cond_broadcast] = "lwp_cond_broadcast"; #endif -#ifdef SYS_lwp_cond_signal +#if defined (SYS_lwp_cond_signal) syscall_table[SYS_lwp_cond_signal] = "lwp_cond_signal"; #endif -#ifdef SYS_lwp_cond_wait +#if defined (SYS_lwp_cond_wait) syscall_table[SYS_lwp_cond_wait] = "lwp_cond_wait"; #endif -#ifdef SYS_lwp_continue +#if defined (SYS_lwp_continue) syscall_table[SYS_lwp_continue] = "lwp_continue"; #endif -#ifdef SYS_lwp_create +#if defined (SYS_lwp_create) syscall_table[SYS_lwp_create] = "lwp_create"; #endif -#ifdef SYS_lwp_exit +#if defined (SYS_lwp_exit) syscall_table[SYS_lwp_exit] = "lwp_exit"; #endif -#ifdef SYS_lwp_getprivate +#if defined (SYS_lwp_getprivate) syscall_table[SYS_lwp_getprivate] = "lwp_getprivate"; #endif -#ifdef SYS_lwp_info +#if defined (SYS_lwp_info) syscall_table[SYS_lwp_info] = "lwp_info"; #endif -#ifdef SYS_lwp_kill +#if defined (SYS_lwp_kill) syscall_table[SYS_lwp_kill] = "lwp_kill"; #endif -#ifdef SYS_lwp_mutex_init +#if defined (SYS_lwp_mutex_init) syscall_table[SYS_lwp_mutex_init] = "lwp_mutex_init"; #endif -#ifdef SYS_lwp_mutex_lock +#if defined (SYS_lwp_mutex_lock) syscall_table[SYS_lwp_mutex_lock] = "lwp_mutex_lock"; #endif -#ifdef SYS_lwp_mutex_trylock +#if defined (SYS_lwp_mutex_trylock) syscall_table[SYS_lwp_mutex_trylock] = "lwp_mutex_trylock"; #endif -#ifdef SYS_lwp_mutex_unlock +#if defined (SYS_lwp_mutex_unlock) syscall_table[SYS_lwp_mutex_unlock] = "lwp_mutex_unlock"; #endif -#ifdef SYS_lwp_private +#if defined (SYS_lwp_private) syscall_table[SYS_lwp_private] = "lwp_private"; #endif -#ifdef SYS_lwp_self +#if defined (SYS_lwp_self) syscall_table[SYS_lwp_self] = "lwp_self"; #endif -#ifdef SYS_lwp_sema_post +#if defined (SYS_lwp_sema_post) syscall_table[SYS_lwp_sema_post] = "lwp_sema_post"; #endif -#ifdef SYS_lwp_sema_trywait +#if defined (SYS_lwp_sema_trywait) syscall_table[SYS_lwp_sema_trywait] = "lwp_sema_trywait"; #endif -#ifdef SYS_lwp_sema_wait +#if defined (SYS_lwp_sema_wait) syscall_table[SYS_lwp_sema_wait] = "lwp_sema_wait"; #endif -#ifdef SYS_lwp_setprivate +#if defined (SYS_lwp_setprivate) syscall_table[SYS_lwp_setprivate] = "lwp_setprivate"; #endif -#ifdef SYS_lwp_sigredirect +#if defined (SYS_lwp_sigredirect) syscall_table[SYS_lwp_sigredirect] = "lwp_sigredirect"; #endif -#ifdef SYS_lwp_suspend +#if defined (SYS_lwp_suspend) syscall_table[SYS_lwp_suspend] = "lwp_suspend"; #endif -#ifdef SYS_lwp_wait +#if defined (SYS_lwp_wait) syscall_table[SYS_lwp_wait] = "lwp_wait"; #endif -#ifdef SYS_lxstat +#if defined (SYS_lxstat) syscall_table[SYS_lxstat] = "lxstat"; #endif -#ifdef SYS_madvise +#if defined (SYS_madvise) syscall_table[SYS_madvise] = "madvise"; #endif -#ifdef SYS_memcntl +#if defined (SYS_memcntl) syscall_table[SYS_memcntl] = "memcntl"; #endif -#ifdef SYS_mincore +#if defined (SYS_mincore) syscall_table[SYS_mincore] = "mincore"; #endif -#ifdef SYS_mincore +#if defined (SYS_mincore) syscall_table[SYS_mincore] = "mincore"; #endif -#ifdef SYS_mkdir +#if defined (SYS_mkdir) syscall_table[SYS_mkdir] = "mkdir"; #endif -#ifdef SYS_mkmld +#if defined (SYS_mkmld) syscall_table[SYS_mkmld] = "mkmld"; #endif -#ifdef SYS_mknod +#if defined (SYS_mknod) syscall_table[SYS_mknod] = "mknod"; #endif -#ifdef SYS_mldmode +#if defined (SYS_mldmode) syscall_table[SYS_mldmode] = "mldmode"; #endif -#ifdef SYS_mmap +#if defined (SYS_mmap) syscall_table[SYS_mmap] = "mmap"; #endif -#ifdef SYS_mmap64 +#if defined (SYS_mmap64) syscall_table[SYS_mmap64] = "mmap64"; #endif -#ifdef SYS_modadm +#if defined (SYS_modadm) syscall_table[SYS_modadm] = "modadm"; #endif -#ifdef SYS_modctl +#if defined (SYS_modctl) syscall_table[SYS_modctl] = "modctl"; #endif -#ifdef SYS_modload +#if defined (SYS_modload) syscall_table[SYS_modload] = "modload"; #endif -#ifdef SYS_modpath +#if defined (SYS_modpath) syscall_table[SYS_modpath] = "modpath"; #endif -#ifdef SYS_modstat +#if defined (SYS_modstat) syscall_table[SYS_modstat] = "modstat"; #endif -#ifdef SYS_moduload +#if defined (SYS_moduload) syscall_table[SYS_moduload] = "moduload"; #endif -#ifdef SYS_mount +#if defined (SYS_mount) syscall_table[SYS_mount] = "mount"; #endif -#ifdef SYS_mprotect +#if defined (SYS_mprotect) syscall_table[SYS_mprotect] = "mprotect"; #endif -#ifdef SYS_mremap +#if defined (SYS_mremap) syscall_table[SYS_mremap] = "mremap"; #endif -#ifdef SYS_msfs_syscall +#if defined (SYS_msfs_syscall) syscall_table[SYS_msfs_syscall] = "msfs_syscall"; #endif -#ifdef SYS_msgctl +#if defined (SYS_msgctl) syscall_table[SYS_msgctl] = "msgctl"; #endif -#ifdef SYS_msgget +#if defined (SYS_msgget) syscall_table[SYS_msgget] = "msgget"; #endif -#ifdef SYS_msgrcv +#if defined (SYS_msgrcv) syscall_table[SYS_msgrcv] = "msgrcv"; #endif -#ifdef SYS_msgsnd +#if defined (SYS_msgsnd) syscall_table[SYS_msgsnd] = "msgsnd"; #endif -#ifdef SYS_msgsys +#if defined (SYS_msgsys) syscall_table[SYS_msgsys] = "msgsys"; #endif -#ifdef SYS_msleep +#if defined (SYS_msleep) syscall_table[SYS_msleep] = "msleep"; #endif -#ifdef SYS_msync +#if defined (SYS_msync) syscall_table[SYS_msync] = "msync"; #endif -#ifdef SYS_munmap +#if defined (SYS_munmap) syscall_table[SYS_munmap] = "munmap"; #endif -#ifdef SYS_mvalid +#if defined (SYS_mvalid) syscall_table[SYS_mvalid] = "mvalid"; #endif -#ifdef SYS_mwakeup +#if defined (SYS_mwakeup) syscall_table[SYS_mwakeup] = "mwakeup"; #endif -#ifdef SYS_naccept +#if defined (SYS_naccept) syscall_table[SYS_naccept] = "naccept"; #endif -#ifdef SYS_nanosleep +#if defined (SYS_nanosleep) syscall_table[SYS_nanosleep] = "nanosleep"; #endif -#ifdef SYS_nfssvc +#if defined (SYS_nfssvc) syscall_table[SYS_nfssvc] = "nfssvc"; #endif -#ifdef SYS_nfssys +#if defined (SYS_nfssys) syscall_table[SYS_nfssys] = "nfssys"; #endif -#ifdef SYS_ngetpeername +#if defined (SYS_ngetpeername) syscall_table[SYS_ngetpeername] = "ngetpeername"; #endif -#ifdef SYS_ngetsockname +#if defined (SYS_ngetsockname) syscall_table[SYS_ngetsockname] = "ngetsockname"; #endif -#ifdef SYS_nice +#if defined (SYS_nice) syscall_table[SYS_nice] = "nice"; #endif -#ifdef SYS_nrecvfrom +#if defined (SYS_nrecvfrom) syscall_table[SYS_nrecvfrom] = "nrecvfrom"; #endif -#ifdef SYS_nrecvmsg +#if defined (SYS_nrecvmsg) syscall_table[SYS_nrecvmsg] = "nrecvmsg"; #endif -#ifdef SYS_nsendmsg +#if defined (SYS_nsendmsg) syscall_table[SYS_nsendmsg] = "nsendmsg"; #endif -#ifdef SYS_ntp_adjtime +#if defined (SYS_ntp_adjtime) syscall_table[SYS_ntp_adjtime] = "ntp_adjtime"; #endif -#ifdef SYS_ntp_gettime +#if defined (SYS_ntp_gettime) syscall_table[SYS_ntp_gettime] = "ntp_gettime"; #endif -#ifdef SYS_nuname +#if defined (SYS_nuname) syscall_table[SYS_nuname] = "nuname"; #endif -#ifdef SYS_obreak +#if defined (SYS_obreak) syscall_table[SYS_obreak] = "obreak"; #endif -#ifdef SYS_old_accept +#if defined (SYS_old_accept) syscall_table[SYS_old_accept] = "old_accept"; #endif -#ifdef SYS_old_fstat +#if defined (SYS_old_fstat) syscall_table[SYS_old_fstat] = "old_fstat"; #endif -#ifdef SYS_old_getpeername +#if defined (SYS_old_getpeername) syscall_table[SYS_old_getpeername] = "old_getpeername"; #endif -#ifdef SYS_old_getpgrp +#if defined (SYS_old_getpgrp) syscall_table[SYS_old_getpgrp] = "old_getpgrp"; #endif -#ifdef SYS_old_getsockname +#if defined (SYS_old_getsockname) syscall_table[SYS_old_getsockname] = "old_getsockname"; #endif -#ifdef SYS_old_killpg +#if defined (SYS_old_killpg) syscall_table[SYS_old_killpg] = "old_killpg"; #endif -#ifdef SYS_old_lstat +#if defined (SYS_old_lstat) syscall_table[SYS_old_lstat] = "old_lstat"; #endif -#ifdef SYS_old_recv +#if defined (SYS_old_recv) syscall_table[SYS_old_recv] = "old_recv"; #endif -#ifdef SYS_old_recvfrom +#if defined (SYS_old_recvfrom) syscall_table[SYS_old_recvfrom] = "old_recvfrom"; #endif -#ifdef SYS_old_recvmsg +#if defined (SYS_old_recvmsg) syscall_table[SYS_old_recvmsg] = "old_recvmsg"; #endif -#ifdef SYS_old_send +#if defined (SYS_old_send) syscall_table[SYS_old_send] = "old_send"; #endif -#ifdef SYS_old_sendmsg +#if defined (SYS_old_sendmsg) syscall_table[SYS_old_sendmsg] = "old_sendmsg"; #endif -#ifdef SYS_old_sigblock +#if defined (SYS_old_sigblock) syscall_table[SYS_old_sigblock] = "old_sigblock"; #endif -#ifdef SYS_old_sigsetmask +#if defined (SYS_old_sigsetmask) syscall_table[SYS_old_sigsetmask] = "old_sigsetmask"; #endif -#ifdef SYS_old_sigvec +#if defined (SYS_old_sigvec) syscall_table[SYS_old_sigvec] = "old_sigvec"; #endif -#ifdef SYS_old_stat +#if defined (SYS_old_stat) syscall_table[SYS_old_stat] = "old_stat"; #endif -#ifdef SYS_old_vhangup +#if defined (SYS_old_vhangup) syscall_table[SYS_old_vhangup] = "old_vhangup"; #endif -#ifdef SYS_old_wait +#if defined (SYS_old_wait) syscall_table[SYS_old_wait] = "old_wait"; #endif -#ifdef SYS_oldquota +#if defined (SYS_oldquota) syscall_table[SYS_oldquota] = "oldquota"; #endif -#ifdef SYS_online +#if defined (SYS_online) syscall_table[SYS_online] = "online"; #endif -#ifdef SYS_open +#if defined (SYS_open) syscall_table[SYS_open] = "open"; #endif -#ifdef SYS_open64 +#if defined (SYS_open64) syscall_table[SYS_open64] = "open64"; #endif -#ifdef SYS_ovadvise +#if defined (SYS_ovadvise) syscall_table[SYS_ovadvise] = "ovadvise"; #endif -#ifdef SYS_p_online +#if defined (SYS_p_online) syscall_table[SYS_p_online] = "p_online"; #endif -#ifdef SYS_pagelock +#if defined (SYS_pagelock) syscall_table[SYS_pagelock] = "pagelock"; #endif -#ifdef SYS_pathconf +#if defined (SYS_pathconf) syscall_table[SYS_pathconf] = "pathconf"; #endif -#ifdef SYS_pause +#if defined (SYS_pause) syscall_table[SYS_pause] = "pause"; #endif -#ifdef SYS_pgrpsys +#if defined (SYS_pgrpsys) syscall_table[SYS_pgrpsys] = "pgrpsys"; #endif -#ifdef SYS_pid_block +#if defined (SYS_pid_block) syscall_table[SYS_pid_block] = "pid_block"; #endif -#ifdef SYS_pid_unblock +#if defined (SYS_pid_unblock) syscall_table[SYS_pid_unblock] = "pid_unblock"; #endif -#ifdef SYS_pipe +#if defined (SYS_pipe) syscall_table[SYS_pipe] = "pipe"; #endif -#ifdef SYS_plock +#if defined (SYS_plock) syscall_table[SYS_plock] = "plock"; #endif -#ifdef SYS_poll +#if defined (SYS_poll) syscall_table[SYS_poll] = "poll"; #endif -#ifdef SYS_prctl +#if defined (SYS_prctl) syscall_table[SYS_prctl] = "prctl"; #endif -#ifdef SYS_pread +#if defined (SYS_pread) syscall_table[SYS_pread] = "pread"; #endif -#ifdef SYS_pread64 +#if defined (SYS_pread64) syscall_table[SYS_pread64] = "pread64"; #endif -#ifdef SYS_pread64 +#if defined (SYS_pread64) syscall_table[SYS_pread64] = "pread64"; #endif -#ifdef SYS_prepblock +#if defined (SYS_prepblock) syscall_table[SYS_prepblock] = "prepblock"; #endif -#ifdef SYS_priocntl +#if defined (SYS_priocntl) syscall_table[SYS_priocntl] = "priocntl"; #endif -#ifdef SYS_priocntllst +#if defined (SYS_priocntllst) syscall_table[SYS_priocntllst] = "priocntllst"; #endif -#ifdef SYS_priocntlset +#if defined (SYS_priocntlset) syscall_table[SYS_priocntlset] = "priocntlset"; #endif -#ifdef SYS_priocntlsys +#if defined (SYS_priocntlsys) syscall_table[SYS_priocntlsys] = "priocntlsys"; #endif -#ifdef SYS_procblk +#if defined (SYS_procblk) syscall_table[SYS_procblk] = "procblk"; #endif -#ifdef SYS_processor_bind +#if defined (SYS_processor_bind) syscall_table[SYS_processor_bind] = "processor_bind"; #endif -#ifdef SYS_processor_exbind +#if defined (SYS_processor_exbind) syscall_table[SYS_processor_exbind] = "processor_exbind"; #endif -#ifdef SYS_processor_info +#if defined (SYS_processor_info) syscall_table[SYS_processor_info] = "processor_info"; #endif -#ifdef SYS_procpriv +#if defined (SYS_procpriv) syscall_table[SYS_procpriv] = "procpriv"; #endif -#ifdef SYS_profil +#if defined (SYS_profil) syscall_table[SYS_profil] = "profil"; #endif -#ifdef SYS_proplist_syscall +#if defined (SYS_proplist_syscall) syscall_table[SYS_proplist_syscall] = "proplist_syscall"; #endif -#ifdef SYS_pset +#if defined (SYS_pset) syscall_table[SYS_pset] = "pset"; #endif -#ifdef SYS_ptrace +#if defined (SYS_ptrace) syscall_table[SYS_ptrace] = "ptrace"; #endif -#ifdef SYS_putmsg +#if defined (SYS_putmsg) syscall_table[SYS_putmsg] = "putmsg"; #endif -#ifdef SYS_putpmsg +#if defined (SYS_putpmsg) syscall_table[SYS_putpmsg] = "putpmsg"; #endif -#ifdef SYS_pwrite +#if defined (SYS_pwrite) syscall_table[SYS_pwrite] = "pwrite"; #endif -#ifdef SYS_pwrite64 +#if defined (SYS_pwrite64) syscall_table[SYS_pwrite64] = "pwrite64"; #endif -#ifdef SYS_quotactl +#if defined (SYS_quotactl) syscall_table[SYS_quotactl] = "quotactl"; #endif -#ifdef SYS_rdblock +#if defined (SYS_rdblock) syscall_table[SYS_rdblock] = "rdblock"; #endif -#ifdef SYS_read +#if defined (SYS_read) syscall_table[SYS_read] = "read"; #endif -#ifdef SYS_readlink +#if defined (SYS_readlink) syscall_table[SYS_readlink] = "readlink"; #endif -#ifdef SYS_readv +#if defined (SYS_readv) syscall_table[SYS_readv] = "readv"; #endif -#ifdef SYS_reboot +#if defined (SYS_reboot) syscall_table[SYS_reboot] = "reboot"; #endif -#ifdef SYS_recv +#if defined (SYS_recv) syscall_table[SYS_recv] = "recv"; #endif -#ifdef SYS_recvfrom +#if defined (SYS_recvfrom) syscall_table[SYS_recvfrom] = "recvfrom"; #endif -#ifdef SYS_recvmsg +#if defined (SYS_recvmsg) syscall_table[SYS_recvmsg] = "recvmsg"; #endif -#ifdef SYS_rename +#if defined (SYS_rename) syscall_table[SYS_rename] = "rename"; #endif -#ifdef SYS_resolvepath +#if defined (SYS_resolvepath) syscall_table[SYS_resolvepath] = "resolvepath"; #endif -#ifdef SYS_revoke +#if defined (SYS_revoke) syscall_table[SYS_revoke] = "revoke"; #endif -#ifdef SYS_rfsys +#if defined (SYS_rfsys) syscall_table[SYS_rfsys] = "rfsys"; #endif -#ifdef SYS_rmdir +#if defined (SYS_rmdir) syscall_table[SYS_rmdir] = "rmdir"; #endif -#ifdef SYS_rpcsys +#if defined (SYS_rpcsys) syscall_table[SYS_rpcsys] = "rpcsys"; #endif -#ifdef SYS_sbrk +#if defined (SYS_sbrk) syscall_table[SYS_sbrk] = "sbrk"; #endif -#ifdef SYS_schedctl +#if defined (SYS_schedctl) syscall_table[SYS_schedctl] = "schedctl"; #endif -#ifdef SYS_secadvise +#if defined (SYS_secadvise) syscall_table[SYS_secadvise] = "secadvise"; #endif -#ifdef SYS_secsys +#if defined (SYS_secsys) syscall_table[SYS_secsys] = "secsys"; #endif -#ifdef SYS_security +#if defined (SYS_security) syscall_table[SYS_security] = "security"; #endif -#ifdef SYS_select +#if defined (SYS_select) syscall_table[SYS_select] = "select"; #endif -#ifdef SYS_semctl +#if defined (SYS_semctl) syscall_table[SYS_semctl] = "semctl"; #endif -#ifdef SYS_semget +#if defined (SYS_semget) syscall_table[SYS_semget] = "semget"; #endif -#ifdef SYS_semop +#if defined (SYS_semop) syscall_table[SYS_semop] = "semop"; #endif -#ifdef SYS_semsys +#if defined (SYS_semsys) syscall_table[SYS_semsys] = "semsys"; #endif -#ifdef SYS_send +#if defined (SYS_send) syscall_table[SYS_send] = "send"; #endif -#ifdef SYS_sendmsg +#if defined (SYS_sendmsg) syscall_table[SYS_sendmsg] = "sendmsg"; #endif -#ifdef SYS_sendto +#if defined (SYS_sendto) syscall_table[SYS_sendto] = "sendto"; #endif -#ifdef SYS_set_program_attributes +#if defined (SYS_set_program_attributes) syscall_table[SYS_set_program_attributes] = "set_program_attributes"; #endif -#ifdef SYS_set_speculative +#if defined (SYS_set_speculative) syscall_table[SYS_set_speculative] = "set_speculative"; #endif -#ifdef SYS_set_sysinfo +#if defined (SYS_set_sysinfo) syscall_table[SYS_set_sysinfo] = "set_sysinfo"; #endif -#ifdef SYS_setcontext +#if defined (SYS_setcontext) syscall_table[SYS_setcontext] = "setcontext"; #endif -#ifdef SYS_setdomainname +#if defined (SYS_setdomainname) syscall_table[SYS_setdomainname] = "setdomainname"; #endif -#ifdef SYS_setegid +#if defined (SYS_setegid) syscall_table[SYS_setegid] = "setegid"; #endif -#ifdef SYS_seteuid +#if defined (SYS_seteuid) syscall_table[SYS_seteuid] = "seteuid"; #endif -#ifdef SYS_setgid +#if defined (SYS_setgid) syscall_table[SYS_setgid] = "setgid"; #endif -#ifdef SYS_setgroups +#if defined (SYS_setgroups) syscall_table[SYS_setgroups] = "setgroups"; #endif -#ifdef SYS_sethostid +#if defined (SYS_sethostid) syscall_table[SYS_sethostid] = "sethostid"; #endif -#ifdef SYS_sethostname +#if defined (SYS_sethostname) syscall_table[SYS_sethostname] = "sethostname"; #endif -#ifdef SYS_setitimer +#if defined (SYS_setitimer) syscall_table[SYS_setitimer] = "setitimer"; #endif -#ifdef SYS_setlogin +#if defined (SYS_setlogin) syscall_table[SYS_setlogin] = "setlogin"; #endif -#ifdef SYS_setpgid +#if defined (SYS_setpgid) syscall_table[SYS_setpgid] = "setpgid"; #endif -#ifdef SYS_setpgrp +#if defined (SYS_setpgrp) syscall_table[SYS_setpgrp] = "setpgrp"; #endif -#ifdef SYS_setpriority +#if defined (SYS_setpriority) syscall_table[SYS_setpriority] = "setpriority"; #endif -#ifdef SYS_setregid +#if defined (SYS_setregid) syscall_table[SYS_setregid] = "setregid"; #endif -#ifdef SYS_setreuid +#if defined (SYS_setreuid) syscall_table[SYS_setreuid] = "setreuid"; #endif -#ifdef SYS_setrlimit +#if defined (SYS_setrlimit) syscall_table[SYS_setrlimit] = "setrlimit"; #endif -#ifdef SYS_setrlimit64 +#if defined (SYS_setrlimit64) syscall_table[SYS_setrlimit64] = "setrlimit64"; #endif -#ifdef SYS_setsid +#if defined (SYS_setsid) syscall_table[SYS_setsid] = "setsid"; #endif -#ifdef SYS_setsockopt +#if defined (SYS_setsockopt) syscall_table[SYS_setsockopt] = "setsockopt"; #endif -#ifdef SYS_settimeofday +#if defined (SYS_settimeofday) syscall_table[SYS_settimeofday] = "settimeofday"; #endif -#ifdef SYS_setuid +#if defined (SYS_setuid) syscall_table[SYS_setuid] = "setuid"; #endif -#ifdef SYS_sgi +#if defined (SYS_sgi) syscall_table[SYS_sgi] = "sgi"; #endif -#ifdef SYS_sgifastpath +#if defined (SYS_sgifastpath) syscall_table[SYS_sgifastpath] = "sgifastpath"; #endif -#ifdef SYS_sgikopt +#if defined (SYS_sgikopt) syscall_table[SYS_sgikopt] = "sgikopt"; #endif -#ifdef SYS_sginap +#if defined (SYS_sginap) syscall_table[SYS_sginap] = "sginap"; #endif -#ifdef SYS_shmat +#if defined (SYS_shmat) syscall_table[SYS_shmat] = "shmat"; #endif -#ifdef SYS_shmctl +#if defined (SYS_shmctl) syscall_table[SYS_shmctl] = "shmctl"; #endif -#ifdef SYS_shmdt +#if defined (SYS_shmdt) syscall_table[SYS_shmdt] = "shmdt"; #endif -#ifdef SYS_shmget +#if defined (SYS_shmget) syscall_table[SYS_shmget] = "shmget"; #endif -#ifdef SYS_shmsys +#if defined (SYS_shmsys) syscall_table[SYS_shmsys] = "shmsys"; #endif -#ifdef SYS_shutdown +#if defined (SYS_shutdown) syscall_table[SYS_shutdown] = "shutdown"; #endif -#ifdef SYS_sigaction +#if defined (SYS_sigaction) syscall_table[SYS_sigaction] = "sigaction"; #endif -#ifdef SYS_sigaltstack +#if defined (SYS_sigaltstack) syscall_table[SYS_sigaltstack] = "sigaltstack"; #endif -#ifdef SYS_sigaltstack +#if defined (SYS_sigaltstack) syscall_table[SYS_sigaltstack] = "sigaltstack"; #endif -#ifdef SYS_sigblock +#if defined (SYS_sigblock) syscall_table[SYS_sigblock] = "sigblock"; #endif -#ifdef SYS_signal +#if defined (SYS_signal) syscall_table[SYS_signal] = "signal"; #endif -#ifdef SYS_signotify +#if defined (SYS_signotify) syscall_table[SYS_signotify] = "signotify"; #endif -#ifdef SYS_signotifywait +#if defined (SYS_signotifywait) syscall_table[SYS_signotifywait] = "signotifywait"; #endif -#ifdef SYS_sigpending +#if defined (SYS_sigpending) syscall_table[SYS_sigpending] = "sigpending"; #endif -#ifdef SYS_sigpoll +#if defined (SYS_sigpoll) syscall_table[SYS_sigpoll] = "sigpoll"; #endif -#ifdef SYS_sigprocmask +#if defined (SYS_sigprocmask) syscall_table[SYS_sigprocmask] = "sigprocmask"; #endif -#ifdef SYS_sigqueue +#if defined (SYS_sigqueue) syscall_table[SYS_sigqueue] = "sigqueue"; #endif -#ifdef SYS_sigreturn +#if defined (SYS_sigreturn) syscall_table[SYS_sigreturn] = "sigreturn"; #endif -#ifdef SYS_sigsendset +#if defined (SYS_sigsendset) syscall_table[SYS_sigsendset] = "sigsendset"; #endif -#ifdef SYS_sigsendsys +#if defined (SYS_sigsendsys) syscall_table[SYS_sigsendsys] = "sigsendsys"; #endif -#ifdef SYS_sigsetmask +#if defined (SYS_sigsetmask) syscall_table[SYS_sigsetmask] = "sigsetmask"; #endif -#ifdef SYS_sigstack +#if defined (SYS_sigstack) syscall_table[SYS_sigstack] = "sigstack"; #endif -#ifdef SYS_sigsuspend +#if defined (SYS_sigsuspend) syscall_table[SYS_sigsuspend] = "sigsuspend"; #endif -#ifdef SYS_sigvec +#if defined (SYS_sigvec) syscall_table[SYS_sigvec] = "sigvec"; #endif -#ifdef SYS_sigwait +#if defined (SYS_sigwait) syscall_table[SYS_sigwait] = "sigwait"; #endif -#ifdef SYS_sigwaitprim +#if defined (SYS_sigwaitprim) syscall_table[SYS_sigwaitprim] = "sigwaitprim"; #endif -#ifdef SYS_sleep +#if defined (SYS_sleep) syscall_table[SYS_sleep] = "sleep"; #endif -#ifdef SYS_so_socket +#if defined (SYS_so_socket) syscall_table[SYS_so_socket] = "so_socket"; #endif -#ifdef SYS_so_socketpair +#if defined (SYS_so_socketpair) syscall_table[SYS_so_socketpair] = "so_socketpair"; #endif -#ifdef SYS_sockconfig +#if defined (SYS_sockconfig) syscall_table[SYS_sockconfig] = "sockconfig"; #endif -#ifdef SYS_socket +#if defined (SYS_socket) syscall_table[SYS_socket] = "socket"; #endif -#ifdef SYS_socketpair +#if defined (SYS_socketpair) syscall_table[SYS_socketpair] = "socketpair"; #endif -#ifdef SYS_sproc +#if defined (SYS_sproc) syscall_table[SYS_sproc] = "sproc"; #endif -#ifdef SYS_sprocsp +#if defined (SYS_sprocsp) syscall_table[SYS_sprocsp] = "sprocsp"; #endif -#ifdef SYS_sstk +#if defined (SYS_sstk) syscall_table[SYS_sstk] = "sstk"; #endif -#ifdef SYS_stat +#if defined (SYS_stat) syscall_table[SYS_stat] = "stat"; #endif -#ifdef SYS_stat64 +#if defined (SYS_stat64) syscall_table[SYS_stat64] = "stat64"; #endif -#ifdef SYS_statfs +#if defined (SYS_statfs) syscall_table[SYS_statfs] = "statfs"; #endif -#ifdef SYS_statvfs +#if defined (SYS_statvfs) syscall_table[SYS_statvfs] = "statvfs"; #endif -#ifdef SYS_statvfs64 +#if defined (SYS_statvfs64) syscall_table[SYS_statvfs64] = "statvfs64"; #endif -#ifdef SYS_stime +#if defined (SYS_stime) syscall_table[SYS_stime] = "stime"; #endif -#ifdef SYS_stty +#if defined (SYS_stty) syscall_table[SYS_stty] = "stty"; #endif -#ifdef SYS_subsys_info +#if defined (SYS_subsys_info) syscall_table[SYS_subsys_info] = "subsys_info"; #endif -#ifdef SYS_swapctl +#if defined (SYS_swapctl) syscall_table[SYS_swapctl] = "swapctl"; #endif -#ifdef SYS_swapon +#if defined (SYS_swapon) syscall_table[SYS_swapon] = "swapon"; #endif -#ifdef SYS_symlink +#if defined (SYS_symlink) syscall_table[SYS_symlink] = "symlink"; #endif -#ifdef SYS_sync +#if defined (SYS_sync) syscall_table[SYS_sync] = "sync"; #endif -#ifdef SYS_sys3b +#if defined (SYS_sys3b) syscall_table[SYS_sys3b] = "sys3b"; #endif -#ifdef SYS_syscall +#if defined (SYS_syscall) syscall_table[SYS_syscall] = "syscall"; #endif -#ifdef SYS_sysconfig +#if defined (SYS_sysconfig) syscall_table[SYS_sysconfig] = "sysconfig"; #endif -#ifdef SYS_sysfs +#if defined (SYS_sysfs) syscall_table[SYS_sysfs] = "sysfs"; #endif -#ifdef SYS_sysi86 +#if defined (SYS_sysi86) syscall_table[SYS_sysi86] = "sysi86"; #endif -#ifdef SYS_sysinfo +#if defined (SYS_sysinfo) syscall_table[SYS_sysinfo] = "sysinfo"; #endif -#ifdef SYS_sysmips +#if defined (SYS_sysmips) syscall_table[SYS_sysmips] = "sysmips"; #endif -#ifdef SYS_syssun +#if defined (SYS_syssun) syscall_table[SYS_syssun] = "syssun"; #endif -#ifdef SYS_systeminfo +#if defined (SYS_systeminfo) syscall_table[SYS_systeminfo] = "systeminfo"; #endif -#ifdef SYS_table +#if defined (SYS_table) syscall_table[SYS_table] = "table"; #endif -#ifdef SYS_time +#if defined (SYS_time) syscall_table[SYS_time] = "time"; #endif -#ifdef SYS_timedwait +#if defined (SYS_timedwait) syscall_table[SYS_timedwait] = "timedwait"; #endif -#ifdef SYS_timer_create +#if defined (SYS_timer_create) syscall_table[SYS_timer_create] = "timer_create"; #endif -#ifdef SYS_timer_delete +#if defined (SYS_timer_delete) syscall_table[SYS_timer_delete] = "timer_delete"; #endif -#ifdef SYS_timer_getoverrun +#if defined (SYS_timer_getoverrun) syscall_table[SYS_timer_getoverrun] = "timer_getoverrun"; #endif -#ifdef SYS_timer_gettime +#if defined (SYS_timer_gettime) syscall_table[SYS_timer_gettime] = "timer_gettime"; #endif -#ifdef SYS_timer_settime +#if defined (SYS_timer_settime) syscall_table[SYS_timer_settime] = "timer_settime"; #endif -#ifdef SYS_times +#if defined (SYS_times) syscall_table[SYS_times] = "times"; #endif -#ifdef SYS_truncate +#if defined (SYS_truncate) syscall_table[SYS_truncate] = "truncate"; #endif -#ifdef SYS_truncate64 +#if defined (SYS_truncate64) syscall_table[SYS_truncate64] = "truncate64"; #endif -#ifdef SYS_tsolsys +#if defined (SYS_tsolsys) syscall_table[SYS_tsolsys] = "tsolsys"; #endif -#ifdef SYS_uadmin +#if defined (SYS_uadmin) syscall_table[SYS_uadmin] = "uadmin"; #endif -#ifdef SYS_ulimit +#if defined (SYS_ulimit) syscall_table[SYS_ulimit] = "ulimit"; #endif -#ifdef SYS_umask +#if defined (SYS_umask) syscall_table[SYS_umask] = "umask"; #endif -#ifdef SYS_umount +#if defined (SYS_umount) syscall_table[SYS_umount] = "umount"; #endif -#ifdef SYS_uname +#if defined (SYS_uname) syscall_table[SYS_uname] = "uname"; #endif -#ifdef SYS_unblock +#if defined (SYS_unblock) syscall_table[SYS_unblock] = "unblock"; #endif -#ifdef SYS_unlink +#if defined (SYS_unlink) syscall_table[SYS_unlink] = "unlink"; #endif -#ifdef SYS_unmount +#if defined (SYS_unmount) syscall_table[SYS_unmount] = "unmount"; #endif -#ifdef SYS_usleep_thread +#if defined (SYS_usleep_thread) syscall_table[SYS_usleep_thread] = "usleep_thread"; #endif -#ifdef SYS_uswitch +#if defined (SYS_uswitch) syscall_table[SYS_uswitch] = "uswitch"; #endif -#ifdef SYS_utc_adjtime +#if defined (SYS_utc_adjtime) syscall_table[SYS_utc_adjtime] = "utc_adjtime"; #endif -#ifdef SYS_utc_gettime +#if defined (SYS_utc_gettime) syscall_table[SYS_utc_gettime] = "utc_gettime"; #endif -#ifdef SYS_utime +#if defined (SYS_utime) syscall_table[SYS_utime] = "utime"; #endif -#ifdef SYS_utimes +#if defined (SYS_utimes) syscall_table[SYS_utimes] = "utimes"; #endif -#ifdef SYS_utssys +#if defined (SYS_utssys) syscall_table[SYS_utssys] = "utssys"; #endif -#ifdef SYS_vfork +#if defined (SYS_vfork) syscall_table[SYS_vfork] = "vfork"; #endif -#ifdef SYS_vhangup +#if defined (SYS_vhangup) syscall_table[SYS_vhangup] = "vhangup"; #endif -#ifdef SYS_vtrace +#if defined (SYS_vtrace) syscall_table[SYS_vtrace] = "vtrace"; #endif -#ifdef SYS_wait +#if defined (SYS_wait) syscall_table[SYS_wait] = "wait"; #endif -#ifdef SYS_waitid +#if defined (SYS_waitid) syscall_table[SYS_waitid] = "waitid"; #endif -#ifdef SYS_waitsys +#if defined (SYS_waitsys) syscall_table[SYS_waitsys] = "waitsys"; #endif -#ifdef SYS_write +#if defined (SYS_write) syscall_table[SYS_write] = "write"; #endif -#ifdef SYS_writev +#if defined (SYS_writev) syscall_table[SYS_writev] = "writev"; #endif -#ifdef SYS_xenix +#if defined (SYS_xenix) syscall_table[SYS_xenix] = "xenix"; #endif -#ifdef SYS_xmknod +#if defined (SYS_xmknod) syscall_table[SYS_xmknod] = "xmknod"; #endif -#ifdef SYS_xstat +#if defined (SYS_xstat) syscall_table[SYS_xstat] = "xstat"; #endif -#ifdef SYS_yield +#if defined (SYS_yield) syscall_table[SYS_yield] = "yield"; #endif -} +}; -/* Prettyprint syscall NUM. */ +/* + * Prettyprint a single syscall by number. + */ void -proc_prettyfprint_syscall (FILE *file, int num, int verbose) +proc_prettyfprint_syscall (file, num, verbose) + FILE *file; + int num; + int verbose; { if (syscall_table[num]) fprintf (file, "SYS_%s ", syscall_table[num]); @@ -1405,15 +1408,22 @@ proc_prettyfprint_syscall (FILE *file, int num, int verbose) } void -proc_prettyprint_syscall (int num, int verbose) +proc_prettyprint_syscall (num, verbose) + int num; + int verbose; { proc_prettyfprint_syscall (stdout, num, verbose); } -/* Prettyprint all syscalls in SYSSET. */ +/* + * Prettyprint all of the syscalls in a sysset_t set. + */ void -proc_prettyfprint_syscalls (FILE *file, sysset_t *sysset, int verbose) +proc_prettyfprint_syscalls (file, sysset, verbose) + FILE *file; + sysset_t *sysset; + int verbose; { int i; @@ -1426,14 +1436,14 @@ proc_prettyfprint_syscalls (FILE *file, sysset_t *sysset, int verbose) } void -proc_prettyprint_syscalls (sysset_t *sysset, int verbose) +proc_prettyprint_syscalls (sysset, verbose) + sysset_t *sysset; + int verbose; { proc_prettyfprint_syscalls (stdout, sysset, verbose); } - -/* Prettyprint signals. */ -/* Signal translation table. */ +/* FIXME: add real-time signals */ static struct trans signal_table[] = { @@ -1576,14 +1586,19 @@ static struct trans signal_table[] = #ifdef SIGAIO { SIGAIO, "SIGAIO", "Asynchronous I/O signal" }, #endif - - /* FIXME: add real-time signals. */ }; -/* Prettyprint signal number SIGNO. */ +/* + * Prettyprint a single signal by number. + * Accepts a signal number and finds it in the signal table, + * then pretty-prints it. + */ void -proc_prettyfprint_signal (FILE *file, int signo, int verbose) +proc_prettyfprint_signal (file, signo, verbose) + FILE *file; + int signo; + int verbose; { int i; @@ -1601,22 +1616,32 @@ proc_prettyfprint_signal (FILE *file, int signo, int verbose) } void -proc_prettyprint_signal (int signo, int verbose) +proc_prettyprint_signal (signo, verbose) + int signo; + int verbose; { proc_prettyfprint_signal (stdout, signo, verbose); } -/* Prettyprint all signals in SIGSET. */ +/* + * Prettyprint all of the signals in a sigset_t set. + * + * This function loops over all signal numbers from 0 to NSIG, + * uses them as indexes for prismember, and prints them pretty. + * + * It does not loop over the signal table, as is done with the + * fault table, because the signal table may contain aliases. + * If it did, both aliases would be printed. + */ void -proc_prettyfprint_signalset (FILE *file, sigset_t *sigset, int verbose) +proc_prettyfprint_signalset (file, sigset, verbose) + FILE *file; + sigset_t *sigset; + int verbose; { int i; - /* Loop over all signal numbers from 0 to NSIG, using them as the - index to prismember. The signal table had better not contain - aliases, for if it does they will both be printed. */ - for (i = 0; i < NSIG; i++) if (prismember (sigset, i)) proc_prettyfprint_signal (file, i, verbose); @@ -1626,70 +1651,73 @@ proc_prettyfprint_signalset (FILE *file, sigset_t *sigset, int verbose) } void -proc_prettyprint_signalset (sigset_t *sigset, int verbose) +proc_prettyprint_signalset (sigset, verbose) + sigset_t *sigset; + int verbose; { proc_prettyfprint_signalset (stdout, sigset, verbose); } - - -/* Prettyprint faults. */ -/* Fault translation table. */ +/* Hardware fault translation table. */ static struct trans fault_table[] = { -#ifdef FLTILL +#if defined (FLTILL) { FLTILL, "FLTILL", "Illegal instruction" }, #endif -#ifdef FLTPRIV +#if defined (FLTPRIV) { FLTPRIV, "FLTPRIV", "Privileged instruction" }, #endif -#ifdef FLTBPT +#if defined (FLTBPT) { FLTBPT, "FLTBPT", "Breakpoint trap" }, #endif -#ifdef FLTTRACE +#if defined (FLTTRACE) { FLTTRACE, "FLTTRACE", "Trace trap" }, #endif -#ifdef FLTACCESS +#if defined (FLTACCESS) { FLTACCESS, "FLTACCESS", "Memory access fault" }, #endif -#ifdef FLTBOUNDS +#if defined (FLTBOUNDS) { FLTBOUNDS, "FLTBOUNDS", "Memory bounds violation" }, #endif -#ifdef FLTIOVF +#if defined (FLTIOVF) { FLTIOVF, "FLTIOVF", "Integer overflow" }, #endif -#ifdef FLTIZDIV +#if defined (FLTIZDIV) { FLTIZDIV, "FLTIZDIV", "Integer zero divide" }, #endif -#ifdef FLTFPE +#if defined (FLTFPE) { FLTFPE, "FLTFPE", "Floating-point exception" }, #endif -#ifdef FLTSTACK +#if defined (FLTSTACK) { FLTSTACK, "FLTSTACK", "Unrecoverable stack fault" }, #endif -#ifdef FLTPAGE +#if defined (FLTPAGE) { FLTPAGE, "FLTPAGE", "Recoverable page fault" }, #endif -#ifdef FLTPCINVAL +#if defined (FLTPCINVAL) { FLTPCINVAL, "FLTPCINVAL", "Invalid PC exception" }, #endif -#ifdef FLTWATCH +#if defined (FLTWATCH) { FLTWATCH, "FLTWATCH", "User watchpoint" }, #endif -#ifdef FLTKWATCH +#if defined (FLTKWATCH) { FLTKWATCH, "FLTKWATCH", "Kernel watchpoint" }, #endif -#ifdef FLTSCWATCH +#if defined (FLTSCWATCH) { FLTSCWATCH, "FLTSCWATCH", "Hit a store conditional on a watched page" }, #endif }; -/* Work horse. Accepts an index into the fault table, prints it - pretty. */ +/* + * Work horse. Accepts an index into the fault table, prints it pretty. + */ static void -prettyfprint_faulttable_entry (FILE *file, int i, int verbose) +prettyfprint_faulttable_entry (file, i, verbose) + FILE *file; + int i; + int verbose; { fprintf (file, "%s", fault_table[i].name); if (verbose) @@ -1698,14 +1726,19 @@ prettyfprint_faulttable_entry (FILE *file, int i, int verbose) fprintf (file, " "); } -/* Prettyprint hardware fault number FAULTNO. */ +/* + * Prettyprint a hardware fault by number. + */ void -proc_prettyfprint_fault (FILE *file, int faultno, int verbose) +proc_prettyfprint_fault (file, faultno, verbose) + FILE *file; + int faultno; + int verbose; { int i; - for (i = 0; i < ARRAY_SIZE (fault_table); i++) + for (i = 0; i < sizeof (fault_table) / sizeof (fault_table[0]); i++) if (faultno == fault_table[i].value) { prettyfprint_faulttable_entry (file, i, verbose); @@ -1717,23 +1750,31 @@ proc_prettyfprint_fault (FILE *file, int faultno, int verbose) } void -proc_prettyprint_fault (int faultno, int verbose) +proc_prettyprint_fault (faultno, verbose) + int faultno; + int verbose; { proc_prettyfprint_fault (stdout, faultno, verbose); } -/* Prettyprint all faults in FLTSET. */ +/* + * Prettyprint all the faults in a fltset_t set. + * + * This function loops thru the fault table, + * using the value field as the index to prismember. + * The fault table had better not contain aliases, + * for if it does they will both be printed. + */ void -proc_prettyfprint_faultset (FILE *file, fltset_t *fltset, int verbose) +proc_prettyfprint_faultset (file, fltset, verbose) + FILE *file; + fltset_t *fltset; + int verbose; { int i; - /* Loop through the fault table, using the value field as the index - to prismember. The fault table had better not contain aliases, - for if it does they will both be printed. */ - - for (i = 0; i < ARRAY_SIZE (fault_table); i++) + for (i = 0; i < sizeof (fault_table) / sizeof (fault_table[0]); i++) if (prismember (fltset, fault_table[i].value)) prettyfprint_faulttable_entry (file, i, verbose); @@ -1742,24 +1783,24 @@ proc_prettyfprint_faultset (FILE *file, fltset_t *fltset, int verbose) } void -proc_prettyprint_faultset (fltset_t *fltset, int verbose) +proc_prettyprint_faultset (fltset, verbose) + fltset_t *fltset; + int verbose; { proc_prettyfprint_faultset (stdout, fltset, verbose); } -/* TODO: actions, holds... */ +/* + * Todo: actions, holds... + */ void proc_prettyprint_actionset (struct sigaction *actions, int verbose) { } - - -/* Provide a prototype to silence -Wmissing-prototypes. */ -void _initialize_proc_events (void); void -_initialize_proc_events (void) +_initialize_proc_events () { init_syscall_table (); } diff --git a/gdb/proc-flags.c b/gdb/proc-flags.c index 00ff68e7e14..d2957be0782 100644 --- a/gdb/proc-flags.c +++ b/gdb/proc-flags.c @@ -1,22 +1,23 @@ /* Machine independent support for SVR4 /proc (process file system) for GDB. - Copyright (C) 1999, 2000, 2007, 2008 Free Software Foundation, Inc. + Copyright 1999 Free Software Foundation, Inc. Written by Michael Snyder at Cygnus Solutions. Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others. - This file is part of GDB. +This file is part of GDB. - 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 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 2 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. +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/>. */ +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, +Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * Pretty-print the prstatus flags. @@ -268,7 +269,10 @@ static struct trans pr_flag_table[] = }; void -proc_prettyfprint_flags (FILE *file, unsigned long flags, int verbose) +proc_prettyfprint_flags (file, flags, verbose) + FILE *file; + unsigned long flags; + int verbose; { int i; @@ -284,7 +288,9 @@ proc_prettyfprint_flags (FILE *file, unsigned long flags, int verbose) } void -proc_prettyprint_flags (unsigned long flags, int verbose) +proc_prettyprint_flags (flags, verbose) + unsigned long flags; + int verbose; { proc_prettyfprint_flags (stdout, flags, verbose); } diff --git a/gdb/proc-utils.h b/gdb/proc-utils.h index 6b806723df1..cdab0c3723e 100644 --- a/gdb/proc-utils.h +++ b/gdb/proc-utils.h @@ -1,28 +1,25 @@ /* Machine independent support for SVR4 /proc (process file system) for GDB. - Copyright (C) 1999, 2000, 2007, 2008 Free Software Foundation, Inc. + Copyright 1999 Free Software Foundation, Inc. - This file is part of GDB. +This file is part of GDB. - 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 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 2 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. +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/>. */ +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, +Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* - * Pretty-print functions for /proc data - */ - -extern void proc_prettyprint_why (unsigned long why, unsigned long what, - int verbose); +extern void +proc_prettyprint_why (unsigned long why, unsigned long what, int verbose); extern void proc_prettyprint_syscalls (sysset_t *sysset, int verbose); @@ -30,65 +27,26 @@ extern void proc_prettyprint_syscall (int num, int verbose); extern void proc_prettyprint_flags (unsigned long flags, int verbose); -extern void proc_prettyfprint_signalset (FILE *file, sigset_t *sigset, - int verbose); - -extern void proc_prettyfprint_faultset (FILE *file, fltset_t *fltset, - int verbose); - -extern void proc_prettyfprint_syscall (FILE *file, int num, int verbose); - -extern void proc_prettyfprint_signal (FILE *file, int signo, int verbose); - -extern void proc_prettyfprint_flags (FILE *file, unsigned long flags, - int verbose); - -extern void proc_prettyfprint_why (FILE *file, unsigned long why, - unsigned long what, int verbose); - -extern void proc_prettyfprint_fault (FILE *file, int faultno, int verbose); - -extern void proc_prettyfprint_syscalls (FILE *file, sysset_t *sysset, - int verbose); - -extern void proc_prettyfprint_status (long, int, int, int); - -/* - * Trace functions for /proc api. - */ - -extern int write_with_trace (int, void *, size_t, char *, int); -extern off_t lseek_with_trace (int, off_t, int, char *, int); -extern int ioctl_with_trace (int, long, void *, char *, int); -extern pid_t wait_with_trace (int *, char *, int); -extern int open_with_trace (char *, int, char *, int); -extern int close_with_trace (int, char *, int); -extern void procfs_note (char *, char *, int); - -#ifdef PROCFS_TRACE -/* - * Debugging code: - * - * These macros allow me to trace the system calls that we make - * to control the child process. This is quite handy for comparing - * with the older version of procfs. - */ - -#define write(X,Y,Z) write_with_trace (X, Y, Z, __FILE__, __LINE__) -#define lseek(X,Y,Z) lseek_with_trace (X, Y, Z, __FILE__, __LINE__) -#define ioctl(X,Y,Z) ioctl_with_trace (X, Y, Z, __FILE__, __LINE__) -#define open(X,Y) open_with_trace (X, Y, __FILE__, __LINE__) -#define close(X) close_with_trace (X, __FILE__, __LINE__) -#define wait(X) wait_with_trace (X, __FILE__, __LINE__) -#endif -#define PROCFS_NOTE(X) procfs_note (X, __FILE__, __LINE__) -#define PROC_PRETTYFPRINT_STATUS(X,Y,Z,T) \ - proc_prettyfprint_status (X, Y, Z, T) - -/* Define the type (and more importantly the width) of the control - word used to write to the /proc/PID/ctl file. */ -#if defined (PROC_CTL_WORD_TYPE) -typedef PROC_CTL_WORD_TYPE procfs_ctl_t; -#else -typedef long procfs_ctl_t; -#endif +extern void +proc_prettyfprint_signalset (FILE *file, sigset_t *sigset, int verbose); + +extern void +proc_prettyfprint_faultset (FILE *file, fltset_t *fltset, int verbose); + +extern void +proc_prettyfprint_syscall (FILE *file, int num, int verbose); + +extern void +proc_prettyfprint_signal (FILE *file, int signo, int verbose); + +extern void +proc_prettyfprint_flags (FILE *file, unsigned long flags, int verbose); + +extern void +proc_prettyfprint_why (FILE *file, unsigned long why, unsigned long what, int verbose); + +extern void +proc_prettyfprint_fault (FILE *file, int faultno, int verbose); + +extern void +proc_prettyfprint_syscalls (FILE *file, sysset_t *sysset, int verbose); diff --git a/gdb/proc-why.c b/gdb/proc-why.c index 3f1bc69e5a0..958eeb4aa7d 100644 --- a/gdb/proc-why.c +++ b/gdb/proc-why.c @@ -1,26 +1,34 @@ -/* Machine-independent support for SVR4 /proc (process file system) - - Copyright (C) 1999, 2000, 2004, 2007, 2008 Free Software Foundation, Inc. - +/* Machine independent support for SVR4 /proc (process file system) for GDB. + Copyright 1999 Free Software Foundation, Inc. Written by Michael Snyder at Cygnus Solutions. Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others. - 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 file is part of GDB. + +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 2 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. - 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, write to the Free Software Foundation, +Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ +/* + * Pretty-print the pr_why value. + * + * Arguments: unsigned long flags, int verbose + * + */ #include "defs.h" -#ifdef NEW_PROC_API +#if defined(NEW_PROC_API) #define _STRUCTURED_PROC 1 #endif @@ -30,88 +38,85 @@ #include "proc-utils.h" -/* Much of the information used in the /proc interface, particularly - for printing status information, is kept as tables of structures of - the following form. These tables can be used to map numeric values - to their symbolic names and to a string that describes their - specific use. */ +/* Much of the information used in the /proc interface, particularly for + printing status information, is kept as tables of structures of the + following form. These tables can be used to map numeric values to + their symbolic names and to a string that describes their specific use. */ -struct trans -{ - int value; /* The numeric value. */ - char *name; /* The equivalent symbolic value. */ - char *desc; /* Short description of value. */ +struct trans { + int value; /* The numeric value */ + char *name; /* The equivalent symbolic value */ + char *desc; /* Short description of value */ }; -/* Translate values in the pr_why field of a `struct prstatus' or - `struct lwpstatus'. */ +/* Translate values in the pr_why field of the prstatus struct. */ static struct trans pr_why_table[] = { #if defined (PR_REQUESTED) - /* All platforms. */ + /* All platforms */ { PR_REQUESTED, "PR_REQUESTED", "Directed to stop by debugger via P(IO)CSTOP or P(IO)CWSTOP" }, #endif #if defined (PR_SIGNALLED) - /* All platforms. */ + /* All platforms */ { PR_SIGNALLED, "PR_SIGNALLED", "Receipt of a traced signal" }, #endif #if defined (PR_SYSENTRY) - /* All platforms. */ + /* All platforms */ { PR_SYSENTRY, "PR_SYSENTRY", "Entry to a traced system call" }, #endif #if defined (PR_SYSEXIT) - /* All platforms. */ + /* All platforms */ { PR_SYSEXIT, "PR_SYSEXIT", "Exit from a traced system call" }, #endif #if defined (PR_JOBCONTROL) - /* All platforms. */ + /* All platforms */ { PR_JOBCONTROL, "PR_JOBCONTROL", "Default job control stop signal action" }, #endif #if defined (PR_FAULTED) - /* All platforms. */ + /* All platforms */ { PR_FAULTED, "PR_FAULTED", "Incurred a traced hardware fault" }, #endif #if defined (PR_SUSPENDED) - /* Solaris and UnixWare. */ + /* Solaris and UnixWare */ { PR_SUSPENDED, "PR_SUSPENDED", "Process suspended" }, #endif #if defined (PR_CHECKPOINT) - /* Solaris only. */ + /* Solaris only */ { PR_CHECKPOINT, "PR_CHECKPOINT", "Process stopped at checkpoint" }, #endif #if defined (PR_FORKSTOP) - /* OSF/1 only. */ + /* OSF only */ { PR_FORKSTOP, "PR_FORKSTOP", "Process stopped at end of fork call" }, #endif #if defined (PR_TCRSTOP) - /* OSF/1 only. */ + /* OSF only */ { PR_TCRSTOP, "PR_TCRSTOP", "Process stopped on thread creation" }, #endif #if defined (PR_TTSTOP) - /* OSF/1 only. */ + /* OSF only */ { PR_TTSTOP, "PR_TTSTOP", "Process stopped on thread termination" }, #endif #if defined (PR_DEAD) - /* OSF/1 only. */ + /* OSF only */ { PR_DEAD, "PR_DEAD", "Process stopped in exit system call" }, #endif }; -/* Pretty-print the pr_why field of a `struct prstatus' or `struct - lwpstatus'. */ - void -proc_prettyfprint_why (FILE *file, unsigned long why, unsigned long what, - int verbose) +proc_prettyfprint_why (file, why, what, verbose) + FILE *file; + unsigned long why; + unsigned long what; + int verbose; { int i; if (why == 0) return; - for (i = 0; i < ARRAY_SIZE (pr_why_table); i++) + for (i = 0; i < sizeof (pr_why_table) / sizeof (pr_why_table[0]); i++) if (why == pr_why_table[i].value) { fprintf (file, "%s ", pr_why_table[i].name); @@ -121,7 +126,7 @@ proc_prettyfprint_why (FILE *file, unsigned long why, unsigned long what, switch (why) { #ifdef PR_REQUESTED case PR_REQUESTED: - break; /* Nothing more to print. */ + break; /* Nothing more to print. */ #endif #ifdef PR_SIGNALLED case PR_SIGNALLED: @@ -152,7 +157,7 @@ proc_prettyfprint_why (FILE *file, unsigned long why, unsigned long what, #endif #ifdef PR_DEAD case PR_DEAD: - fprintf (file, "Exit status: %ld\n", what); + fprintf (file, "Exit status: %d\n", what); break; #endif default: @@ -163,12 +168,14 @@ proc_prettyfprint_why (FILE *file, unsigned long why, unsigned long what, return; } - fprintf (file, "Unknown pr_why.\n"); } void -proc_prettyprint_why (unsigned long why, unsigned long what, int verbose) +proc_prettyprint_why (why, what, verbose) + unsigned long why; + unsigned long what; + int verbose; { proc_prettyfprint_why (stdout, why, what, verbose); } diff --git a/gdb/procfs.c b/gdb/procfs.c index d1763869eff..920019fae17 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -24,6 +24,7 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "target.h" #include "gdbcore.h" #include "gdbcmd.h" +#include "gdbthread.h" #if defined (NEW_PROC_API) #define _STRUCTURED_PROC 1 /* Should be done by configure script. */ @@ -33,6 +34,11 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <sys/fault.h> #include <sys/syscall.h> #include <sys/errno.h> +#include <sys/wait.h> +#include <signal.h> +#include <ctype.h> + +#include "proc-utils.h" /* * PROCFS.C @@ -403,11 +409,13 @@ find_procinfo_or_die (pid, tid) procinfo *pi = find_procinfo (pid, tid); if (pi == NULL) - if (tid) - error ("procfs: couldn't find pid %d (kernel thread %d) in procinfo list.", - pid, tid); - else - error ("procfs: couldn't find pid %d in procinfo list.", pid); + { + if (tid) + error ("procfs: couldn't find pid %d (kernel thread %d) in procinfo list.", + pid, tid); + else + error ("procfs: couldn't find pid %d in procinfo list.", pid); + } return pi; } @@ -431,7 +439,9 @@ open_procinfo_files (pi, which) procinfo *pi; int which; { +#ifdef NEW_PROC_API char tmp[MAX_PROC_NAME_SIZE]; +#endif int fd; /* @@ -2627,11 +2637,14 @@ proc_iterate_over_mappings (func) struct prmap *map; procinfo *pi; #ifndef NEW_PROC_API /* avoid compiler warning */ - int nmaps = 0, i; + int nmaps = 0; + int i; +#else + int map_fd; + char pathname[MAX_PROC_NAME_SIZE]; #endif int funcstat = 0; - int fd, map_fd; - char pathname[MAX_PROC_NAME_SIZE]; + int fd; pi = find_procinfo_or_die (PIDGET (inferior_pid), 0); @@ -3762,9 +3775,9 @@ wait_again: if ((nsysargs = proc_nsysarg (pi)) > 0 && (sysargs = proc_sysargs (pi)) != NULL) { - printf_filtered ("%d syscall arguments:\n", nsysargs); + printf_filtered ("%ld syscall arguments:\n", nsysargs); for (i = 0; i < nsysargs; i++) - printf_filtered ("#%d: 0x%08x\n", + printf_filtered ("#%ld: 0x%08x\n", i, sysargs[i]); } @@ -3876,9 +3889,9 @@ wait_again: if ((nsysargs = proc_nsysarg (pi)) > 0 && (sysargs = proc_sysargs (pi)) != NULL) { - printf_filtered ("%d syscall arguments:\n", nsysargs); + printf_filtered ("%ld syscall arguments:\n", nsysargs); for (i = 0; i < nsysargs; i++) - printf_filtered ("#%d: 0x%08x\n", + printf_filtered ("#%ld: 0x%08x\n", i, sysargs[i]); } } @@ -4141,6 +4154,7 @@ invalidate_cache (parent, pi, ptr) return 0; } +#if 0 /* * Function: make_signal_thread_runnable * @@ -4165,6 +4179,7 @@ make_signal_thread_runnable (process, pi, ptr) #endif return 0; } +#endif /* * Function: target_resume @@ -4216,7 +4231,7 @@ procfs_resume (pid, step, signo) /* Convert signal to host numbering. */ if (signo == 0 || - signo == TARGET_SIGNAL_STOP && pi->ignore_next_sigstop) + (signo == TARGET_SIGNAL_STOP && pi->ignore_next_sigstop)) native_signo = 0; else native_signo = target_signal_to_host (signo); @@ -4603,7 +4618,6 @@ procfs_set_exec_trap () procinfo *pi; sysset_t exitset; - sysset_t entryset; if ((pi = create_procinfo (getpid (), 0)) == NULL) perror_with_name ("procfs: create_procinfo failed in child."); @@ -5027,11 +5041,12 @@ info_proc_cmd (args, from_tty) old_chain = make_cleanup (null_cleanup, 0); if (args) - if ((argv = buildargv (args)) == NULL) - nomem (0); - else - make_cleanup ((make_cleanup_func) freeargv, argv); - + { + if ((argv = buildargv (args)) == NULL) + nomem (0); + else + make_cleanup ((make_cleanup_func) freeargv, argv); + } while (argv != NULL && *argv != NULL) { if (isdigit (argv[0][0])) diff --git a/gdb/rdi-share/devsw.c b/gdb/rdi-share/devsw.c index ea666a1f300..58c0bfed823 100644 --- a/gdb/rdi-share/devsw.c +++ b/gdb/rdi-share/devsw.c @@ -15,6 +15,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <fcntl.h> #include "adp.h" #include "sys.h" @@ -48,9 +49,14 @@ static void openLogFile () perror ("fopen"); } else - /* The following line is equivalent to: */ - /* setlinebuf (angelDebugLogFile); */ - setvbuf(angelDebugLogFile, (char *)NULL, _IOLBF, 0); + { + /* The following line is equivalent to: */ + /* setlinebuf (angelDebugLogFile); */ + setvbuf(angelDebugLogFile, (char *)NULL, _IOLBF, 0); +#if defined(__CYGWIN32__) || defined(__CYGWIN__) + setmode(fileno(angelDebugLogFile), O_TEXT); +#endif + } time (&t); fprintf (angelDebugLogFile,"ADP log file opened at %s\n",asctime(localtime(&t))); diff --git a/gdb/utils.c b/gdb/utils.c index 596c0aee3b9..ab790d9548b 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -3203,12 +3203,31 @@ get_field (data, order, total_len, start, len) int cur_bitshift; /* Start at the least significant part of the field. */ - cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT; if (order == floatformat_little || order == floatformat_littlebyte_bigword) - cur_byte = (total_len / FLOATFORMAT_CHAR_BIT) - cur_byte - 1; - cur_bitshift = - ((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT; - result = *(data + cur_byte) >> (-cur_bitshift); + { + /* We start counting from the other end (i.e, from the high bytes + rather than the low bytes). As such, we need to be concerned + with what happens if bit 0 doesn't start on a byte boundary. + I.e, we need to properly handle the case where total_len is + not evenly divisible by 8. So we compute ``excess'' which + represents the number of bits from the end of our starting + byte needed to get to bit 0. */ + int excess = FLOATFORMAT_CHAR_BIT - (total_len % FLOATFORMAT_CHAR_BIT); + cur_byte = (total_len / FLOATFORMAT_CHAR_BIT) + - ((start + len + excess) / FLOATFORMAT_CHAR_BIT); + cur_bitshift = ((start + len + excess) % FLOATFORMAT_CHAR_BIT) + - FLOATFORMAT_CHAR_BIT; + } + else + { + cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT; + cur_bitshift = + ((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT; + } + if (cur_bitshift > -FLOATFORMAT_CHAR_BIT) + result = *(data + cur_byte) >> (-cur_bitshift); + else + result = 0; cur_bitshift += FLOATFORMAT_CHAR_BIT; if (order == floatformat_little || order == floatformat_littlebyte_bigword) ++cur_byte; @@ -3218,20 +3237,16 @@ get_field (data, order, total_len, start, len) /* Move towards the most significant part of the field. */ while (cur_bitshift < len) { - if (len - cur_bitshift < FLOATFORMAT_CHAR_BIT) - /* This is the last byte; zero out the bits which are not part of - this field. */ - result |= - (*(data + cur_byte) & ((1 << (len - cur_bitshift)) - 1)) - << cur_bitshift; - else - result |= *(data + cur_byte) << cur_bitshift; + result |= (unsigned long)*(data + cur_byte) << cur_bitshift; cur_bitshift += FLOATFORMAT_CHAR_BIT; if (order == floatformat_little || order == floatformat_littlebyte_bigword) ++cur_byte; else --cur_byte; } + if (len < sizeof(result) * FLOATFORMAT_CHAR_BIT) + /* Mask out bits which are not part of the field */ + result &= ((1UL << len) - 1); return result; } @@ -3368,15 +3383,28 @@ put_field (data, order, total_len, start, len, stuff_to_put) int cur_bitshift; /* Start at the least significant part of the field. */ - cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT; if (order == floatformat_little || order == floatformat_littlebyte_bigword) - cur_byte = (total_len / FLOATFORMAT_CHAR_BIT) - cur_byte - 1; - cur_bitshift = - ((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT; - *(data + cur_byte) &= - ~(((1 << ((start + len) % FLOATFORMAT_CHAR_BIT)) - 1) << (-cur_bitshift)); - *(data + cur_byte) |= - (stuff_to_put & ((1 << FLOATFORMAT_CHAR_BIT) - 1)) << (-cur_bitshift); + { + int excess = FLOATFORMAT_CHAR_BIT - (total_len % FLOATFORMAT_CHAR_BIT); + cur_byte = (total_len / FLOATFORMAT_CHAR_BIT) + - ((start + len + excess) / FLOATFORMAT_CHAR_BIT); + cur_bitshift = ((start + len + excess) % FLOATFORMAT_CHAR_BIT) + - FLOATFORMAT_CHAR_BIT; + } + else + { + cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT; + cur_bitshift = + ((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT; + } + if (cur_bitshift > -FLOATFORMAT_CHAR_BIT) + { + *(data + cur_byte) &= + ~(((1 << ((start + len) % FLOATFORMAT_CHAR_BIT)) - 1) + << (-cur_bitshift)); + *(data + cur_byte) |= + (stuff_to_put & ((1 << FLOATFORMAT_CHAR_BIT) - 1)) << (-cur_bitshift); + } cur_bitshift += FLOATFORMAT_CHAR_BIT; if (order == floatformat_little || order == floatformat_littlebyte_bigword) ++cur_byte; diff --git a/sim/common/cgen-ops.h b/sim/common/cgen-ops.h index de3717b1b24..12fab70248c 100644 --- a/sim/common/cgen-ops.h +++ b/sim/common/cgen-ops.h @@ -74,6 +74,7 @@ extern QI ROLQI (QI, int); #define NEGQI(x) (- (x)) #define NOTQI(x) (! (QI) (x)) #define INVQI(x) (~ (x)) +#define ABSQI(x) ((x) < 0 ? -(x) : (x)) #define EQQI(x, y) ((QI) (x) == (QI) (y)) #define NEQI(x, y) ((QI) (x) != (QI) (y)) #define LTQI(x, y) ((QI) (x) < (QI) (y)) @@ -103,6 +104,7 @@ extern HI ROLHI (HI, int); #define NEGHI(x) (- (x)) #define NOTHI(x) (! (HI) (x)) #define INVHI(x) (~ (x)) +#define ABSHI(x) ((x) < 0 ? -(x) : (x)) #define EQHI(x, y) ((HI) (x) == (HI) (y)) #define NEHI(x, y) ((HI) (x) != (HI) (y)) #define LTHI(x, y) ((HI) (x) < (HI) (y)) @@ -132,6 +134,7 @@ extern SI ROLSI (SI, int); #define NEGSI(x) (- (x)) #define NOTSI(x) (! (SI) (x)) #define INVSI(x) (~ (x)) +#define ABSSI(x) ((x) < 0 ? -(x) : (x)) #define EQSI(x, y) ((SI) (x) == (SI) (y)) #define NESI(x, y) ((SI) (x) != (SI) (y)) #define LTSI(x, y) ((SI) (x) < (SI) (y)) @@ -191,6 +194,7 @@ extern DI ROLDI (DI, int); #define NEGDI(x) (- (x)) #define NOTDI(x) (! (DI) (x)) #define INVDI(x) (~ (x)) +#define ABSDI(x) ((x) < 0 ? -(x) : (x)) #define EQDI(x, y) ((DI) (x) == (DI) (y)) #define NEDI(x, y) ((DI) (x) != (DI) (y)) #define LTDI(x, y) ((DI) (x) < (DI) (y)) @@ -219,6 +223,7 @@ extern DI EXTQIDI (QI); #define EXTQIDI(x) ((DI) (QI) (x)) #endif #define EXTHISI(x) ((SI) (HI) (x)) +#define EXTSISI(x) ((SI) (SI) (x)) #if defined (DI_FN_SUPPORT) extern DI EXTHIDI (HI); #else @@ -246,6 +251,8 @@ extern DI ZEXTQIDI (QI); #define ZEXTQIDI(x) ((DI) (UQI) (x)) #endif #define ZEXTHISI(x) ((SI) (UHI) (x)) +#define ZEXTHIHI(x) ((HI) (UHI) (x)) +#define ZEXTSISI(x) ((SI) (USI) (x)) #if defined (DI_FN_SUPPORT) extern DI ZEXTHIDI (HI); #else @@ -453,6 +460,53 @@ SUBOFSI (SI a, SI b, BI c) return res; } +SEMOPS_INLINE HI +ADDCHI (HI a, HI b, BI c) +{ + HI res = ADDHI (a, ADDHI (b, c)); + return res; +} + +SEMOPS_INLINE BI +ADDCFHI (HI a, HI b, BI c) +{ + HI tmp = ADDHI (a, ADDHI (b, c)); + BI res = ((UHI) tmp < (UHI) a) || (c && tmp == a); + return res; +} + +SEMOPS_INLINE BI +ADDOFHI (HI a, HI b, BI c) +{ + HI tmp = ADDHI (a, ADDHI (b, c)); + BI res = (((a < 0) == (b < 0)) + && ((a < 0) != (tmp < 0))); + return res; +} + +SEMOPS_INLINE HI +SUBCHI (HI a, HI b, BI c) +{ + HI res = SUBHI (a, ADDHI (b, c)); + return res; +} + +SEMOPS_INLINE BI +SUBCFHI (HI a, HI b, BI c) +{ + BI res = ((UHI) a < (UHI) b) || (c && a == b); + return res; +} + +SEMOPS_INLINE BI +SUBOFHI (HI a, HI b, BI c) +{ + HI tmp = SUBHI (a, ADDHI (b, c)); + BI res = (((a < 0) != (b < 0)) + && ((a < 0) != (tmp < 0))); + return res; +} + #else SI ADDCSI (SI, SI, BI); @@ -461,6 +515,12 @@ UBI ADDOFSI (SI, SI, BI); SI SUBCSI (SI, SI, BI); UBI SUBCFSI (SI, SI, BI); UBI SUBOFSI (SI, SI, BI); +HI ADDCHI (HI, HI, BI); +UBI ADDCFHI (HI, HI, BI); +UBI ADDOFHI (HI, HI, BI); +HI SUBCHI (HI, HI, BI); +UBI SUBCFHI (HI, HI, BI); +UBI SUBOFHI (HI, HI, BI); #endif diff --git a/sim/configure b/sim/configure index 38aab98c5c5..57d3bd8335b 100755 --- a/sim/configure +++ b/sim/configure @@ -30,6 +30,7 @@ program_suffix=NONE program_transform_name=s,x,x, silent= site= +sitefile= srcdir= target=NONE verbose= @@ -144,6 +145,7 @@ Configuration: --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX @@ -314,6 +316,11 @@ EOF -site=* | --site=* | --sit=*) site="$ac_optarg" ;; + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) @@ -479,12 +486,16 @@ fi srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi fi +else + CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then @@ -527,7 +538,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:531: checking for $ac_word" >&5 +echo "configure:542: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -557,7 +568,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:561: checking for $ac_word" >&5 +echo "configure:572: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -608,7 +619,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:612: checking for $ac_word" >&5 +echo "configure:623: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -640,7 +651,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:644: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:655: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -651,12 +662,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 655 "configure" +#line 666 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -682,12 +693,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:686: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:697: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:691: checking whether we are using GNU C" >&5 +echo "configure:702: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -696,7 +707,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:700: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -715,7 +726,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:719: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:730: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -777,7 +788,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:781: checking for a BSD compatible install" >&5 +echo "configure:792: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -836,7 +847,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:840: checking host system type" >&5 +echo "configure:851: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -857,7 +868,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:861: checking build system type" >&5 +echo "configure:872: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -883,7 +894,7 @@ fi # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:887: checking for $ac_word" >&5 +echo "configure:898: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -915,7 +926,7 @@ fi # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:919: checking for $ac_word" >&5 +echo "configure:930: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -947,7 +958,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:951: checking for $ac_word" >&5 +echo "configure:962: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1027,7 +1038,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:1031: checking host system type" >&5 +echo "configure:1042: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -1048,7 +1059,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:1052: checking target system type" >&5 +echo "configure:1063: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -1066,7 +1077,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1070: checking build system type" >&5 +echo "configure:1081: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -1110,7 +1121,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x," # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1114: checking for $ac_word" >&5 +echo "configure:1125: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1140,7 +1151,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1144: checking for $ac_word" >&5 +echo "configure:1155: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1191,7 +1202,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1195: checking for $ac_word" >&5 +echo "configure:1206: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1223,7 +1234,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1227: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1238: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1234,12 +1245,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1238 "configure" +#line 1249 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1265,12 +1276,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1269: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1280: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1274: checking whether we are using GNU C" >&5 +echo "configure:1285: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1279,7 +1290,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1283: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1294: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1298,7 +1309,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1302: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1313: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1336,7 +1347,7 @@ AR=${AR-ar} # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1340: checking for $ac_word" >&5 +echo "configure:1351: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else diff --git a/sim/mcore/interp.c b/sim/mcore/interp.c index 899b3718a5a..e8d0c63bc85 100644 --- a/sim/mcore/interp.c +++ b/sim/mcore/interp.c @@ -1,4 +1,4 @@ -/* Simulator for Motorolla's MCore processor +/* Simulator for Motorola's MCore processor Copyright (C) 1999 Free Software Foundation, Inc. Contributed by Cygnus Solutions. diff --git a/sim/mcore/sysdep.h b/sim/mcore/sysdep.h index e2e92e140f1..336740adc7f 100644 --- a/sim/mcore/sysdep.h +++ b/sim/mcore/sysdep.h @@ -1,4 +1,4 @@ -/* System includes and definitions used by the Motorolla MCore simulator. +/* System includes and definitions used by the Motorola MCore simulator. Copyright (C) 1999 Free Software Foundation, Inc. Contributed by Cygnus Solutions. |