Lines Matching refs:semid

83 static int semvalid(int semid, struct prison *rpr,
105 int semid, int semseq, int semnum, int adjval);
106 static void semundo_clear(int semid, int semnum);
142 int un_id; /* semid */
291 mtx_init(&sema_mtx[i], "semid", NULL, MTX_DEF);
439 semundo_adjust(struct thread *td, struct sem_undo **supptr, int semid,
475 if (sunptr->un_id != semid || sunptr->un_num != semnum)
503 sunptr->un_id = semid;
512 semundo_clear(int semid, int semnum)
522 if (sunptr->un_id != semid)
540 semvalid(int semid, struct prison *rpr, struct semid_kernel *semakptr)
544 semakptr->u.sem_perm.seq != IPCID_TO_SEQ(semid) ||
622 int semid;
669 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,
687 kern_semctl(struct thread *td, int semid, int semnum, int cmd,
701 semid, semnum, cmd, arg));
712 * For this command we assume semid is an array index
715 if (semid < 0 || semid >= seminfo.semmni)
717 semakptr = &sema[semid];
718 sema_mtxp = &sema_mtx[semid];
736 *rval = IXSEQ_TO_IPCID(semid, semakptr->u.sem_perm);
741 semidx = IPCID_TO_IX(semid);
762 if ((error = semvalid(semid, rpr, semakptr)) != 0)
770 if ((error = semvalid(semid, rpr, semakptr)) != 0)
783 if ((error = semvalid(semid, rpr, semakptr)) != 0)
793 if ((error = semvalid(semid, rpr, semakptr)) != 0)
805 if ((error = semvalid(semid, rpr, semakptr)) != 0)
817 if ((error = semvalid(semid, rpr, semakptr)) != 0)
853 if ((error = semvalid(semid, rpr, semakptr)) != 0)
866 if ((error = semvalid(semid, rpr, semakptr)) != 0)
878 if ((error = semvalid(semid, rpr, semakptr)) != 0)
909 if ((error = semvalid(semid, rpr, semakptr)) != 0)
952 int semid, error = 0;
965 for (semid = 0; semid < seminfo.semmni; semid++) {
966 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) &&
967 sema[semid].cred != NULL &&
968 sema[semid].cred->cr_prison == cred->cr_prison &&
969 sema[semid].u.sem_perm.key == key)
972 if (semid < seminfo.semmni) {
979 if ((error = ipcperm(td, &sema[semid].u.sem_perm,
983 if (nsems > 0 && sema[semid].u.sem_nsems < nsems) {
989 error = mac_sysvsem_check_semget(cred, &sema[semid]);
1012 for (semid = 0; semid < seminfo.semmni; semid++) {
1013 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0)
1016 if (semid == seminfo.semmni) {
1032 DPRINTF(("semid %d is available\n", semid));
1033 mtx_lock(&sema_mtx[semid]);
1034 KASSERT((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0,
1035 ("Lost semaphore %d", semid));
1036 sema[semid].u.sem_perm.key = key;
1037 sema[semid].u.sem_perm.cuid = cred->cr_uid;
1038 sema[semid].u.sem_perm.uid = cred->cr_uid;
1039 sema[semid].u.sem_perm.cgid = cred->cr_gid;
1040 sema[semid].u.sem_perm.gid = cred->cr_gid;
1041 sema[semid].u.sem_perm.mode = (semflg & 0777) | SEM_ALLOC;
1042 sema[semid].cred = crhold(cred);
1043 sema[semid].u.sem_perm.seq =
1044 (sema[semid].u.sem_perm.seq + 1) & 0x7fff;
1045 sema[semid].u.sem_nsems = nsems;
1046 sema[semid].u.sem_otime = 0;
1047 sema[semid].u.sem_ctime = time_second;
1048 sema[semid].u.sem_base = &sem[semtot];
1050 bzero(sema[semid].u.sem_base,
1051 sizeof(sema[semid].u.sem_base[0])*nsems);
1053 mac_sysvsem_create(cred, &sema[semid]);
1055 mtx_unlock(&sema_mtx[semid]);
1057 sema[semid].u.sem_base, &sem[semtot]));
1065 td->td_retval[0] = IXSEQ_TO_IPCID(semid, sema[semid].u.sem_perm);
1073 int semid;
1083 int semid = uap->semid;
1100 DPRINTF(("call to semop(%d, %p, %u)\n", semid, sops, nsops));
1106 semid = IPCID_TO_IX(semid); /* Convert back to zero origin */
1108 if (semid < 0 || semid >= seminfo.semmni)
1141 semakptr = &sema[semid];
1142 sema_mtxp = &sema_mtx[semid];
1149 if (seq != IPCID_TO_SEQ(uap->semid)) {
1277 seq != IPCID_TO_SEQ(uap->semid)) {
1329 error = semundo_adjust(td, &suptr, semid, seq,
1350 if (semundo_adjust(td, &suptr, semid, seq,
1402 int semid, semnum, adjval, ix;
1429 semid = suptr->un_ent[ix].un_id;
1433 semakptr = &sema[semid];
1434 sema_mtxp = &sema_mtx[semid];
1739 int semid;
1793 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,
1889 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,
1961 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,