1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux 1 2 #ifndef _UAPI_LINUX_MSG_H 3 #define _UAPI_LINUX_MSG_H 4 5 #include <linux/ipc.h> 6 7 /* ipcs ctl commands */ 8 #define MSG_STAT 11 9 #define MSG_INFO 12 10 #define MSG_STAT_ANY 13 11 12 /* msgrcv options */ 13 #define MSG_NOERROR 010000 /* no error if 14 #define MSG_EXCEPT 020000 /* recv any ms 15 #define MSG_COPY 040000 /* copy (not r 16 17 /* Obsolete, used only for backwards compatibi 18 struct msqid_ds { 19 struct ipc_perm msg_perm; 20 struct msg *msg_first; /* fir 21 struct msg *msg_last; /* las 22 __kernel_old_time_t msg_stime; /* las 23 __kernel_old_time_t msg_rtime; /* las 24 __kernel_old_time_t msg_ctime; /* las 25 unsigned long msg_lcbytes; /* Reu 26 unsigned long msg_lqbytes; /* dit 27 unsigned short msg_cbytes; /* cur 28 unsigned short msg_qnum; /* num 29 unsigned short msg_qbytes; /* max 30 __kernel_ipc_pid_t msg_lspid; /* pid 31 __kernel_ipc_pid_t msg_lrpid; /* las 32 }; 33 34 /* Include the definition of msqid64_ds */ 35 #include <asm/msgbuf.h> 36 37 /* message buffer for msgsnd and msgrcv calls 38 struct msgbuf { 39 __kernel_long_t mtype; /* typ 40 char mtext[1]; /* mes 41 }; 42 43 /* buffer for msgctl calls IPC_INFO, MSG_INFO 44 struct msginfo { 45 int msgpool; 46 int msgmap; 47 int msgmax; 48 int msgmnb; 49 int msgmni; 50 int msgssz; 51 int msgtql; 52 unsigned short msgseg; 53 }; 54 55 /* 56 * MSGMNI, MSGMAX and MSGMNB are default value 57 * modified by sysctl. 58 * 59 * MSGMNI is the upper limit for the number of 60 * namespace. 61 * It has been chosen to be as large possible 62 * scenarios where userspace causes overflows 63 * operations of the form retrieve current lim 64 * 65 * MSGMNB is the default size of a new message 66 * decrease the size with msgctl(IPC_SET), roo 67 * (actually: CAP_SYS_RESOURCE) can both incre 68 * size. The optimal value is application depe 69 * 16384 is used because it was always used (s 70 * 71 * MAXMAX is the maximum size of an individual 72 * (per-namespace) limit that applies for all 73 * It's set to 1/2 of MSGMNB, to ensure that a 74 * the queue. This is also an arbitrary choice 75 */ 76 77 #define MSGMNI 32000 /* <= IPCMNI */ /* 78 #define MSGMAX 8192 /* <= INT_MAX */ /* m 79 #define MSGMNB 16384 /* <= INT_MAX */ /* d 80 81 /* unused */ 82 #define MSGPOOL (MSGMNI * MSGMNB / 1024) /* si 83 #define MSGTQL MSGMNB /* number of 84 #define MSGMAP MSGMNB /* number of 85 #define MSGSSZ 16 /* message s 86 #define __MSGSEG ((MSGPOOL * 1024) / MSGSSZ) / 87 #define MSGSEG (__MSGSEG <= 0xffff ? __MSGSEG 88 89 90 #endif /* _UAPI_LINUX_MSG_H */ 91
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.