diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2017-11-30 16:05:30 +0100 |
---|---|---|
committer | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2017-11-30 16:05:30 +0100 |
commit | 44122162aefcbabb2fbe5b531412d157da5e59fc (patch) | |
tree | 7be0b7973d186ba56980092141d533464da2737f /gdb/proc-api.c | |
parent | 7ac20022477c163983de77e5b16c016d518ca7bc (diff) | |
download | fsf-binutils-gdb-44122162aefcbabb2fbe5b531412d157da5e59fc.zip fsf-binutils-gdb-44122162aefcbabb2fbe5b531412d157da5e59fc.tar.gz fsf-binutils-gdb-44122162aefcbabb2fbe5b531412d157da5e59fc.tar.bz2 |
Remove ioctl-based procfs support on Solaris
This is the previously mentioned patch to get rid of
unstructured/ioctl-based procfs support in procfs.c. Given that support
for structured procfs was introduced in Solaris 2.6 back in 1997 and
we're just removing support for Solaris < 10, there's no point in
carrying that baggage (and tons of support for IRIX and OSF/1 as well)
around any longer.
Most of the patch should be straightforward (removing support for
!NEW_PROC_API, non-Solaris OSes and pre-Solaris 10 quirks).
Only a few points need explanations:
* <sys/syscall.h> was already included unconditionally in most places,
so there's no need to have guards in a few remaining ones.
* configure.host already obsoletes i?86-*-sysv4.2, i?86-*-sysv5, so
NEW_PROC_API detection for those in configure.ac can go.
* I'm still including <sys/procfs.h> with #define _STRUCTURED_PROC 1.
Theoretically, it would be better to include <procfs.h> on Solaris
(which includes that define), but that breaks the build over
<procfs.h> vs. gdb's "procfs.h", and doesn't exist on Linux.
* I've regenerated syscall_table[] in proc-events.c with a small script
from Solaris 10, 11.3, 11.4 <sys/syscall.h>, so there should be no
traces of older Solaris versions and other OSes left.
* prsysent_t and DYNAMIC_SYSCALLS was only used for AIX 5, but AIX
doesn't use procfs.c any longer, so all related code can go.
The patch was generated with diff -w so one can easier see changes
without being distracted by simple reindentations.
So far, it has only been compiled and smoke-tested on
amd64-pc-solaris2.1[01], sparcv9-sun-solaris2.1[01], and
x86_64-pc-linux-gnu. Certainly needs more testing (Solaris 11.3
vs. 11.4, 32-bit gdb, testsuite once I've figured out what's wrong on
Solaris 10 etc.), but it's enough to get a first impression how much
cleanup is possible here.
* configure.ac Don't check for sys/fault.h, sys/syscall.h,
sys/proc.h.
(NEW_PROC_API): Remove.
(prsysent_t, pr_sigset_t, pr_sigaction64_t, pr_siginfo64_t):
Likewise.
* common/common.m4 (GDB_AC_COMMON): Don't check for sys/syscall.h.
* configure: Regenerate.
* config.in: Regenerate.
* gdbserver/configure: Regenerate.
* gdbserver/config.in: Regenerate.
* i386-sol2-nat.c (_initialize_amd64_sol2_nat): Remove
NEW_PROC_API test.
* sparc-sol2-nat.c (_initialize_sparc_sol2_nat): Likewise.
* linux-btrace.c: Remove HAVE_SYS_SYSCALL_H test.
* proc-api.c: Remove !NEW_PROC_API support.
Remove HAVE_SYS_PROC_H and HAVE_SYS_USER_H tests.
Remove tests for macros always defined on Solaris.
* proc-events.c: Remove !NEW_PROC_API support.
Remove Remove HAVE_SYS_SYSCALL_H, HAVE_SYS_PROC_H and
HAVE_SYS_USER_H tests.
(init_syscall_table): Remove non-Solaris syscalls.
Remove tests for syscalls present on all Solaris versions.
Add missing Solaris 10+ syscalls.
(signal_table): Remove non-Solaris signals.
Remove tests for signals present on all Solaris versions.
(fault_table): Remove non-Solaris faults.
Remove tests for faults present on all Solaris versions.
* proc-flags.c: Remove !NEW_PROC_API support.
(pr_flag_table): Remove non-Solaris and pre-Solaris 7 comments.
Remove non-Solaris flags.
* proc-why.c: Remove !NEW_PROC_API support.
(pr_why_table): Remove meaningless comments.
Remove tests for reasons present on all Solaris versions.
Remove OSF/1 cases.
(proc_prettyfprint_why): Likewise.
* procfs.c: Remove !NEW_PROC_API and DYNAMIC_SYSCALLS support.
Remove HAVE_SYS_FAULT_H and HAVE_SYS_SYSCALL_H tests.
Remove WA_READ test, IRIX watchpoint support.
(gdb_sigset_t, gdb_sigaction_t, gdb_siginfo_t): Replace by base
types. Change users.
(gdb_praddset, gdb_prdelset, gdb_premptysysset, gdb_praddsysset)
(gdb_prdelset, gdb_pr_issyssetmember): Replace by base macros.
Change callers.
Remove CTL_PROC_NAME_FMT tests.
(gdb_prstatus_t, gdb_lwpstatus_t): Replace by base types. Change
users.
(sysset_t_size): Remove. Use sizeof (sysset_t) in callers.
Remove PROCFS_DONT_PIOCSSIG_CURSIG support.
(proc_modify_flag): Replace GDBRESET by PCUNSET.
Remove PR_ASYNC, PR_KLC tests.
(proc_unset_inherit_on_fork): Remove PR_ASYNC test.
(proc_parent_pid): Remove PCWATCH etc. tests.
(proc_set_watchpoint): Remove !PCWATCH && !PIOCSWATCH support.
Remove PCAGENT test.
(proc_get_nthreads) [PIOCNTHR && PIOCTLIST]: Remove.
Remove SYS_lwpcreate || SYS_lwp_create test.
(proc_get_current_thread): Likewise.
[PIOCNTHR && PIOCTLIST]: Remove.
[PIOCLSTATUS]: Remove.
(procfs_debug_inferior): Remove non-Solaris cases, conditionals.
[PRFS_STOPEXEC]: Remove.
(syscall_is_lwp_exit): Remove non-Solaris cases, conditionals.
(syscall_is_exit): Likewise.
(syscall_is_exec): Likewise.
(syscall_is_lwp_create): Likewise.
Remove SYS_syssgi support.
(procfs_wait): Remove PR_ASYNC, !PIOCSSPCACT tests.
[SYS_syssgi]: Remove.
Remove non-Solaris cases, conditionals.
(unconditionally_kill_inferior) [PROCFS_NEED_PIOCSSIG_FOR_KILL]:
Remove.
(procfs_init_inferior) [SYS_syssgi]: Remove.
(procfs_set_exec_trap) [PRFS_STOPEXEC]: Remove.
(procfs_inferior_created) [SYS_syssgi]: Remove.
(procfs_set_watchpoint): Remove !AIX5 test.
(procfs_stopped_by_watchpoint): Remove FLTWATCH test, FLTKWATCH
case.
(mappingflags) [MA_PHYS]: Remove.
(info_mappings_callback): Remove PCAGENT test.
Remove PIOCOPENLWP || PCAGENT test.
Diffstat (limited to 'gdb/proc-api.c')
-rw-r--r-- | gdb/proc-api.c | 356 |
1 files changed, 1 insertions, 355 deletions
diff --git a/gdb/proc-api.c b/gdb/proc-api.c index a03caa1..25c0686 100644 --- a/gdb/proc-api.c +++ b/gdb/proc-api.c @@ -1,4 +1,4 @@ -/* Machine independent support for SVR4 /proc (process file system) for GDB. +/* Machine independent support for Solaris /proc (process file system) for GDB. Copyright (C) 1999-2017 Free Software Foundation, Inc. @@ -22,26 +22,18 @@ /* * Pretty-print trace of api calls to the /proc api - * (ioctl or read/write calls). - * */ #include "defs.h" #include "gdbcmd.h" #include "completer.h" -#if defined (NEW_PROC_API) #define _STRUCTURED_PROC 1 -#endif #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" @@ -91,361 +83,34 @@ set_procfs_file_cmd (const char *args, procfs_file = NULL; } - -#ifndef NEW_PROC_API - -static struct trans ioctl_table[] = { -#ifdef PIOCACINFO /* irix */ - { PIOCACINFO, "PIOCACINFO", "get process account info" }, -#endif - { PIOCACTION, "PIOCACTION", "get signal action structs" }, -#ifdef PIOCARGUMENTS /* osf */ - { PIOCARGUMENTS, "PIOCARGUMENTS", "command line args" }, -#endif -#ifdef PIOCAUXV /* solaris aux vectors */ - { PIOCAUXV, "PIOCAUXV", "get aux vector" }, - { PIOCNAUXV, "PIOCNAUXV", "get number of aux vector entries" }, -#endif /* AUXV */ - { PIOCCFAULT, "PIOCCFAULT", "clear current fault" }, - { PIOCCRED, "PIOCCRED", "get process credentials" }, -#ifdef PIOCENEVCTRS /* irix event counters */ - { PIOCENEVCTRS, "PIOCENEVCTRS", "acquire and start event counters" }, - { PIOCGETEVCTRL, "PIOCGETEVCTRL", "get control info of event counters" }, - { PIOCGETEVCTRS, "PIOCGETEVCTRS", "dump event counters" }, - { PIOCGETPREVCTRS, "PIOCGETPREVCTRS", "dump event counters & prusage info" }, - { PIOCRELEVCTRS, "PIOCRELEVCTRS", "release/stop event counters" }, - { PIOCSETEVCTRL, "PIOCSETEVCTRL", "set control info of event counters" }, - { 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 - { PIOCGEXIT, "PIOCGEXIT", "get traced syscall exit set" }, - { PIOCGFAULT, "PIOCGFAULT", "get traced fault set" }, -#ifdef PIOCGFPCR /* osf */ - { PIOCGFPCR, "PIOCGFPCR", "get FP control register" }, - { PIOCSFPCR, "PIOCSFPCR", "set FP conrtol register" }, -#endif - { PIOCGFPREG, "PIOCGFPREG", "get floating point registers" }, - { PIOCGHOLD, "PIOCGHOLD", "get held signal set" }, - { PIOCGREG, "PIOCGREG", "get general registers" }, - { PIOCGROUPS, "PIOCGROUPS", "get supplementary groups" }, -#ifdef PIOCGSPCACT /* osf */ - { PIOCGSPCACT, "PIOCGSPCACT", "get special action" }, - { PIOCSSPCACT, "PIOCSSPCACT", "set special action" }, -#endif - { PIOCGTRACE, "PIOCGTRACE", "get traced signal set" }, -#ifdef PIOCGWATCH /* irix watchpoints */ - { PIOCGWATCH, "PIOCGWATCH", "get watchpoint" }, - { PIOCSWATCH, "PIOCSWATCH", "set watchpoint" }, - { PIOCNWATCH, "PIOCNWATCH", "get number of watchpoints" }, -#endif /* irix watchpoints */ -#ifdef PIOCGWIN /* solaris sparc */ - { PIOCGWIN, "PIOCGWIN", "get gwindows_t" }, -#endif -#ifdef PIOCGXREG /* solaris sparc extra regs */ - { PIOCGXREGSIZE, "PIOCXREGSIZE", "get extra register state size" }, - { PIOCGXREG, "PIOCGXREG", "get extra register state" }, - { PIOCSXREG, "PIOCSXREG", "set extra register state" }, -#endif /* XREG */ - { PIOCKILL, "PIOCKILL", "send signal" }, -#ifdef PIOCLDT /* solaris i386 */ - { PIOCLDT, "PIOCLDT", "get LDT" }, - { PIOCNLDT, "PIOCNLDT", "get number of LDT entries" }, -#endif -#ifdef PIOCLSTATUS /* solaris */ - { PIOCLSTATUS, "PIOCLSTATUS", "get status of all lwps" }, - { PIOCLUSAGE, "PIOCLUSAGE", "get resource usage of all lwps" }, - { PIOCOPENLWP, "PIOCOPENLWP", "get lwp file descriptor" }, - { PIOCLWPIDS, "PIOCLWPIDS", "get lwp identifiers" }, -#endif /* LWP */ - { PIOCMAP, "PIOCMAP", "get memory map information" }, - { PIOCMAXSIG, "PIOCMAXSIG", "get max signal number" }, - { PIOCNICE, "PIOCNICE", "set nice priority" }, - { PIOCNMAP, "PIOCNMAP", "get number of memory mappings" }, - { PIOCOPENM, "PIOCOPENM", "open mapped object for reading" }, -#ifdef PIOCOPENMOBS /* osf */ - { PIOCOPENMOBS, "PIOCOPENMOBS", "open mapped object" }, -#endif -#ifdef PIOCOPENPD /* solaris */ - { PIOCOPENPD, "PIOCOPENPD", "get page data file descriptor" }, -#endif - { PIOCPSINFO, "PIOCPSINFO", "get ps(1) information" }, - { PIOCRESET, "PIOCRESET", "reset process flags" }, - { PIOCRFORK, "PIOCRFORK", "reset inherit-on-fork flag" }, - { PIOCRRLC, "PIOCRRLC", "reset run-on-last-close flag" }, - { PIOCRUN, "PIOCRUN", "make process runnable" }, -#ifdef PIOCSAVECCNTRS /* irix */ - { PIOCSAVECCNTRS, "PIOCSAVECCNTRS", "parent gets child cntrs" }, -#endif - { PIOCSENTRY, "PIOCSENTRY", "set traced syscall entry set" }, - { PIOCSET, "PIOCSET", "set process flags" }, - { PIOCSEXIT, "PIOCSEXIT", "set traced syscall exit set" }, - { PIOCSFAULT, "PIOCSFAULT", "set traced fault set" }, - { PIOCSFORK, "PIOCSFORK", "set inherit-on-fork flag" }, - { PIOCSFPREG, "PIOCSFPREG", "set floating point registers" }, - { PIOCSHOLD, "PIOCSHOLD", "set held signal set" }, - { PIOCSREG, "PIOCSREG", "set general registers" }, - { PIOCSRLC, "PIOCSRLC", "set run-on-last-close flag" }, - { PIOCSSIG, "PIOCSSIG", "set current signal" }, - { PIOCSTATUS, "PIOCSTATUS", "get process status" }, - { PIOCSTOP, "PIOCSTOP", "post stop request" }, - { PIOCSTRACE, "PIOCSTRACE", "set traced signal set" }, - { PIOCUNKILL, "PIOCUNKILL", "delete a signal" }, -#ifdef PIOCUSAGE /* solaris */ - { PIOCUSAGE, "PIOCUSAGE", "get resource usage" }, -#endif - { PIOCWSTOP, "PIOCWSTOP", "wait for process to stop" }, - -#ifdef PIOCNTHR /* osf threads */ - { PIOCNTHR, "PIOCNTHR", "get thread count" }, - { PIOCRTINH, "PIOCRTINH", "reset inherit-on-thread-creation" }, - { PIOCSTINH, "PIOCSTINH", "set inherit-on-thread-creation" }, - { PIOCTLIST, "PIOCTLIST", "get thread ids" }, - { PIOCXPTH, "PIOCXPTH", "translate port to thread handle" }, - { PIOCTRUN, "PIOCTRUN", "make thread runnable" }, - { PIOCTSTATUS, "PIOCTSTATUS", "get thread status" }, - { PIOCTSTOP, "PIOCTSTOP", "stop a thread" }, - /* ... TGTRACE TSTRACE TSSIG TKILL TUNKILL TCFAULT TGFAULT TSFAULT - TGFPREG TSFPREG TGREG TSREG TACTION TTERM TABRUN TGENTRY TSENTRY - TGEXIT TSEXIT TSHOLD ... thread functions */ -#endif /* osf threads */ - { -1, NULL, NULL } -}; - -int -ioctl_with_trace (int fd, long opcode, void *ptr, char *file, int line) -{ - int i = 0; - int ret; - int arg1; - - prepare_to_trace (); - - if (procfs_trace) - { - for (i = 0; ioctl_table[i].name != NULL; i++) - if (ioctl_table[i].value == opcode) - break; - - if (info_verbose) - fprintf (procfs_file ? procfs_file : stdout, - "%s:%d -- ", file, line); - switch (opcode) { - case PIOCSET: - arg1 = ptr ? *(long *) ptr : 0; - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (PIOCSET, %s) %s\n", - arg1 == PR_FORK ? "PR_FORK" : - arg1 == PR_RLC ? "PR_RLC" : -#ifdef PR_ASYNC - arg1 == PR_ASYNC ? "PR_ASYNC" : -#endif - "<unknown flag>", - info_verbose ? ioctl_table[i].desc : ""); - break; - case PIOCRESET: - arg1 = ptr ? *(long *) ptr : 0; - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (PIOCRESET, %s) %s\n", - arg1 == PR_FORK ? "PR_FORK" : - arg1 == PR_RLC ? "PR_RLC" : -#ifdef PR_ASYNC - arg1 == PR_ASYNC ? "PR_ASYNC" : -#endif - "<unknown flag>", - info_verbose ? ioctl_table[i].desc : ""); - break; - case PIOCSTRACE: - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (PIOCSTRACE) "); - proc_prettyfprint_signalset (procfs_file ? procfs_file : stdout, - (sigset_t *) ptr, 0); - break; - case PIOCSFAULT: - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (%s) ", - opcode == PIOCSFAULT ? "PIOCSFAULT" : "PIOCGFAULT"); - proc_prettyfprint_faultset (procfs_file ? procfs_file : stdout, - (fltset_t *) ptr, 0); - break; - case PIOCSENTRY: - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (%s) ", - opcode == PIOCSENTRY ? "PIOCSENTRY" : "PIOCGENTRY"); - proc_prettyfprint_syscalls (procfs_file ? procfs_file : stdout, - (sysset_t *) ptr, 0); - break; - case PIOCSEXIT: - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (%s) ", - opcode == PIOCSEXIT ? "PIOCSEXIT" : "PIOCGEXIT"); - proc_prettyfprint_syscalls (procfs_file ? procfs_file : stdout, - (sysset_t *) ptr, 0); - break; - case PIOCSHOLD: - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (%s) ", - opcode == PIOCSHOLD ? "PIOCSHOLD" : "PIOCGHOLD"); - proc_prettyfprint_signalset (procfs_file ? procfs_file : stdout, - (sigset_t *) ptr, 0); - break; - case PIOCSSIG: - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (PIOCSSIG) "); - proc_prettyfprint_signal (procfs_file ? procfs_file : stdout, - ptr ? ((siginfo_t *) ptr)->si_signo : 0, - 0); - fprintf (procfs_file ? procfs_file : stdout, "\n"); - break; - case PIOCRUN: - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (PIOCRUN) "); - - arg1 = ptr ? *(long *) ptr : 0; - if (arg1 & PRCSIG) - fprintf (procfs_file ? procfs_file : stdout, "clearSig "); - if (arg1 & PRCFAULT) - fprintf (procfs_file ? procfs_file : stdout, "clearFlt "); - if (arg1 & PRSTRACE) - fprintf (procfs_file ? procfs_file : stdout, "setTrace "); - if (arg1 & PRSHOLD) - fprintf (procfs_file ? procfs_file : stdout, "setHold "); - if (arg1 & PRSFAULT) - fprintf (procfs_file ? procfs_file : stdout, "setFlt "); - if (arg1 & PRSVADDR) - fprintf (procfs_file ? procfs_file : stdout, "setVaddr "); - if (arg1 & PRSTEP) - fprintf (procfs_file ? procfs_file : stdout, "step "); - if (arg1 & PRSABORT) - fprintf (procfs_file ? procfs_file : stdout, "syscallAbort "); - if (arg1 & PRSTOP) - fprintf (procfs_file ? procfs_file : stdout, "stopReq "); - - fprintf (procfs_file ? procfs_file : stdout, "\n"); - break; - case PIOCKILL: - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (PIOCKILL) "); - proc_prettyfprint_signal (procfs_file ? procfs_file : stdout, - ptr ? *(long *) ptr : 0, 0); - fprintf (procfs_file ? procfs_file : stdout, "\n"); - break; -#ifdef PIOCSSPCACT - case PIOCSSPCACT: - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (PIOCSSPCACT) "); - arg1 = ptr ? *(long *) ptr : 0; - if (arg1 & PRFS_STOPFORK) - fprintf (procfs_file ? procfs_file : stdout, "stopFork "); - if (arg1 & PRFS_STOPEXEC) - fprintf (procfs_file ? procfs_file : stdout, "stopExec "); - if (arg1 & PRFS_STOPTERM) - fprintf (procfs_file ? procfs_file : stdout, "stopTerm "); - if (arg1 & PRFS_STOPTCR) - fprintf (procfs_file ? procfs_file : stdout, "stopThreadCreate "); - if (arg1 & PRFS_STOPTTERM) - fprintf (procfs_file ? procfs_file : stdout, "stopThreadTerm "); - if (arg1 & PRFS_KOLC) - fprintf (procfs_file ? procfs_file : stdout, "killOnLastClose "); - fprintf (procfs_file ? procfs_file : stdout, "\n"); - break; -#endif /* PIOCSSPCACT */ - default: - if (ioctl_table[i].name) - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (%s) %s\n", - ioctl_table[i].name, - info_verbose ? ioctl_table[i].desc : ""); - else - fprintf (procfs_file ? procfs_file : stdout, - "ioctl (<unknown %ld (0x%lx)) \n", opcode, opcode); - break; - } - 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_table[i].name != NULL ? - ioctl_table[i].name : "<unknown>", - safe_strerror (errno)); - if (procfs_file) - fflush (procfs_file); - } - - return ret; -} - -#else /* NEW_PROC_API */ - static struct trans rw_table[] = { -#ifdef PCAGENT /* solaris */ { PCAGENT, "PCAGENT", "create agent lwp with regs from argument" }, -#endif { PCCFAULT, "PCCFAULT", "clear current fault" }, -#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" }, -#endif { PCRUN, "PCRUN", "make process/lwp runnable" }, -#ifdef PCSASRS /* solaris 2.7 only */ { PCSASRS, "PCSASRS", "set ancillary state registers" }, -#endif -#ifdef PCSCRED /* solaris */ { PCSCRED, "PCSCRED", "set process credentials" }, -#endif { PCSENTRY, "PCSENTRY", "set traced syscall entry set" }, { PCSET, "PCSET", "set modes" }, { 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" }, { PCSTRACE, "PCSTRACE", "set traced signal set" }, -#ifdef PCSVADDR /* solaris */ { PCSVADDR, "PCSVADDR", "set pc virtual address" }, -#endif -#ifdef PCSXREG /* solaris sparc only */ { PCSXREG, "PCSXREG", "set extra registers" }, -#endif -#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 -#ifdef PCWATCH /* solaris */ { PCWATCH, "PCWATCH", "set/unset watched memory area" }, -#endif { PCWSTOP, "PCWSTOP", "wait for process/lwp to stop, no timeout" }, { 0, NULL, NULL } }; @@ -476,27 +141,16 @@ write_with_trace (int fd, void *varg, size_t len, char *file, int line) "write (PCSET, %s) %s\n", arg[1] == PR_FORK ? "PR_FORK" : arg[1] == PR_RLC ? "PR_RLC" : -#ifdef PR_ASYNC arg[1] == PR_ASYNC ? "PR_ASYNC" : -#endif "<unknown flag>", info_verbose ? rw_table[i].desc : ""); break; -#ifdef PCUNSET 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" : arg[1] == PR_RLC ? "PR_RLC" : -#ifdef PR_ASYNC arg[1] == PR_ASYNC ? "PR_ASYNC" : -#endif "<unknown flag>", info_verbose ? rw_table[i].desc : ""); break; @@ -524,14 +178,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) "); @@ -550,14 +202,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; @@ -630,8 +278,6 @@ lseek_with_trace (int fd, off_t offset, int whence, char *file, int line) return ret; } -#endif /* NEW_PROC_API */ - int open_with_trace (char *filename, int mode, char *file, int line) { |