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: /* Copyright (C) 1995, 1996, 1997, 2000, 2002 Free Software Foundation, Inc. 02: This file is part of the GNU C Library. 03: 04: The GNU C Library is free software; you can redistribute it and/or 05: modify it under the terms of the GNU Lesser General Public 06: License as published by the Free Software Foundation; either 07: version 2.1 of the License, or (at your option) any later version. 08: 09: The GNU C Library is distributed in the hope that it will be useful, 10: but WITHOUT ANY WARRANTY; without even the implied warranty of 11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12: Lesser General Public License for more details. 13: 14: You should have received a copy of the GNU Lesser General Public 15: License along with the GNU C Library; if not, write to the Free 16: Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 17: 02111-1307 USA. */ 18: 19: #ifndef _SYS_MSG_H 20: # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." 21: #endif 22: 23: #include <bits/types.h> 24: #include <bits/wordsize.h> 25: 26: /* Define options for message queue functions. */ 27: #define MSG_NOERROR 010000 /* no error if message is too big */ 28: #ifdef __USE_GNU 29: # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ 30: #endif 31: 32: /* Types used in the structure definition. */ 33: typedef unsigned long int msgqnum_t; 34: typedef unsigned long int msglen_t; 35: 36: /* Structure of record for one message inside the kernel. 37: The type `struct msg' is opaque. */ 38: struct msqid_ds 39: { 40: struct ipc_perm msg_perm; /* structure describing operation permission */ 41: __time_t msg_stime; /* time of last msgsnd command */ 42: #if __WORDSIZE == 32 43: unsigned long int __unused1; 44: #endif 45: __time_t msg_rtime; /* time of last msgrcv command */ 46: #if __WORDSIZE == 32 47: unsigned long int __unused2; 48: #endif 49: __time_t msg_ctime; /* time of last change */ 50: #if __WORDSIZE == 32 51: unsigned long int __unused3; 52: #endif 53: unsigned long int __msg_cbytes; /* current number of bytes on queue */ 54: msgqnum_t msg_qnum; /* number of messages currently on queue */ 55: msglen_t msg_qbytes; /* max number of bytes allowed on queue */ 56: __pid_t msg_lspid; /* pid of last msgsnd() */ 57: __pid_t msg_lrpid; /* pid of last msgrcv() */ 58: unsigned long int __unused4; 59: unsigned long int __unused5; 60: }; 61: 62: #ifdef __USE_MISC 63: 64: # define msg_cbytes __msg_cbytes 65: 66: /* ipcs ctl commands */ 67: # define MSG_STAT 11 68: # define MSG_INFO 12 69: 70: /* buffer for msgctl calls IPC_INFO, MSG_INFO */ 71: struct msginfo 72: { 73: int msgpool; 74: int msgmap; 75: int msgmax; 76: int msgmnb; 77: int msgmni; 78: int msgssz; 79: int msgtql; 80: unsigned short int msgseg; 81: }; 82: 83: #endif /* __USE_MISC */ 84: