Lines Matching refs:attr
77 struct mq_attr attr; member
113 struct mq_attr *attr) in mqueue_get_inode() argument
143 memset(&info->attr, 0, sizeof(info->attr)); in mqueue_get_inode()
144 info->attr.mq_maxmsg = msg_max; in mqueue_get_inode()
145 info->attr.mq_msgsize = msgsize_max; in mqueue_get_inode()
146 if (attr) { in mqueue_get_inode()
147 info->attr.mq_maxmsg = attr->mq_maxmsg; in mqueue_get_inode()
148 info->attr.mq_msgsize = attr->mq_msgsize; in mqueue_get_inode()
150 mq_msg_tblsz = info->attr.mq_maxmsg * sizeof(struct msg_msg *); in mqueue_get_inode()
152 (info->attr.mq_maxmsg * info->attr.mq_msgsize)); in mqueue_get_inode()
252 for (i = 0; i < info->attr.mq_curmsgs; i++) in mqueue_delete_inode()
259 mq_bytes = (info->attr.mq_maxmsg * sizeof(struct msg_msg *) + in mqueue_delete_inode()
260 (info->attr.mq_maxmsg * info->attr.mq_msgsize)); in mqueue_delete_inode()
275 struct mq_attr *attr = dentry->d_fsdata; in mqueue_create() local
286 inode = mqueue_get_inode(dir->i_sb, mode, attr); in mqueue_create()
371 if (info->attr.mq_curmsgs) in mqueue_poll_file()
374 if (info->attr.mq_curmsgs < info->attr.mq_maxmsg) in mqueue_poll_file()
464 k = info->attr.mq_curmsgs - 1; in msg_insert()
469 info->attr.mq_curmsgs++; in msg_insert()
476 info->qsize -= info->messages[--info->attr.mq_curmsgs]->m_ts; in msg_get()
477 return info->messages[info->attr.mq_curmsgs]; in msg_get()
496 info->attr.mq_curmsgs == 1) { in __do_notify()
565 static int mq_attr_ok(struct mq_attr *attr) in mq_attr_ok() argument
567 if (attr->mq_maxmsg <= 0 || attr->mq_msgsize <= 0) in mq_attr_ok()
570 if (attr->mq_maxmsg > HARD_MSGMAX) in mq_attr_ok()
573 if (attr->mq_maxmsg > msg_max || in mq_attr_ok()
574 attr->mq_msgsize > msgsize_max) in mq_attr_ok()
578 if (attr->mq_msgsize > ULONG_MAX/attr->mq_maxmsg) in mq_attr_ok()
580 if ((unsigned long)(attr->mq_maxmsg * attr->mq_msgsize) + in mq_attr_ok()
581 (attr->mq_maxmsg * sizeof (struct msg_msg *)) < in mq_attr_ok()
582 (unsigned long)(attr->mq_maxmsg * attr->mq_msgsize)) in mq_attr_ok()
591 int oflag, mode_t mode, struct mq_attr *attr) in do_create() argument
597 if (attr) { in do_create()
599 if (!mq_attr_ok(attr)) in do_create()
602 dentry->d_fsdata = attr; in do_create()
659 struct mq_attr attr; in SYSCALL_DEFINE4() local
662 if (u_attr && copy_from_user(&attr, u_attr, sizeof(struct mq_attr))) in SYSCALL_DEFINE4()
665 audit_mq_open(oflag, mode, u_attr ? &attr : NULL); in SYSCALL_DEFINE4()
692 u_attr ? &attr : NULL); in SYSCALL_DEFINE4()
858 if (unlikely(msg_len > info->attr.mq_msgsize)) { in SYSCALL_DEFINE5()
875 if (info->attr.mq_curmsgs == info->attr.mq_maxmsg) { in SYSCALL_DEFINE5()
948 if (unlikely(msg_len < info->attr.mq_msgsize)) { in SYSCALL_DEFINE5()
954 if (info->attr.mq_curmsgs == 0) { in SYSCALL_DEFINE5()
1155 omqstat = info->attr; in SYSCALL_DEFINE3()