]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef _LINUX_MSG_H |
2 | #define _LINUX_MSG_H | |
3 | ||
77597ad6 | 4 | #include <linux/list.h> |
607ca46e | 5 | #include <uapi/linux/msg.h> |
1da177e4 LT |
6 | |
7 | /* one msg_msg structure for each message */ | |
8 | struct msg_msg { | |
4e9b45a1 MK |
9 | struct list_head m_list; |
10 | long m_type; | |
11 | size_t m_ts; /* message text size */ | |
239521f3 | 12 | struct msg_msgseg *next; |
1da177e4 LT |
13 | void *security; |
14 | /* the actual message follows immediately */ | |
15 | }; | |
16 | ||
17 | /* one msq_queue structure for each present queue on the system */ | |
18 | struct msg_queue { | |
19 | struct kern_ipc_perm q_perm; | |
20 | time_t q_stime; /* last msgsnd time */ | |
21 | time_t q_rtime; /* last msgrcv time */ | |
22 | time_t q_ctime; /* last change time */ | |
23 | unsigned long q_cbytes; /* current number of bytes on queue */ | |
24 | unsigned long q_qnum; /* number of messages in queue */ | |
25 | unsigned long q_qbytes; /* max number of bytes on queue */ | |
26 | pid_t q_lspid; /* pid of last msgsnd */ | |
27 | pid_t q_lrpid; /* last receive pid */ | |
28 | ||
29 | struct list_head q_messages; | |
30 | struct list_head q_receivers; | |
31 | struct list_head q_senders; | |
32 | }; | |
33 | ||
651971cb | 34 | /* Helper routines for sys_msgsnd and sys_msgrcv */ |
35 | extern long do_msgsnd(int msqid, long mtype, void __user *mtext, | |
36 | size_t msgsz, int msgflg); | |
f9dd87f4 SK |
37 | extern long do_msgrcv(int msqid, void __user *buf, size_t bufsz, long msgtyp, |
38 | int msgflg, | |
3a665531 SK |
39 | long (*msg_fill)(void __user *, struct msg_msg *, |
40 | size_t)); | |
651971cb | 41 | |
1da177e4 | 42 | #endif /* _LINUX_MSG_H */ |