You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
42 lines
1.3 KiB
#ifndef _LINUX_MSG_H |
|
#define _LINUX_MSG_H |
|
|
|
#include <linux/list.h> |
|
#include <uapi/linux/msg.h> |
|
|
|
/* one msg_msg structure for each message */ |
|
struct msg_msg { |
|
struct list_head m_list; |
|
long m_type; |
|
size_t m_ts; /* message text size */ |
|
struct msg_msgseg *next; |
|
void *security; |
|
/* the actual message follows immediately */ |
|
}; |
|
|
|
/* one msq_queue structure for each present queue on the system */ |
|
struct msg_queue { |
|
struct kern_ipc_perm q_perm; |
|
time_t q_stime; /* last msgsnd time */ |
|
time_t q_rtime; /* last msgrcv time */ |
|
time_t q_ctime; /* last change time */ |
|
unsigned long q_cbytes; /* current number of bytes on queue */ |
|
unsigned long q_qnum; /* number of messages in queue */ |
|
unsigned long q_qbytes; /* max number of bytes on queue */ |
|
pid_t q_lspid; /* pid of last msgsnd */ |
|
pid_t q_lrpid; /* last receive pid */ |
|
|
|
struct list_head q_messages; |
|
struct list_head q_receivers; |
|
struct list_head q_senders; |
|
}; |
|
|
|
/* Helper routines for sys_msgsnd and sys_msgrcv */ |
|
extern long do_msgsnd(int msqid, long mtype, void __user *mtext, |
|
size_t msgsz, int msgflg); |
|
extern long do_msgrcv(int msqid, void __user *buf, size_t bufsz, long msgtyp, |
|
int msgflg, |
|
long (*msg_fill)(void __user *, struct msg_msg *, |
|
size_t)); |
|
|
|
#endif /* _LINUX_MSG_H */
|
|
|