]> granicus.if.org Git - strace/commitdiff
2004-04-16 Roland McGrath <roland@redhat.com>
authorRoland McGrath <roland@redhat.com>
Fri, 16 Apr 2004 21:48:44 +0000 (21:48 +0000)
committerRoland McGrath <roland@redhat.com>
Fri, 16 Apr 2004 21:48:44 +0000 (21:48 +0000)
* linux/syscall.h: Support new mq_* syscalls on Linux.
* linux/syscallent.h: Likewise.
* linux/dummy.h: Likewise.
* ipc.c: Likewise.
* time.c (printsigevent): Handle SIGEV_THREAD.
From Ulrich Drepper <drepper@redhat.com>.
Fixes RH#120701.

linux/dummy.h
linux/syscall.h
linux/syscallent.h
time.c

index 63e5aa8610ab16aa7f5235d8396d8ac80768b957..281e24d30f1bf6fa80d68d14acaf957b630c130f 100644 (file)
@@ -64,6 +64,7 @@
 #define sys_mlock              sys_munmap
 #define sys_munlock            sys_munmap
 #define sys_clock_getres       sys_clock_gettime
+#define sys_mq_unlink          sys_unlink
 
 /* printargs does the right thing */
 #define        sys_setup               printargs
index c135f65232129452f072915f3a1d39780bdec2b9..783d556ce8f5c950bc42ffdb535161e8e1b6bc73 100644 (file)
@@ -94,6 +94,8 @@ int sys_timer_create(), sys_timer_delete(), sys_timer_getoverrun();
 int sys_timer_gettime(), sys_timer_settime(), sys_clock_settime();
 int sys_clock_gettime(), sys_clock_getres(), sys_clock_nanosleep();
 int sys_semtimedop(), sys_statfs64(), sys_fstatfs64(), sys_tgkill();
+int sys_mq_open(), sys_mq_timedsend(), sys_mq_timedreceive();
+int sys_mq_notify(), sys_mq_getsetattr();
 
 
 /* sys_socketcall subcalls */
index 9b2250e09544be6e22fe9284e7682b5ef887de19..53b5dc8c1b819ecd52c27453430007bd1c67b3a3 100644 (file)
        { 5,    0,      printargs,              "SYS_274"       }, /* 274 */
        { 5,    0,      printargs,              "SYS_275"       }, /* 275 */
        { 5,    0,      printargs,              "SYS_276"       }, /* 276 */
-       { 5,    0,      printargs,              "SYS_277"       }, /* 277 */
-       { 5,    0,      printargs,              "SYS_278"       }, /* 278 */
-       { 5,    0,      printargs,              "SYS_279"       }, /* 279 */
-       { 5,    0,      printargs,              "SYS_280"       }, /* 280 */
-       { 5,    0,      printargs,              "SYS_281"       }, /* 281 */
-       { 5,    0,      printargs,              "SYS_282"       }, /* 282 */
+       { 4,    0,      sys_mq_open,            "mq_open"       }, /* 277 */
+       { 1,    0,      sys_mq_unlink,          "mq_unlink"     }, /* 278 */
+       { 5,    0,      sys_mq_timedsend,       "mq_timedsend"  }, /* 279 */
+       { 5,    0,      sys_mq_timedreceive,    "mq_timedreceive" }, /* 280 */
+       { 2,    0,      sys_mq_notify,          "mq_notify"     }, /* 281 */
+       { 3,    0,      sys_mq_getsetattr,      "mq_getsetattr" }, /* 282 */
        { 5,    0,      printargs,              "SYS_283"       }, /* 283 */
        { 5,    0,      printargs,              "SYS_284"       }, /* 284 */
        { 5,    0,      printargs,              "SYS_285"       }, /* 285 */
diff --git a/time.c b/time.c
index 12d00f24bccc1765eb92e33101d18abdc30b2042..eb02f4c64ae6d4ce99a74ac784c1c120b1d430a3 100644 (file)
--- a/time.c
+++ b/time.c
@@ -438,6 +438,9 @@ long arg;
                           present in the userlevel definition of the
                           struct.  */
                        tprintf("{%d}", sev._sigev_un._pad[0]);
+               else if (sev.sigev_notify == SIGEV_THREAD)
+                       tprintf("{%p, %p}", sev.sigev_notify_function,
+                               sev.sigev_notify_attributes);
                else
                        tprintf("{...}");
                tprintf("}");