diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-05-30 00:41:03 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-05-30 00:41:03 +0000 |
commit | f3c41bf8b6dbc12644d2ff38e6f316f2d6a2066e (patch) | |
tree | 34b09666fddafd01960c3c6dc1306dbb302a8a91 /libc/misc/sysvipc/msgq.c | |
parent | 40c106e3aeef2aed7e404626b8d4f7358aec040f (diff) |
Cope with systems that don't glob all these together, but use
separate syscalls.
-Erik
Diffstat (limited to 'libc/misc/sysvipc/msgq.c')
-rw-r--r-- | libc/misc/sysvipc/msgq.c | 17 |
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 |