Lines Matching refs:msqptr

380 	struct msqid_kernel *msqptr;  in msgctl()  local
406 msqptr = &msqids[msqid]; in msgctl()
408 if (msqptr->u.msg_qbytes == 0) { in msgctl()
415 if (msqptr->u.msg_perm._seq != IPCID_TO_SEQ(uap->msqid)) { in msgctl()
423 eval = mac_sysvmsq_check_msqctl(kauth_cred_get(), msqptr, cmd); in msgctl()
436 if ((eval = ipcperm(cred, &msqptr->u.msg_perm, IPC_M))) { in msgctl()
449 for (msghdr = msqptr->u.msg_first; msghdr != NULL; in msgctl()
458 msghdr = msqptr->u.msg_first; in msgctl()
463 msqptr->u.msg_cbytes -= msghdr->msg_ts; in msgctl()
464 msqptr->u.msg_qnum--; in msgctl()
470 if (msqptr->u.msg_cbytes != 0) { in msgctl()
473 if (msqptr->u.msg_qnum != 0) { in msgctl()
477 msqptr->u.msg_qbytes = 0; /* Mark it as free */ in msgctl()
479 mac_sysvmsq_label_recycle(msqptr); in msgctl()
482 wakeup((caddr_t)msqptr); in msgctl()
488 if ((eval = ipcperm(cred, &msqptr->u.msg_perm, IPC_M))) { in msgctl()
512 if (msqbuf.msg_qbytes > msqptr->u.msg_qbytes) { in msgctl()
535 msqptr->u.msg_perm.uid = msqbuf.msg_perm.uid; /* change the owner */ in msgctl()
536 msqptr->u.msg_perm.gid = msqbuf.msg_perm.gid; /* change the owner */ in msgctl()
537 msqptr->u.msg_perm.mode = (msqptr->u.msg_perm.mode & ~0777) | in msgctl()
539 msqptr->u.msg_qbytes = msqbuf.msg_qbytes; in msgctl()
540 msqptr->u.msg_ctime = sysv_msgtime(); in msgctl()
544 if ((eval = ipcperm(cred, &msqptr->u.msg_perm, IPC_R))) { in msgctl()
554 msqid_ds_kerneltouser64(&msqptr->u, &msqid_ds64); in msgctl()
558 msqid_ds_kerneltouser32(&msqptr->u, &msqid_ds32); in msgctl()
587 struct msqid_kernel *msqptr = NULL; in msgget() local
602 msqptr = &msqids[msqid]; in msgget()
603 if (msqptr->u.msg_qbytes != 0 && in msgget()
604 msqptr->u.msg_perm._key == key) { in msgget()
619 if ((eval = ipcperm(cred, &msqptr->u.msg_perm, msgflg & 0700 ))) { in msgget()
627 eval = mac_sysvmsq_check_msqget(cred, msqptr); in msgget()
647 msqptr = &msqids[msqid]; in msgget()
648 if (msqptr->u.msg_qbytes == 0 && in msgget()
649 (msqptr->u.msg_perm.mode & MSG_LOCKED) == 0) { in msgget()
663 msqptr->u.msg_perm._key = key; in msgget()
664 msqptr->u.msg_perm.cuid = kauth_cred_getuid(cred); in msgget()
665 msqptr->u.msg_perm.uid = kauth_cred_getuid(cred); in msgget()
666 msqptr->u.msg_perm.cgid = kauth_cred_getgid(cred); in msgget()
667 msqptr->u.msg_perm.gid = kauth_cred_getgid(cred); in msgget()
668 msqptr->u.msg_perm.mode = (msgflg & 0777); in msgget()
670 msqptr->u.msg_perm._seq++; in msgget()
671 msqptr->u.msg_first = NULL; in msgget()
672 msqptr->u.msg_last = NULL; in msgget()
673 msqptr->u.msg_cbytes = 0; in msgget()
674 msqptr->u.msg_qnum = 0; in msgget()
675 msqptr->u.msg_qbytes = msginfo.msgmnb; in msgget()
676 msqptr->u.msg_lspid = 0; in msgget()
677 msqptr->u.msg_lrpid = 0; in msgget()
678 msqptr->u.msg_stime = 0; in msgget()
679 msqptr->u.msg_rtime = 0; in msgget()
680 msqptr->u.msg_ctime = sysv_msgtime(); in msgget()
682 mac_sysvmsq_label_associate(cred, msqptr); in msgget()
694 *retval = IXSEQ_TO_IPCID(msqid, msqptr->u.msg_perm); in msgget()
718 struct msqid_kernel *msqptr; in msgsnd_nocancel() local
748 msqptr = &msqids[msqid]; in msgsnd_nocancel()
749 if (msqptr->u.msg_qbytes == 0) { in msgsnd_nocancel()
756 if (msqptr->u.msg_perm._seq != IPCID_TO_SEQ(uap->msqid)) { in msgsnd_nocancel()
764 if ((eval = ipcperm(kauth_cred_get(), &msqptr->u.msg_perm, IPC_W))) { in msgsnd_nocancel()
772 eval = mac_sysvmsq_check_msqsnd(kauth_cred_get(), msqptr); in msgsnd_nocancel()
797 if (msgsz > msqptr->u.msg_qbytes) { in msgsnd_nocancel()
809 if (msqptr->u.msg_perm.mode & MSG_LOCKED) { in msgsnd_nocancel()
813 blocking_resource = msqptr; in msgsnd_nocancel()
821 if (msgsz + msqptr->u.msg_cbytes > msqptr->u.msg_qbytes) { in msgsnd_nocancel()
825 blocking_resource = msqptr; in msgsnd_nocancel()
858 if ((msqptr->u.msg_perm.mode & MSG_LOCKED) != 0) { in msgsnd_nocancel()
869 msqptr->u.msg_perm.mode |= MSG_LOCKED; in msgsnd_nocancel()
881 msqptr->u.msg_perm.mode &= ~MSG_LOCKED; in msgsnd_nocancel()
895 if (msqptr->u.msg_qbytes == 0) { in msgsnd_nocancel()
915 if (msqptr->u.msg_perm.mode & MSG_LOCKED) { in msgsnd_nocancel()
921 if (msgsz + msqptr->u.msg_cbytes > msqptr->u.msg_qbytes) { in msgsnd_nocancel()
932 if ((msqptr->u.msg_perm.mode & MSG_LOCKED) != 0) { in msgsnd_nocancel()
935 msqptr->u.msg_perm.mode |= MSG_LOCKED; in msgsnd_nocancel()
946 mac_sysvmsg_label_associate(kauth_cred_get(), msqptr, msghdr); in msgsnd_nocancel()
1000 msqptr->u.msg_perm.mode &= ~MSG_LOCKED; in msgsnd_nocancel()
1001 wakeup((caddr_t)msqptr); in msgsnd_nocancel()
1011 msqptr->u.msg_perm.mode &= ~MSG_LOCKED; in msgsnd_nocancel()
1012 wakeup((caddr_t)msqptr); in msgsnd_nocancel()
1048 msqptr->u.msg_perm.mode &= ~MSG_LOCKED; in msgsnd_nocancel()
1049 wakeup((caddr_t)msqptr); in msgsnd_nocancel()
1065 msqptr->u.msg_perm.mode &= ~MSG_LOCKED; in msgsnd_nocancel()
1071 if (msqptr->u.msg_qbytes == 0) { in msgsnd_nocancel()
1073 wakeup((caddr_t)msqptr); in msgsnd_nocancel()
1096 eval = mac_sysvmsq_check_enqueue(kauth_cred_get(), msghdr, msqptr); in msgsnd_nocancel()
1099 wakeup((caddr_t) msqptr); in msgsnd_nocancel()
1107 if (msqptr->u.msg_first == NULL) { in msgsnd_nocancel()
1108 msqptr->u.msg_first = msghdr; in msgsnd_nocancel()
1109 msqptr->u.msg_last = msghdr; in msgsnd_nocancel()
1111 msqptr->u.msg_last->msg_next = msghdr; in msgsnd_nocancel()
1112 msqptr->u.msg_last = msghdr; in msgsnd_nocancel()
1114 msqptr->u.msg_last->msg_next = NULL; in msgsnd_nocancel()
1116 msqptr->u.msg_cbytes += msghdr->msg_ts; in msgsnd_nocancel()
1117 msqptr->u.msg_qnum++; in msgsnd_nocancel()
1118 msqptr->u.msg_lspid = proc_getpid(p); in msgsnd_nocancel()
1119 msqptr->u.msg_stime = sysv_msgtime(); in msgsnd_nocancel()
1121 wakeup((caddr_t)msqptr); in msgsnd_nocancel()
1147 struct msqid_kernel *msqptr; in msgrcv_nocancel() local
1178 msqptr = &msqids[msqid]; in msgrcv_nocancel()
1179 if (msqptr->u.msg_qbytes == 0) { in msgrcv_nocancel()
1186 if (msqptr->u.msg_perm._seq != IPCID_TO_SEQ(uap->msqid)) { in msgrcv_nocancel()
1194 if ((eval = ipcperm(kauth_cred_get(), &msqptr->u.msg_perm, IPC_R))) { in msgrcv_nocancel()
1202 eval = mac_sysvmsq_check_msqrcv(kauth_cred_get(), msqptr); in msgrcv_nocancel()
1210 msghdr = msqptr->u.msg_first; in msgrcv_nocancel()
1228 if (msqptr->u.msg_first == msqptr->u.msg_last) { in msgrcv_nocancel()
1229 msqptr->u.msg_first = NULL; in msgrcv_nocancel()
1230 msqptr->u.msg_last = NULL; in msgrcv_nocancel()
1232 msqptr->u.msg_first = msghdr->msg_next; in msgrcv_nocancel()
1233 if (msqptr->u.msg_first == NULL) { in msgrcv_nocancel()
1243 prev = &(msqptr->u.msg_first); in msgrcv_nocancel()
1277 if (msghdr == msqptr->u.msg_last) { in msgrcv_nocancel()
1280 &msqptr->u.msg_first) { in msgrcv_nocancel()
1283 msqptr->u.msg_first = in msgrcv_nocancel()
1285 msqptr->u.msg_last = in msgrcv_nocancel()
1289 &msqptr->u.msg_first) { in msgrcv_nocancel()
1292 msqptr->u.msg_last = in msgrcv_nocancel()
1339 eval = msleep((caddr_t)msqptr, &sysv_msg_subsys_mutex, (PZERO - 4) | PCATCH, "msgwait", in msgrcv_nocancel()
1357 if (msqptr->u.msg_qbytes == 0 || in msgrcv_nocancel()
1358 msqptr->u.msg_perm._seq != IPCID_TO_SEQ(uap->msqid)) { in msgrcv_nocancel()
1379 msqptr->u.msg_cbytes -= msghdr->msg_ts; in msgrcv_nocancel()
1380 msqptr->u.msg_qnum--; in msgrcv_nocancel()
1381 msqptr->u.msg_lrpid = proc_getpid(p); in msgrcv_nocancel()
1382 msqptr->u.msg_rtime = sysv_msgtime(); in msgrcv_nocancel()
1425 wakeup((caddr_t)msqptr); in msgrcv_nocancel()
1460 wakeup((caddr_t)msqptr); in msgrcv_nocancel()
1472 wakeup((caddr_t)msqptr); in msgrcv_nocancel()