|  | #ifndef _SYS_MSG_H | 
|  | #define _SYS_MSG_H | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #include <sys/ipc.h> | 
|  |  | 
|  | #define __NEED_pid_t | 
|  | #define __NEED_key_t | 
|  | #define __NEED_time_t | 
|  | #define __NEED_size_t | 
|  | #define __NEED_ssize_t | 
|  |  | 
|  | #include <bits/alltypes.h> | 
|  |  | 
|  | typedef unsigned long msgqnum_t; | 
|  | typedef unsigned long msglen_t; | 
|  |  | 
|  | #include <bits/msg.h> | 
|  |  | 
|  | #define __msg_cbytes msg_cbytes | 
|  |  | 
|  | #define MSG_NOERROR 010000 | 
|  | #define MSG_EXCEPT  020000 | 
|  |  | 
|  | #define MSG_STAT 11 | 
|  | #define MSG_INFO 12 | 
|  |  | 
|  | struct msginfo { | 
|  | int msgpool, msgmap, msgmax, msgmnb, msgmni, msgssz, msgtql; | 
|  | unsigned short msgseg; | 
|  | }; | 
|  |  | 
|  | int msgctl (int, int, struct msqid_ds *); | 
|  | int msgget (key_t, int); | 
|  | ssize_t msgrcv (int, void *, size_t, long, int); | 
|  | int msgsnd (int, const void *, size_t, int); | 
|  |  | 
|  | #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 
|  | struct msgbuf { | 
|  | long mtype; | 
|  | char mtext[1]; | 
|  | }; | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |