summaryrefslogtreecommitdiff
path: root/ipc.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2003-04-08 01:46:48 +0000
committerRoland McGrath <roland@redhat.com>2003-04-08 01:46:48 +0000
commit8477647c4b3c04c6fc4adb0dc76221d319008296 (patch)
tree1baf4879e70954e992d46a79912750c672819463 /ipc.c
parentcf43e9036289b3d92ee2e824b012ff14f4bcdb40 (diff)
downloadstrace-8477647c4b3c04c6fc4adb0dc76221d319008296.tar.gz
strace-8477647c4b3c04c6fc4adb0dc76221d319008296.tar.bz2
strace-8477647c4b3c04c6fc4adb0dc76221d319008296.tar.xz
2003-04-07 Roland McGrath <roland@redhat.com>
* linux/syscallent.h: Handle semtimedop subcall of ipc syscall. * linux/syscall.h: Likewise. * ipc.c [LINUX] (sys_semtimedop): New function. From Ulrich Drepper <drepper@redhat.com>. * ipc.c (sys_semget): Mask off permission bits for resource_flags. From Ulrich Drepper <drepper@redhat.com>.
Diffstat (limited to 'ipc.c')
-rw-r--r--ipc.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/ipc.c b/ipc.c
index a0bbca4..a747868 100644
--- a/ipc.c
+++ b/ipc.c
@@ -261,6 +261,20 @@ struct tcb *tcp;
return 0;
}
+#ifdef LINUX
+int sys_semtimedop(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+ tprintf(", %#lx", tcp->u_arg[3]);
+ tprintf(", %lu, ", tcp->u_arg[1]);
+ printtv(tcp, tcp->u_arg[5]);
+ }
+ return 0;
+}
+#endif
+
int sys_semget(tcp)
struct tcb *tcp;
{
@@ -271,7 +285,7 @@ struct tcb *tcp;
tprintf("IPC_PRIVATE");
tprintf(", %lu", tcp->u_arg[1]);
tprintf(", ");
- if (printflags(resource_flags, tcp->u_arg[2]) != 0)
+ if (printflags(resource_flags, tcp->u_arg[2] & ~0666) != 0)
tprintf("|");
tprintf("%#lo", tcp->u_arg[2] & 0666);
}