June 2025 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 1 | 2 | 3 | 4 | 5 | 6 |
01: #ifndef _LINUX_MSG_H 02: #define _LINUX_MSG_H 03: 04: #include <linux/ipc.h> 05: 06: /* ipcs ctl commands */ 07: #define MSG_STAT 11 08: #define MSG_INFO 12 09: 10: /* msgrcv options */ 11: #define MSG_NOERROR 010000 /* no error if message is too big */ 12: #define MSG_EXCEPT 020000 /* recv any msg except of specified type.*/ 13: 14: /* Obsolete, used only for backwards compatibility and libc5 compiles */ 15: struct msqid_ds { 16: struct ipc_perm msg_perm; 17: struct msg *msg_first; /* first message on queue,unused */ 18: struct msg *msg_last; /* last message in queue,unused */ 19: __kernel_time_t msg_stime; /* last msgsnd time */ 20: __kernel_time_t msg_rtime; /* last msgrcv time */ 21: __kernel_time_t msg_ctime; /* last change time */ 22: unsigned long msg_lcbytes; /* Reuse junk fields for 32 bit */ 23: unsigned long msg_lqbytes; /* ditto */ 24: unsigned short msg_cbytes; /* current number of bytes on queue */ 25: unsigned short msg_qnum; /* number of messages in queue */ 26: unsigned short msg_qbytes; /* max number of bytes on queue */ 27: __kernel_ipc_pid_t msg_lspid; /* pid of last msgsnd */ 28: __kernel_ipc_pid_t msg_lrpid; /* last receive pid */ 29: }; 30: 31: /* Include the definition of msqid64_ds */ 32: #include <asm/msgbuf.h> 33: 34: /* message buffer for msgsnd and msgrcv calls */ 35: struct msgbuf { 36: long mtype; /* type of message */ 37: char mtext[1]; /* message text */ 38: }; 39: 40: /* buffer for msgctl calls IPC_INFO, MSG_INFO */ 41: struct msginfo { 42: int msgpool; 43: int msgmap; 44: int msgmax; 45: int msgmnb; 46: int msgmni; 47: int msgssz; 48: int msgtql; 49: unsigned short msgseg; 50: }; 51: 52: /* 53: * Scaling factor to compute msgmni: 54: * the memory dedicated to msg queues (msgmni * msgmnb) should occupy 55: * at most 1/MSG_MEM_SCALE of the lowmem (see the formula in ipc/msg.c): 56: * up to 8MB : msgmni = 16 (MSGMNI) 57: * 4 GB : msgmni = 8K 58: * more than 16 GB : msgmni = 32K (IPCMNI) 59: */ 60: #define MSG_MEM_SCALE 32 61: 62: #define MSGMNI 16 /* <= IPCMNI */ /* max # of msg queue identifiers */ 63: #define MSGMAX 8192 /* <= INT_MAX */ /* max size of message (bytes) */ 64: #define MSGMNB 16384 /* <= INT_MAX */ /* default max size of a message queue */ 65: 66: /* unused */ 67: #define MSGPOOL (MSGMNI * MSGMNB / 1024) /* size in kbytes of message pool */ 68: #define MSGTQL MSGMNB /* number of system message headers */ 69: #define MSGMAP MSGMNB /* number of entries in message map */ 70: #define MSGSSZ 16 /* message segment size */ 71: #define __MSGSEG ((MSGPOOL * 1024) / MSGSSZ) /* max no. of segments */ 72: #define MSGSEG (__MSGSEG <= 0xffff ? __MSGSEG : 0xffff) 73: 74: 75: #endif /* _LINUX_MSG_H */ 76: