diff options
Diffstat (limited to 'include/linux/msg.h')
| -rw-r--r-- | include/linux/msg.h | 74 |
1 files changed, 1 insertions, 73 deletions
diff --git a/include/linux/msg.h b/include/linux/msg.h index 56abf1558fdd..7a4b9e97d29a 100644 --- a/include/linux/msg.h +++ b/include/linux/msg.h | |||
| @@ -1,78 +1,8 @@ | |||
| 1 | #ifndef _LINUX_MSG_H | 1 | #ifndef _LINUX_MSG_H |
| 2 | #define _LINUX_MSG_H | 2 | #define _LINUX_MSG_H |
| 3 | 3 | ||
| 4 | #include <linux/ipc.h> | ||
| 5 | |||
| 6 | /* ipcs ctl commands */ | ||
| 7 | #define MSG_STAT 11 | ||
| 8 | #define MSG_INFO 12 | ||
| 9 | |||
| 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 | #ifdef __KERNEL__ | ||
| 75 | #include <linux/list.h> | 4 | #include <linux/list.h> |
| 5 | #include <uapi/linux/msg.h> | ||
| 76 | 6 | ||
| 77 | /* one msg_msg structure for each message */ | 7 | /* one msg_msg structure for each message */ |
| 78 | struct msg_msg { | 8 | struct msg_msg { |
| @@ -107,6 +37,4 @@ extern long do_msgsnd(int msqid, long mtype, void __user *mtext, | |||
| 107 | extern long do_msgrcv(int msqid, long *pmtype, void __user *mtext, | 37 | extern long do_msgrcv(int msqid, long *pmtype, void __user *mtext, |
| 108 | size_t msgsz, long msgtyp, int msgflg); | 38 | size_t msgsz, long msgtyp, int msgflg); |
| 109 | 39 | ||
| 110 | #endif /* __KERNEL__ */ | ||
| 111 | |||
| 112 | #endif /* _LINUX_MSG_H */ | 40 | #endif /* _LINUX_MSG_H */ |
