Lines Matching refs:msg

2  * linux/ipc/msg.c
11 * /proc/sysvipc/msg support (c) 1999 Dragos Acostachioaie <dragos@iname.com>
26 #include <linux/msg.h>
113 * newque - Create a new msg queue
214 struct msg_msg *msg, *t;
223 list_for_each_entry_safe(msg, t, &msq->q_messages, m_list) {
225 free_msg(msg);
536 case MSG_STAT: /* msqid is an index rather than a msg queue id */
547 static int testmsg(struct msg_msg *msg, long type, int mode)
554 if (msg->m_type <= type)
558 if (msg->m_type == type)
562 if (msg->m_type != type)
569 static inline int pipelined_send(struct msg_queue *msq, struct msg_msg *msg)
574 if (testmsg(msg, msr->r_msgtype, msr->r_mode) &&
575 !security_msg_queue_msgrcv(msq, msg, msr->r_tsk,
579 if (msr->r_maxsize < msg->m_ts) {
597 msr->r_msg = msg;
611 struct msg_msg *msg;
622 msg = load_msg(mtext, msgsz);
623 if (IS_ERR(msg))
624 return PTR_ERR(msg);
626 msg->m_type = mtype;
627 msg->m_ts = msgsz;
651 err = security_msg_queue_msgsnd(msq, msg, msgflg);
699 if (!pipelined_send(msq, msg)) {
701 list_add_tail(&msg->m_list, &msq->q_messages);
709 msg = NULL;
715 if (msg != NULL)
716 free_msg(msg);
751 static long do_msg_fill(void __user *dest, struct msg_msg *msg, size_t bufsz)
756 if (put_user(msg->m_type, &msgp->mtype))
759 msgsz = (bufsz > msg->m_ts) ? msg->m_ts : bufsz;
760 if (store_msg(msgp->mtext, msg, msgsz))
801 struct msg_msg *msg, *found = NULL;
804 list_for_each_entry(msg, &msq->q_messages, m_list) {
805 if (testmsg(msg, *msgtyp, mode) &&
806 !security_msg_queue_msgrcv(msq, msg, current,
808 if (mode == SEARCH_LESSEQUAL && msg->m_type != 1) {
809 *msgtyp = msg->m_type - 1;
810 found = msg;
813 return msg;
815 return msg;
829 struct msg_msg *msg, *copy = NULL;
856 msg = ERR_PTR(-EACCES);
864 msg = ERR_PTR(-EIDRM);
868 msg = find_msg(msq, &msgtyp, mode);
869 if (!IS_ERR(msg)) {
874 if ((bufsz < msg->m_ts) && !(msgflg & MSG_NOERROR)) {
875 msg = ERR_PTR(-E2BIG);
883 msg = copy_msg(msg, copy);
887 list_del(&msg->m_list);
891 msq->q_cbytes -= msg->m_ts;
892 atomic_sub(msg->m_ts, &ns->msg_bytes);
901 msg = ERR_PTR(-ENOMSG);
937 msg = (struct msg_msg *)msr_d.r_msg;
938 while (msg == NULL) {
940 msg = (struct msg_msg *)msr_d.r_msg;
947 if (msg != ERR_PTR(-EAGAIN))
958 msg = (struct msg_msg *)msr_d.r_msg;
959 if (msg != ERR_PTR(-EAGAIN))
964 msg = ERR_PTR(-ERESTARTNOHAND);
975 if (IS_ERR(msg)) {
977 return PTR_ERR(msg);
980 bufsz = msg_handler(buf, msg, bufsz);
981 free_msg(msg);
993 * Scale msgmni with the available lowmem size: the memory dedicated to msg
1075 ipc_init_proc_interface("sysvipc/msg",