diff options
-rw-r--r-- | include/sys/msg.h | 10 | ||||
-rw-r--r-- | libc/misc/sysvipc/msgq.c | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/include/sys/msg.h b/include/sys/msg.h index 1fd64b2ac..cdc96be9b 100644 --- a/include/sys/msg.h +++ b/include/sys/msg.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1995,1996,1997,1999,2000,2003 Free Software Foundation, Inc. +/* Copyright (C) 1995-1997,1999,2000,2003,2006,2007 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,6 +22,9 @@ #include <features.h> +#define __need_size_t +#include <stddef.h> + /* Get common definition of System V style IPC. */ #include <sys/ipc.h> @@ -66,8 +70,8 @@ extern int msgget (key_t __key, int __msgflg) __THROW; This function is a cancellation point and therefore not marked with __THROW. */ -extern int msgrcv (int __msqid, void *__msgp, size_t __msgsz, - long int __msgtyp, int __msgflg); +extern ssize_t msgrcv (int __msqid, void *__msgp, size_t __msgsz, + long int __msgtyp, int __msgflg); /* Send message to message queue. diff --git a/libc/misc/sysvipc/msgq.c b/libc/misc/sysvipc/msgq.c index d67645a4d..e20e3ca64 100644 --- a/libc/misc/sysvipc/msgq.c +++ b/libc/misc/sysvipc/msgq.c @@ -49,10 +49,10 @@ struct new_msg_buf{ #ifdef L_msgrcv #ifdef __NR_msgrcv #define __NR___syscall_msgrcv __NR_msgrcv -static inline _syscall5(int, __syscall_msgrcv, int, msqid, void *, msgp, +static inline _syscall5(ssize_t, __syscall_msgrcv, int, msqid, void *, msgp, size_t, msgsz, long int, msgtyp, int, msgflg) #endif -static inline int do_msgrcv (int msqid, void *msgp, size_t msgsz, +static inline ssize_t do_msgrcv (int msqid, void *msgp, size_t msgsz, long int msgtyp, int msgflg) { #ifdef __NR_msgrcv |