Lines Matching defs:semid

88 static int semvalid(int semid, struct prison *rpr,
110 int semid, int semseq, int semnum, int adjval);
111 static void semundo_clear(int semid, int semnum);
147 int un_id; /* semid */
296 mtx_init(&sema_mtx[i], "semid", NULL, MTX_DEF);
442 semundo_adjust(struct thread *td, struct sem_undo **supptr, int semid,
478 if (sunptr->un_id != semid || sunptr->un_num != semnum)
506 sunptr->un_id = semid;
515 semundo_clear(int semid, int semnum)
525 if (sunptr->un_id != semid)
543 semvalid(int semid, struct prison *rpr, struct semid_kernel *semakptr)
547 semakptr->u.sem_perm.seq != IPCID_TO_SEQ(semid) ||
625 int semid;
672 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,
690 kern_semctl(struct thread *td, int semid, int semnum, int cmd,
704 semid, semnum, cmd, arg));
707 AUDIT_ARG_SVIPC_ID(semid);
718 * For this command we assume semid is an array index
721 if (semid < 0 || semid >= seminfo.semmni)
723 semakptr = &sema[semid];
724 sema_mtxp = &sema_mtx[semid];
742 *rval = IXSEQ_TO_IPCID(semid, semakptr->u.sem_perm);
747 semidx = IPCID_TO_IX(semid);
768 if ((error = semvalid(semid, rpr, semakptr)) != 0)
777 if ((error = semvalid(semid, rpr, semakptr)) != 0)
790 if ((error = semvalid(semid, rpr, semakptr)) != 0)
807 if ((error = semvalid(semid, rpr, semakptr)) != 0)
819 if ((error = semvalid(semid, rpr, semakptr)) != 0)
831 if ((error = semvalid(semid, rpr, semakptr)) != 0)
867 if ((error = semvalid(semid, rpr, semakptr)) != 0)
880 if ((error = semvalid(semid, rpr, semakptr)) != 0)
892 if ((error = semvalid(semid, rpr, semakptr)) != 0)
923 if ((error = semvalid(semid, rpr, semakptr)) != 0)
966 int semid, error = 0;
981 for (semid = 0; semid < seminfo.semmni; semid++) {
982 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) &&
983 sema[semid].cred != NULL &&
984 sema[semid].cred->cr_prison == cred->cr_prison &&
985 sema[semid].u.sem_perm.key == key)
988 if (semid < seminfo.semmni) {
989 AUDIT_ARG_SVIPC_ID(semid);
996 if ((error = ipcperm(td, &sema[semid].u.sem_perm,
1000 if (nsems > 0 && sema[semid].u.sem_nsems < nsems) {
1006 error = mac_sysvsem_check_semget(cred, &sema[semid]);
1029 for (semid = 0; semid < seminfo.semmni; semid++) {
1030 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0)
1033 if (semid == seminfo.semmni) {
1049 DPRINTF(("semid %d is available\n", semid));
1050 mtx_lock(&sema_mtx[semid]);
1051 KASSERT((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0,
1052 ("Lost semaphore %d", semid));
1053 sema[semid].u.sem_perm.key = key;
1054 sema[semid].u.sem_perm.cuid = cred->cr_uid;
1055 sema[semid].u.sem_perm.uid = cred->cr_uid;
1056 sema[semid].u.sem_perm.cgid = cred->cr_gid;
1057 sema[semid].u.sem_perm.gid = cred->cr_gid;
1058 sema[semid].u.sem_perm.mode = (semflg & 0777) | SEM_ALLOC;
1059 sema[semid].cred = crhold(cred);
1060 sema[semid].u.sem_perm.seq =
1061 (sema[semid].u.sem_perm.seq + 1) & 0x7fff;
1062 sema[semid].u.sem_nsems = nsems;
1063 sema[semid].u.sem_otime = 0;
1064 sema[semid].u.sem_ctime = time_second;
1065 sema[semid].u.__sem_base = &sem[semtot];
1067 bzero(sema[semid].u.__sem_base,
1068 sizeof(sema[semid].u.__sem_base[0])*nsems);
1070 mac_sysvsem_create(cred, &sema[semid]);
1072 mtx_unlock(&sema_mtx[semid]);
1074 sema[semid].u.__sem_base, &sem[semtot]));
1082 td->td_retval[0] = IXSEQ_TO_IPCID(semid, sema[semid].u.sem_perm);
1090 int semid;
1099 return (kern_semop(td, uap->semid, uap->sops, uap->nsops, NULL));
1108 int semid;
1133 semid = IPCID_TO_IX(usemid); /* Convert back to zero origin */
1135 if (semid < 0 || semid >= seminfo.semmni)
1185 semakptr = &sema[semid];
1186 sema_mtxp = &sema_mtx[semid];
1374 error = semundo_adjust(td, &suptr, semid, seq,
1395 if (semundo_adjust(td, &suptr, semid, seq,
1447 int semid, semnum, adjval, ix;
1476 semid = suptr->un_ent[ix].un_id;
1480 semakptr = &sema[semid];
1481 sema_mtxp = &sema_mtx[semid];
1811 int semid;
1865 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,
1962 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,
2034 error = kern_semctl(td, uap->semid, uap->semnum, uap->cmd, &semun,