Lines Matching defs:msqptr
477 struct msqid_ds *msqptr;
495 msqptr = &msq->msq_u;
497 if (msqptr->msg_qbytes == 0) {
502 if (msqptr->msg_perm._seq != IPCID_TO_SEQ(msqid)) {
512 if ((error = ipcperm(cred, &msqptr->msg_perm, IPC_M)) != 0)
515 msghdr = msqptr->_msg_first;
520 msqptr->_msg_cbytes -= msghdr->msg_ts;
521 msqptr->msg_qnum--;
526 KASSERT(msqptr->_msg_cbytes == 0);
527 KASSERT(msqptr->msg_qnum == 0);
530 msqptr->msg_qbytes = 0;
536 if ((error = ipcperm(cred, &msqptr->msg_perm, IPC_M)))
538 if (msqbuf->msg_qbytes > msqptr->msg_qbytes &&
542 KAUTH_ARG(msqptr->msg_qbytes), NULL) != 0) {
557 msqptr->msg_perm.uid = msqbuf->msg_perm.uid;
558 msqptr->msg_perm.gid = msqbuf->msg_perm.gid;
559 msqptr->msg_perm.mode = (msqptr->msg_perm.mode & ~0777) |
561 msqptr->msg_qbytes = msqbuf->msg_qbytes;
562 msqptr->msg_ctime = time_second;
566 if ((error = ipcperm(cred, &msqptr->msg_perm, IPC_R))) {
571 msqbuf->msg_perm = msqptr->msg_perm;
573 msqbuf->msg_qnum = msqptr->msg_qnum;
574 msqbuf->msg_qbytes = msqptr->msg_qbytes;
575 msqbuf->msg_lspid = msqptr->msg_lspid;
576 msqbuf->msg_lrpid = msqptr->msg_lrpid;
577 msqbuf->msg_stime = msqptr->msg_stime;
578 msqbuf->msg_rtime = msqptr->msg_rtime;
579 msqbuf->msg_ctime = msqptr->msg_ctime;
604 struct msqid_ds *msqptr = NULL;
614 msqptr = &msq->msq_u;
615 if (msqptr->msg_qbytes != 0 &&
616 msqptr->msg_perm._key == key)
626 if ((error = ipcperm(cred, &msqptr->msg_perm,
646 msqptr = &msq->msq_u;
647 if (msqptr->msg_qbytes == 0 &&
648 (msqptr->msg_perm.mode & MSG_LOCKED) == 0)
657 msqptr->msg_perm._key = key;
658 msqptr->msg_perm.cuid = kauth_cred_geteuid(cred);
659 msqptr->msg_perm.uid = kauth_cred_geteuid(cred);
660 msqptr->msg_perm.cgid = kauth_cred_getegid(cred);
661 msqptr->msg_perm.gid = kauth_cred_getegid(cred);
662 msqptr->msg_perm.mode = (msgflg & 0777);
664 msqptr->msg_perm._seq++;
665 msqptr->_msg_first = NULL;
666 msqptr->_msg_last = NULL;
667 msqptr->_msg_cbytes = 0;
668 msqptr->msg_qnum = 0;
669 msqptr->msg_qbytes = msginfo.msgmnb;
670 msqptr->msg_lspid = 0;
671 msqptr->msg_lrpid = 0;
672 msqptr->msg_stime = 0;
673 msqptr->msg_rtime = 0;
674 msqptr->msg_ctime = time_second;
683 *retval = IXSEQ_TO_IPCID(msqid, msqptr->msg_perm);
710 struct msqid_ds *msqptr;
737 msqptr = &msq->msq_u;
739 if (msqptr->msg_qbytes == 0) {
744 if (msqptr->msg_perm._seq != IPCID_TO_SEQ(msqidr)) {
750 if ((error = ipcperm(cred, &msqptr->msg_perm, IPC_W))) {
766 if (msgsz > msqptr->msg_qbytes) {
767 MSG_PRINTF(("msgsz > msqptr->msg_qbytes\n"));
772 if (msqptr->msg_perm.mode & MSG_LOCKED) {
776 if (msgsz + msqptr->_msg_cbytes > msqptr->msg_qbytes) {
799 if ((msqptr->msg_perm.mode & MSG_LOCKED) != 0) {
806 msqptr->msg_perm.mode |= MSG_LOCKED;
817 msqptr->msg_perm.mode &= ~MSG_LOCKED;
840 if (msqptr->msg_qbytes == 0) {
856 KASSERT((msqptr->msg_perm.mode & MSG_LOCKED) == 0);
858 KASSERT(msgsz + msqptr->_msg_cbytes <= msqptr->msg_qbytes);
866 KASSERT((msqptr->msg_perm.mode & MSG_LOCKED) == 0);
867 msqptr->msg_perm.mode |= MSG_LOCKED;
905 msqptr->msg_perm.mode &= ~MSG_LOCKED;
917 msqptr->msg_perm.mode &= ~MSG_LOCKED;
945 msqptr->msg_perm.mode &= ~MSG_LOCKED;
959 msqptr->msg_perm.mode &= ~MSG_LOCKED;
965 if (msqptr->msg_qbytes == 0) {
976 if (msqptr->_msg_first == NULL) {
977 msqptr->_msg_first = msghdr;
978 msqptr->_msg_last = msghdr;
980 msqptr->_msg_last->msg_next = msghdr;
981 msqptr->_msg_last = msghdr;
983 msqptr->_msg_last->msg_next = NULL;
985 msqptr->_msg_cbytes += msghdr->msg_ts;
986 msqptr->msg_qnum++;
987 msqptr->msg_lspid = l->l_proc->p_pid;
988 msqptr->msg_stime = time_second;
1019 struct msqid_ds *msqptr;
1047 msqptr = &msq->msq_u;
1049 if (msqptr->msg_qbytes == 0) {
1054 if (msqptr->msg_perm._seq != IPCID_TO_SEQ(msqidr)) {
1060 if ((error = ipcperm(cred, &msqptr->msg_perm, IPC_R))) {
1068 msghdr = msqptr->_msg_first;
1078 if (msqptr->_msg_first == msqptr->_msg_last) {
1079 msqptr->_msg_first = NULL;
1080 msqptr->_msg_last = NULL;
1082 msqptr->_msg_first = msghdr->msg_next;
1083 KASSERT(msqptr->_msg_first != NULL);
1090 for (previous = NULL, prev = &msqptr->_msg_first;
1118 if (msghdr != msqptr->_msg_last)
1121 KASSERT(prev == &msqptr->_msg_first);
1122 msqptr->_msg_first = NULL;
1123 msqptr->_msg_last = NULL;
1125 KASSERT(prev != &msqptr->_msg_first);
1126 msqptr->_msg_last = previous;
1181 if (msqptr->msg_qbytes == 0 ||
1182 msqptr->msg_perm._seq != IPCID_TO_SEQ(msqidr)) {
1195 msqptr->_msg_cbytes -= msghdr->msg_ts;
1196 msqptr->msg_qnum--;
1197 msqptr->msg_lrpid = l->l_proc->p_pid;
1198 msqptr->msg_rtime = time_second;