summaryrefslogtreecommitdiff
path: root/system.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2004-08-31 06:48:46 +0000
committerRoland McGrath <roland@redhat.com>2004-08-31 06:48:46 +0000
commitced50da46b600af578f2c341ba0db31c72880eb2 (patch)
tree493928c25548922cd01c72b5cb0252613381669f /system.c
parenta0b9ef14b0e5f499d88ba769dc0ef0913b658406 (diff)
downloadstrace-ced50da46b600af578f2c341ba0db31c72880eb2.tar.gz
strace-ced50da46b600af578f2c341ba0db31c72880eb2.tar.bz2
strace-ced50da46b600af578f2c341ba0db31c72880eb2.tar.xz
2004-08-30 Roland McGrath <roland@redhat.com>
* system.c (personality_options): Hard-code values here. Don't #include <linux/personality.h> at all. Fixes RH#130965.
Diffstat (limited to 'system.c')
-rw-r--r--system.c241
1 files changed, 113 insertions, 128 deletions
diff --git a/system.c b/system.c
index efa6cd8..2da801c 100644
--- a/system.c
+++ b/system.c
@@ -49,17 +49,6 @@
#include <sys/syscall.h>
-#ifdef SYS_personality
-/* Workaround for kernel namespace pollution. */
-#define _LINUX_PTRACE_H
-/* Yuck yuck yuck. We can't include linux/ptrace.h, but personality.h
- makes a declaration with struct pt_regs, which is defined there. */
-struct pt_regs;
-#define sys_personality kernel_sys_personality
-#include <linux/personality.h>
-#undef sys_personality
-#endif /* SYS_personality */
-
#ifdef SYS_capget
#include <linux/capability.h>
#endif
@@ -124,34 +113,30 @@ struct tcb *tcp;
return 0;
}
+/* These are not macros, but enums. We just copy the values by hand
+ from Linux 2.6.9 here. */
static struct xlat personality_options[] = {
-#ifdef PER_LINUX
- { PER_LINUX, "PER_LINUX" },
-#endif
-#ifdef PER_LINUX_32BIT
- { PER_LINUX_32BIT, "PER_LINUX" },
-#endif
-#ifdef PER_SVR4
- { PER_SVR4, "PER_SVR4" },
-#endif
-#ifdef PER_SVR3
- { PER_SVR3, "PER_SVR3" },
-#endif
-#ifdef PER_SCOSVR3
- { PER_SCOSVR3, "PER_SCOSVR3" },
-#endif
-#ifdef PER_WYSEV386
- { PER_WYSEV386, "PER_WYSEV386" },
-#endif
-#ifdef PER_ISCR4
- { PER_ISCR4, "PER_ISCR4" },
-#endif
-#ifdef PER_BSD
- { PER_BSD, "PER_BSD" },
-#endif
-#ifdef PER_XENIX
- { PER_XENIX, "PER_XENIX" },
-#endif
+ { 0, "PER_LINUX" },
+ { 0x00800000, "PER_LINUX_32BIT"},
+ { 0x04100001, "PER_SVR4" },
+ { 0x05000002, "PER_SVR3" },
+ { 0x07000003, "PER_SCOSVR3" },
+ { 0x06000003, "PER_OSR5" },
+ { 0x05000004, "PER_WYSEV386" },
+ { 0x04000005, "PER_ISCR4" },
+ { 0x00000006, "PER_BSD" },
+ { 0x04000006, "PER_SUNOS" },
+ { 0x05000007, "PER_XENIX" },
+ { 0x00000008, "PER_LINUX32" },
+ { 0x08000008, "PER_LINUX32_3GB"},
+ { 0x04000009, "PER_IRIX32" },
+ { 0x0400000a, "PER_IRIXN32" },
+ { 0x0400000b, "PER_IRIX64" },
+ { 0x0000000c, "PER_RISCOS" },
+ { 0x0400000d, "PER_SOLARIS" },
+ { 0x0410000e, "PER_UW7" },
+ { 0x0000000f, "PER_OSF4" },
+ { 0x00000010, "PER_HPUX" },
{ 0, NULL },
};
@@ -883,247 +868,247 @@ static struct xlat syssgi_options[] = {
#ifdef SGI_GET_FP_PRECISE
{ SGI_GET_FP_PRECISE, "SGI_GET_FP_PRECISE" },
#endif
-#ifdef SGI_GET_CONFIG_SMM
+#ifdef SGI_GET_CONFIG_SMM
{ SGI_GET_CONFIG_SMM, "SGI_GET_CONFIG_SMM" },
#endif
-#ifdef SGI_FP_IMPRECISE_SUPP
+#ifdef SGI_FP_IMPRECISE_SUPP
{ SGI_FP_IMPRECISE_SUPP,"SGI_FP_IMPRECISE_SUPP" },
#endif
-#ifdef SGI_CONFIG_NSMM_SUPP
+#ifdef SGI_CONFIG_NSMM_SUPP
{ SGI_CONFIG_NSMM_SUPP, "SGI_CONFIG_NSMM_SUPP" },
#endif
-#ifdef SGI_RT_TSTAMP_CREATE
+#ifdef SGI_RT_TSTAMP_CREATE
{ SGI_RT_TSTAMP_CREATE, "SGI_RT_TSTAMP_CREATE" },
#endif
-#ifdef SGI_RT_TSTAMP_DELETE
+#ifdef SGI_RT_TSTAMP_DELETE
{ SGI_RT_TSTAMP_DELETE, "SGI_RT_TSTAMP_DELETE" },
#endif
-#ifdef SGI_RT_TSTAMP_START
+#ifdef SGI_RT_TSTAMP_START
{ SGI_RT_TSTAMP_START, "SGI_RT_TSTAMP_START" },
#endif
-#ifdef SGI_RT_TSTAMP_STOP
+#ifdef SGI_RT_TSTAMP_STOP
{ SGI_RT_TSTAMP_STOP, "SGI_RT_TSTAMP_STOP" },
#endif
-#ifdef SGI_RT_TSTAMP_ADDR
+#ifdef SGI_RT_TSTAMP_ADDR
{ SGI_RT_TSTAMP_ADDR, "SGI_RT_TSTAMP_ADDR" },
#endif
-#ifdef SGI_RT_TSTAMP_MASK
+#ifdef SGI_RT_TSTAMP_MASK
{ SGI_RT_TSTAMP_MASK, "SGI_RT_TSTAMP_MASK" },
#endif
-#ifdef SGI_RT_TSTAMP_EOB_MODE
+#ifdef SGI_RT_TSTAMP_EOB_MODE
{ SGI_RT_TSTAMP_EOB_MODE,"SGI_RT_TSTAMP_EOB_MODE"},
#endif
-#ifdef SGI_USE_FP_BCOPY
+#ifdef SGI_USE_FP_BCOPY
{ SGI_USE_FP_BCOPY, "SGI_USE_FP_BCOPY" },
#endif
-#ifdef SGI_GET_UST
+#ifdef SGI_GET_UST
{ SGI_GET_UST, "SGI_GET_UST" },
#endif
-#ifdef SGI_SPECULATIVE_EXEC
+#ifdef SGI_SPECULATIVE_EXEC
{ SGI_SPECULATIVE_EXEC, "SGI_SPECULATIVE_EXEC" },
#endif
-#ifdef SGI_XLV_NEXT_RQST
+#ifdef SGI_XLV_NEXT_RQST
{ SGI_XLV_NEXT_RQST, "SGI_XLV_NEXT_RQST" },
#endif
-#ifdef SGI_XLV_ATTR_CURSOR
+#ifdef SGI_XLV_ATTR_CURSOR
{ SGI_XLV_ATTR_CURSOR, "SGI_XLV_ATTR_CURSOR" },
#endif
-#ifdef SGI_XLV_ATTR_GET
+#ifdef SGI_XLV_ATTR_GET
{ SGI_XLV_ATTR_GET, "SGI_XLV_ATTR_GET" },
#endif
-#ifdef SGI_XLV_ATTR_SET
+#ifdef SGI_XLV_ATTR_SET
{ SGI_XLV_ATTR_SET, "SGI_XLV_ATTR_SET" },
#endif
#ifdef SGI_BTOOLSIZE
{ SGI_BTOOLSIZE, "SGI_BTOOLSIZE" },
#endif
-#ifdef SGI_BTOOLGET
+#ifdef SGI_BTOOLGET
{ SGI_BTOOLGET, "SGI_BTOOLGET" },
#endif
-#ifdef SGI_BTOOLREINIT
+#ifdef SGI_BTOOLREINIT
{ SGI_BTOOLREINIT, "SGI_BTOOLREINIT" },
#endif
-#ifdef SGI_CREATE_UUID
+#ifdef SGI_CREATE_UUID
{ SGI_CREATE_UUID, "SGI_CREATE_UUID" },
#endif
-#ifdef SGI_NOFPE
+#ifdef SGI_NOFPE
{ SGI_NOFPE, "SGI_NOFPE" },
#endif
-#ifdef SGI_OLD_SOFTFP
+#ifdef SGI_OLD_SOFTFP
{ SGI_OLD_SOFTFP, "SGI_OLD_SOFTFP" },
#endif
-#ifdef SGI_FS_INUMBERS
+#ifdef SGI_FS_INUMBERS
{ SGI_FS_INUMBERS, "SGI_FS_INUMBERS" },
#endif
-#ifdef SGI_FS_BULKSTAT
+#ifdef SGI_FS_BULKSTAT
{ SGI_FS_BULKSTAT, "SGI_FS_BULKSTAT" },
#endif
-#ifdef SGI_RT_TSTAMP_WAIT
+#ifdef SGI_RT_TSTAMP_WAIT
{ SGI_RT_TSTAMP_WAIT, "SGI_RT_TSTAMP_WAIT" },
#endif
-#ifdef SGI_RT_TSTAMP_UPDATE
+#ifdef SGI_RT_TSTAMP_UPDATE
{ SGI_RT_TSTAMP_UPDATE, "SGI_RT_TSTAMP_UPDATE" },
#endif
-#ifdef SGI_PATH_TO_HANDLE
+#ifdef SGI_PATH_TO_HANDLE
{ SGI_PATH_TO_HANDLE, "SGI_PATH_TO_HANDLE" },
#endif
-#ifdef SGI_PATH_TO_FSHANDLE
+#ifdef SGI_PATH_TO_FSHANDLE
{ SGI_PATH_TO_FSHANDLE, "SGI_PATH_TO_FSHANDLE" },
#endif
-#ifdef SGI_FD_TO_HANDLE
+#ifdef SGI_FD_TO_HANDLE
{ SGI_FD_TO_HANDLE, "SGI_FD_TO_HANDLE" },
#endif
-#ifdef SGI_OPEN_BY_HANDLE
+#ifdef SGI_OPEN_BY_HANDLE
{ SGI_OPEN_BY_HANDLE, "SGI_OPEN_BY_HANDLE" },
#endif
-#ifdef SGI_READLINK_BY_HANDLE
+#ifdef SGI_READLINK_BY_HANDLE
{ SGI_READLINK_BY_HANDLE,"SGI_READLINK_BY_HANDLE"},
#endif
-#ifdef SGI_READ_DANGID
+#ifdef SGI_READ_DANGID
{ SGI_READ_DANGID, "SGI_READ_DANGID" },
#endif
-#ifdef SGI_CONST
+#ifdef SGI_CONST
{ SGI_CONST, "SGI_CONST" },
#endif
-#ifdef SGI_XFS_FSOPERATIONS
+#ifdef SGI_XFS_FSOPERATIONS
{ SGI_XFS_FSOPERATIONS, "SGI_XFS_FSOPERATIONS" },
#endif
-#ifdef SGI_SETASH
+#ifdef SGI_SETASH
{ SGI_SETASH, "SGI_SETASH" },
#endif
-#ifdef SGI_GETASH
+#ifdef SGI_GETASH
{ SGI_GETASH, "SGI_GETASH" },
#endif
-#ifdef SGI_SETPRID
+#ifdef SGI_SETPRID
{ SGI_SETPRID, "SGI_SETPRID" },
#endif
-#ifdef SGI_GETPRID
+#ifdef SGI_GETPRID
{ SGI_GETPRID, "SGI_GETPRID" },
#endif
-#ifdef SGI_SETSPINFO
+#ifdef SGI_SETSPINFO
{ SGI_SETSPINFO, "SGI_SETSPINFO" },
#endif
-#ifdef SGI_GETSPINFO
+#ifdef SGI_GETSPINFO
{ SGI_GETSPINFO, "SGI_GETSPINFO" },
#endif
-#ifdef SGI_SHAREII
+#ifdef SGI_SHAREII
{ SGI_SHAREII, "SGI_SHAREII" },
#endif
-#ifdef SGI_NEWARRAYSESS
+#ifdef SGI_NEWARRAYSESS
{ SGI_NEWARRAYSESS, "SGI_NEWARRAYSESS" },
#endif
-#ifdef SGI_GETDFLTPRID
+#ifdef SGI_GETDFLTPRID
{ SGI_GETDFLTPRID, "SGI_GETDFLTPRID" },
#endif
-#ifdef SGI_SET_DISMISSED_EXC_CNT
+#ifdef SGI_SET_DISMISSED_EXC_CNT
{ SGI_SET_DISMISSED_EXC_CNT,"SGI_SET_DISMISSED_EXC_CNT" },
#endif
-#ifdef SGI_GET_DISMISSED_EXC_CNT
+#ifdef SGI_GET_DISMISSED_EXC_CNT
{ SGI_GET_DISMISSED_EXC_CNT,"SGI_GET_DISMISSED_EXC_CNT" },
#endif
-#ifdef SGI_CYCLECNTR_SIZE
+#ifdef SGI_CYCLECNTR_SIZE
{ SGI_CYCLECNTR_SIZE, "SGI_CYCLECNTR_SIZE" },
#endif
-#ifdef SGI_QUERY_FASTTIMER
+#ifdef SGI_QUERY_FASTTIMER
{ SGI_QUERY_FASTTIMER, "SGI_QUERY_FASTTIMER" },
#endif
-#ifdef SGI_PIDSINASH
+#ifdef SGI_PIDSINASH
{ SGI_PIDSINASH, "SGI_PIDSINASH" },
#endif
-#ifdef SGI_ULI
+#ifdef SGI_ULI
{ SGI_ULI, "SGI_ULI" },
#endif
-#ifdef SGI_LPG_SHMGET
+#ifdef SGI_LPG_SHMGET
{ SGI_LPG_SHMGET, "SGI_LPG_SHMGET" },
#endif
-#ifdef SGI_LPG_MAP
+#ifdef SGI_LPG_MAP
{ SGI_LPG_MAP, "SGI_LPG_MAP" },
#endif
-#ifdef SGI_CACHEFS_SYS
+#ifdef SGI_CACHEFS_SYS
{ SGI_CACHEFS_SYS, "SGI_CACHEFS_SYS" },
#endif
-#ifdef SGI_NFSNOTIFY
+#ifdef SGI_NFSNOTIFY
{ SGI_NFSNOTIFY, "SGI_NFSNOTIFY" },
#endif
-#ifdef SGI_LOCKDSYS
+#ifdef SGI_LOCKDSYS
{ SGI_LOCKDSYS, "SGI_LOCKDSYS" },
#endif
-#ifdef SGI_EVENTCTR
+#ifdef SGI_EVENTCTR
{ SGI_EVENTCTR, "SGI_EVENTCTR" },
#endif
-#ifdef SGI_GETPRUSAGE
+#ifdef SGI_GETPRUSAGE
{ SGI_GETPRUSAGE, "SGI_GETPRUSAGE" },
#endif
-#ifdef SGI_PROCMASK_LOCATION
+#ifdef SGI_PROCMASK_LOCATION
{ SGI_PROCMASK_LOCATION,"SGI_PROCMASK_LOCATION" },
#endif
-#ifdef SGI_UNUSED
+#ifdef SGI_UNUSED
{ SGI_UNUSED, "SGI_UNUSED" },
#endif
-#ifdef SGI_CKPT_SYS
+#ifdef SGI_CKPT_SYS
{ SGI_CKPT_SYS, "SGI_CKPT_SYS" },
#endif
-#ifdef SGI_CKPT_SYS
+#ifdef SGI_CKPT_SYS
{ SGI_CKPT_SYS, "SGI_CKPT_SYS" },
#endif
-#ifdef SGI_GETGRPPID
+#ifdef SGI_GETGRPPID
{ SGI_GETGRPPID, "SGI_GETGRPPID" },
#endif
-#ifdef SGI_GETSESPID
+#ifdef SGI_GETSESPID
{ SGI_GETSESPID, "SGI_GETSESPID" },
#endif
-#ifdef SGI_ENUMASHS
+#ifdef SGI_ENUMASHS
{ SGI_ENUMASHS, "SGI_ENUMASHS" },
#endif
-#ifdef SGI_SETASMACHID
+#ifdef SGI_SETASMACHID
{ SGI_SETASMACHID, "SGI_SETASMACHID" },
#endif
-#ifdef SGI_GETASMACHID
+#ifdef SGI_GETASMACHID
{ SGI_GETASMACHID, "SGI_GETASMACHID" },
#endif
-#ifdef SGI_GETARSESS
+#ifdef SGI_GETARSESS
{ SGI_GETARSESS, "SGI_GETARSESS" },
#endif
-#ifdef SGI_JOINARRAYSESS
+#ifdef SGI_JOINARRAYSESS
{ SGI_JOINARRAYSESS, "SGI_JOINARRAYSESS" },
#endif
-#ifdef SGI_SPROC_KILL
+#ifdef SGI_SPROC_KILL
{ SGI_SPROC_KILL, "SGI_SPROC_KILL" },
#endif
-#ifdef SGI_DBA_CONFIG
+#ifdef SGI_DBA_CONFIG
{ SGI_DBA_CONFIG, "SGI_DBA_CONFIG" },
#endif
-#ifdef SGI_RELEASE_NAME
+#ifdef SGI_RELEASE_NAME
{ SGI_RELEASE_NAME, "SGI_RELEASE_NAME" },
#endif
-#ifdef SGI_SYNCH_CACHE_HANDLER
+#ifdef SGI_SYNCH_CACHE_HANDLER
{ SGI_SYNCH_CACHE_HANDLER,"SGI_SYNCH_CACHE_HANDLER"},
#endif
-#ifdef SGI_SWASH_INIT
+#ifdef SGI_SWASH_INIT
{ SGI_SWASH_INIT, "SGI_SWASH_INIT" },
#endif
-#ifdef SGI_NUMA_MIGR_PAGE
+#ifdef SGI_NUMA_MIGR_PAGE
{ SGI_NUMA_MIGR_PAGE, "SGI_NUMA_MIGR_PAGE" },
#endif
-#ifdef SGI_NUMA_MIGR_PAGE_ALT
+#ifdef SGI_NUMA_MIGR_PAGE_ALT
{ SGI_NUMA_MIGR_PAGE_ALT,"SGI_NUMA_MIGR_PAGE_ALT"},
#endif
-#ifdef SGI_KAIO_USERINIT
+#ifdef SGI_KAIO_USERINIT
{ SGI_KAIO_USERINIT, "SGI_KAIO_USERINIT" },
#endif
-#ifdef SGI_KAIO_READ
+#ifdef SGI_KAIO_READ
{ SGI_KAIO_READ, "SGI_KAIO_READ" },
#endif
-#ifdef SGI_KAIO_WRITE
+#ifdef SGI_KAIO_WRITE
{ SGI_KAIO_WRITE, "SGI_KAIO_WRITE" },
#endif
-#ifdef SGI_KAIO_SUSPEND
+#ifdef SGI_KAIO_SUSPEND
{ SGI_KAIO_SUSPEND, "SGI_KAIO_SUSPEND" },
#endif
-#ifdef SGI_KAIO_STATS
+#ifdef SGI_KAIO_STATS
{ SGI_KAIO_STATS, "SGI_KAIO_STATS" },
#endif
-#ifdef SGI_INITIAL_PT_SPROC
+#ifdef SGI_INITIAL_PT_SPROC
{ SGI_INITIAL_PT_SPROC, "SGI_INITIAL_PT_SPROC" },
#endif
{ 0, NULL },
@@ -1353,7 +1338,7 @@ struct tcb *tcp;
if (args.mflags & VX_MS_SNAPSHOT) {
tprintf (", snapof=");
printstr (tcp,
- (long) args.primaryspec,
+ (long) args.primaryspec,
-1);
if (args.snapsize > 0)
tprintf (", snapsize=%ld", args.snapsize);
@@ -1498,7 +1483,7 @@ struct tcb *tcp;
tprintf(", ");
printflags(capabilities, arg1->inheritable);
tprintf("}");
- }
+ }
}
return 0;
}
@@ -1550,7 +1535,7 @@ struct tcb *tcp;
tprintf(", ");
printflags(capabilities, arg1->inheritable);
tprintf("}");
- }
+ }
}
return 0;
}
@@ -1965,7 +1950,7 @@ struct tcb *tcp;
char ctl[1024];
size_t len;
int i, numeric;
-
+
if (entering(tcp)) {
if (tcp->u_arg[1] < 0 || tcp->u_arg[1] > CTL_MAXNAME ||
(umoven(tcp, tcp->u_arg[0], tcp->u_arg[1] * sizeof(int),
@@ -1996,7 +1981,7 @@ struct tcb *tcp;
if (!syserror(tcp) && (umove(tcp, tcp->u_arg[3], &len) >= 0)) {
printstr(tcp, tcp->u_arg[2], len);
tprintf(", [%u], ", len);
- } else
+ } else
tprintf("%#lx, %#lx, ", tcp->u_arg[2], tcp->u_arg[3]);
printstr(tcp, tcp->u_arg[4], tcp->u_arg[5]);
tprintf(", %lu", tcp->u_arg[5]);
@@ -2011,9 +1996,9 @@ struct tcb *tcp;
#include <sys/elf.h>
static struct xlat ksym_flags[] = {
- { STT_NOTYPE, "STT_NOTYPE" },
- { STT_FUNC, "STT_FUNC" },
- { STT_OBJECT, "STT_OBJECT" },
+ { STT_NOTYPE, "STT_NOTYPE" },
+ { STT_FUNC, "STT_FUNC" },
+ { STT_OBJECT, "STT_OBJECT" },
{ 0, NULL },
};
@@ -2150,7 +2135,7 @@ struct tcb *tcp;
if (iov.tio_udatainlen != sizeof cni ||
umove (tcp, (long) iov.tio_udatain, &cni) < 0)
goto bad_out;
- if (cni.info_len != sizeof info ||
+ if (cni.info_len != sizeof info ||
iov.tio_udataoutlen != sizeof &info ||
umove (tcp, (long) iov.tio_udataout, &info) < 0)
goto bad_out;
@@ -2158,7 +2143,7 @@ struct tcb *tcp;
info.node_num, info.node_totalcpus,
info.node_onlinecpus);
break;
-
+
default:
bad_out:
if (iov.tio_udataoutlen) {