2004-04-16 Roland McGrath <roland@redhat.com>
* 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.
diff --git a/linux/dummy.h b/linux/dummy.h
index 63e5aa8..281e24d 100644
--- a/linux/dummy.h
+++ b/linux/dummy.h
@@ -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
diff --git a/linux/syscall.h b/linux/syscall.h
index c135f65..783d556 100644
--- a/linux/syscall.h
+++ b/linux/syscall.h
@@ -94,6 +94,8 @@
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 */
diff --git a/linux/syscallent.h b/linux/syscallent.h
index 9b2250e..53b5dc8 100644
--- a/linux/syscallent.h
+++ b/linux/syscallent.h
@@ -323,12 +323,12 @@
{ 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 12d00f2..eb02f4c 100644
--- a/time.c
+++ b/time.c
@@ -438,6 +438,9 @@
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("}");