Lines Matching defs:semid

81 static int semvalid(int semid, struct semid_kernel *semakptr);
94 int semid, int semseq, int semnum, int adjval);
95 static void semundo_clear(int semid, int semnum);
130 int un_id; /* semid */
278 mtx_init(&sema_mtx[i], "semid", NULL, MTX_DEF);
401 semundo_adjust(struct thread *td, struct sem_undo **supptr, int semid,
437 if (sunptr->un_id != semid || sunptr->un_num != semnum)
465 sunptr->un_id = semid;
474 semundo_clear(int semid, int semnum)
484 if (sunptr->un_id != semid)
502 semvalid(int semid, struct semid_kernel *semakptr)
506 semakptr->u.sem_perm.seq != IPCID_TO_SEQ(semid) ? EINVAL : 0);
514 int semid;
561 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,
579 kern_semctl(struct thread *td, int semid, int semnum, int cmd,
592 semid, semnum, cmd, arg));
601 * For this command we assume semid is an array index
604 if (semid < 0 || semid >= seminfo.semmni)
606 semakptr = &sema[semid];
607 sema_mtxp = &sema_mtx[semid];
621 *rval = IXSEQ_TO_IPCID(semid, semakptr->u.sem_perm);
626 semidx = IPCID_TO_IX(semid);
646 if ((error = semvalid(semid, semakptr)) != 0)
681 if ((error = semvalid(semid, semakptr)) != 0)
694 if ((error = semvalid(semid, semakptr)) != 0)
702 if ((error = semvalid(semid, semakptr)) != 0)
714 if ((error = semvalid(semid, semakptr)) != 0)
726 if ((error = semvalid(semid, semakptr)) != 0)
762 if ((error = semvalid(semid, semakptr)) != 0)
775 if ((error = semvalid(semid, semakptr)) != 0)
787 if ((error = semvalid(semid, semakptr)) != 0)
818 if ((error = semvalid(semid, semakptr)) != 0)
861 int semid, error = 0;
873 for (semid = 0; semid < seminfo.semmni; semid++) {
874 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) &&
875 sema[semid].u.sem_perm.key == key)
878 if (semid < seminfo.semmni) {
880 if ((error = ipcperm(td, &sema[semid].u.sem_perm,
884 if (nsems > 0 && sema[semid].u.sem_nsems < nsems) {
895 error = mac_sysvsem_check_semget(cred, &sema[semid]);
918 for (semid = 0; semid < seminfo.semmni; semid++) {
919 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0)
922 if (semid == seminfo.semmni) {
938 DPRINTF(("semid %d is available\n", semid));
939 mtx_lock(&sema_mtx[semid]);
940 KASSERT((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0,
941 ("Lost semaphore %d", semid));
942 sema[semid].u.sem_perm.key = key;
943 sema[semid].u.sem_perm.cuid = cred->cr_uid;
944 sema[semid].u.sem_perm.uid = cred->cr_uid;
945 sema[semid].u.sem_perm.cgid = cred->cr_gid;
946 sema[semid].u.sem_perm.gid = cred->cr_gid;
947 sema[semid].u.sem_perm.mode = (semflg & 0777) | SEM_ALLOC;
948 sema[semid].cred = crhold(cred);
949 sema[semid].u.sem_perm.seq =
950 (sema[semid].u.sem_perm.seq + 1) & 0x7fff;
951 sema[semid].u.sem_nsems = nsems;
952 sema[semid].u.sem_otime = 0;
953 sema[semid].u.sem_ctime = time_second;
954 sema[semid].u.sem_base = &sem[semtot];
956 bzero(sema[semid].u.sem_base,
957 sizeof(sema[semid].u.sem_base[0])*nsems);
959 mac_sysvsem_create(cred, &sema[semid]);
961 mtx_unlock(&sema_mtx[semid]);
963 sema[semid].u.sem_base, &sem[semtot]));
971 td->td_retval[0] = IXSEQ_TO_IPCID(semid, sema[semid].u.sem_perm);
979 int semid;
989 int semid = uap->semid;
1005 DPRINTF(("call to semop(%d, %p, %u)\n", semid, sops, nsops));
1010 semid = IPCID_TO_IX(semid); /* Convert back to zero origin */
1012 if (semid < 0 || semid >= seminfo.semmni)
1045 semakptr = &sema[semid];
1046 sema_mtxp = &sema_mtx[semid];
1053 if (seq != IPCID_TO_SEQ(uap->semid)) {
1179 seq != IPCID_TO_SEQ(uap->semid)) {
1231 error = semundo_adjust(td, &suptr, semid, seq,
1252 if (semundo_adjust(td, &suptr, semid, seq,
1304 int semid, semnum, adjval, ix;
1331 semid = suptr->un_ent[ix].un_id;
1335 semakptr = &sema[semid];
1336 sema_mtxp = &sema_mtx[semid];
1426 int semid;
1480 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,
1576 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,
1648 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,