1 #pragma once
2 
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6 
7 #include <sys/ipc.h>
8 
9 #define __NEED_pid_t
10 #define __NEED_key_t
11 #define __NEED_time_t
12 #define __NEED_size_t
13 #define __NEED_ssize_t
14 
15 #include <bits/alltypes.h>
16 
17 typedef unsigned long msgqnum_t;
18 typedef unsigned long msglen_t;
19 
20 #include <bits/msg.h>
21 
22 #define __msg_cbytes msg_cbytes
23 
24 #define MSG_NOERROR 010000
25 #define MSG_EXCEPT 020000
26 
27 #define MSG_STAT 11
28 #define MSG_INFO 12
29 
30 struct msginfo {
31     int msgpool, msgmap, msgmax, msgmnb, msgmni, msgssz, msgtql;
32     unsigned short msgseg;
33 };
34 
35 int msgctl(int, int, struct msqid_ds*);
36 int msgget(key_t, int);
37 ssize_t msgrcv(int, void*, size_t, long, int);
38 int msgsnd(int, const void*, size_t, int);
39 
40 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
41 struct msgbuf {
42     long mtype;
43     char mtext[1];
44 };
45 #endif
46 
47 #ifdef __cplusplus
48 }
49 #endif
50