summaryrefslogtreecommitdiff
path: root/libc/misc/sysvipc/msgq.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/misc/sysvipc/msgq.c')
-rw-r--r--libc/misc/sysvipc/msgq.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/libc/misc/sysvipc/msgq.c b/libc/misc/sysvipc/msgq.c
index f373c1611..ffd58df05 100644
--- a/libc/misc/sysvipc/msgq.c
+++ b/libc/misc/sysvipc/msgq.c
@@ -4,21 +4,30 @@
#ifdef L_msgctl
+
+#ifdef __NR_msgctl
+_syscall3(int, msgctl, int, msqid, int, cmd, struct msqid_ds *, buf);
+#else
/* Message queue control operation. */
int msgctl (int msqid, int cmd, struct msqid_ds *buf)
{
return __ipc(IPCOP_msgctl ,msqid ,cmd ,0 ,buf);
}
#endif
+#endif
#ifdef L_msgget
+#ifdef __NR_msgget
+_syscall2(int, msgget, key_t, key, int, msgflg)
+#else
/* Get messages queue. */
int msgget (key_t key, int msgflg)
{
return __ipc(IPCOP_msgget ,key ,msgflg ,0 ,0);
}
#endif
+#endif
struct new_msg_buf{
@@ -29,6 +38,9 @@ struct new_msg_buf{
#ifdef L_msgrcv
+#ifdef __NR_msgrcv
+_syscall5(int, msgrcv, int, msqid, void *, msgp, size_t, msgsz, long int, msgtyp, int, msgflg);
+#else
int msgrcv (int msqid, void *msgp, size_t msgsz,
long int msgtyp, int msgflg)
{
@@ -39,14 +51,19 @@ int msgrcv (int msqid, void *msgp, size_t msgsz,
return __ipc(IPCOP_msgrcv ,msqid ,msgsz ,msgflg ,&temp);
}
#endif
+#endif
#ifdef L_msgsnd
+#ifdef __NR_msgsnd
+_syscall4(int, msgsnd, int, msqid, const void *, msgp, size_t, msgsz, int, msgflg);
+#else
/* Send message to message queue. */
int msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)
{
return __ipc(IPCOP_msgsnd, msqid, msgsz, msgflg, (void *)msgp);
}
#endif
+#endif