Lines Matching refs:sema

117 static struct semid_kernel *sema;	/* semaphore id pool */  variable
229 SYSCTL_PROC(_kern_ipc, OID_AUTO, sema,
281 sema = malloc(sizeof(struct semid_kernel) * seminfo.semmni, M_SEM, in seminit()
289 sema[i].u.__sem_base = 0; in seminit()
290 sema[i].u.sem_perm.mode = 0; in seminit()
291 sema[i].u.sem_perm.seq = 0; in seminit()
293 mac_sysvsem_init(&sema[i]); in seminit()
362 mac_sysvsem_destroy(&sema[i]); in semunload()
365 free(sema, M_SEM); in semunload()
561 semakptr = &sema[semidx]; in sem_remove()
581 if ((sema[i].u.sem_perm.mode & SEM_ALLOC) && in sem_remove()
582 sema[i].u.__sem_base > semakptr->u.__sem_base) in sem_remove()
589 if ((sema[i].u.sem_perm.mode & SEM_ALLOC) && in sem_remove()
590 sema[i].u.__sem_base > semakptr->u.__sem_base) { in sem_remove()
591 sema[i].u.__sem_base -= semakptr->u.sem_nsems; in sem_remove()
724 semakptr = &sema[semid]; in kern_semctl()
752 semakptr = &sema[semidx]; in kern_semctl()
983 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) && in sys_semget()
984 sema[semid].cred != NULL && in sys_semget()
985 sema[semid].cred->cr_prison == cred->cr_prison && in sys_semget()
986 sema[semid].u.sem_perm.key == key) in sys_semget()
997 if ((error = ipcperm(td, &sema[semid].u.sem_perm, in sys_semget()
1001 if (nsems > 0 && sema[semid].u.sem_nsems < nsems) { in sys_semget()
1007 error = mac_sysvsem_check_semget(cred, &sema[semid]); in sys_semget()
1031 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0) in sys_semget()
1052 KASSERT((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0, in sys_semget()
1054 sema[semid].u.sem_perm.key = key; in sys_semget()
1055 sema[semid].u.sem_perm.cuid = cred->cr_uid; in sys_semget()
1056 sema[semid].u.sem_perm.uid = cred->cr_uid; in sys_semget()
1057 sema[semid].u.sem_perm.cgid = cred->cr_gid; in sys_semget()
1058 sema[semid].u.sem_perm.gid = cred->cr_gid; in sys_semget()
1059 sema[semid].u.sem_perm.mode = (semflg & 0777) | SEM_ALLOC; in sys_semget()
1060 sema[semid].cred = crhold(cred); in sys_semget()
1061 sema[semid].u.sem_perm.seq = in sys_semget()
1062 (sema[semid].u.sem_perm.seq + 1) & 0x7fff; in sys_semget()
1063 sema[semid].u.sem_nsems = nsems; in sys_semget()
1064 sema[semid].u.sem_otime = 0; in sys_semget()
1065 sema[semid].u.sem_ctime = time_second; in sys_semget()
1066 sema[semid].u.__sem_base = &sem[semtot]; in sys_semget()
1068 bzero(sema[semid].u.__sem_base, in sys_semget()
1069 sizeof(sema[semid].u.__sem_base[0])*nsems); in sys_semget()
1071 mac_sysvsem_create(cred, &sema[semid]); in sys_semget()
1075 sema[semid].u.__sem_base, &sem[semtot])); in sys_semget()
1083 td->td_retval[0] = IXSEQ_TO_IPCID(semid, sema[semid].u.sem_perm); in sys_semget()
1186 semakptr = &sema[semid]; in kern_semop()
1481 semakptr = &sema[semid]; in semexit_myhook()
1540 if ((sema[i].u.sem_perm.mode & SEM_ALLOC) == 0 || in sysctl_sema()
1541 rpr == NULL || sem_prison_cansee(rpr, &sema[i]) != 0) in sysctl_sema()
1544 tsemak = sema[i]; in sysctl_sema()
1594 if ((sema[i].u.sem_perm.mode & SEM_ALLOC) == 0 || in kern_get_sema()
1595 rpr == NULL || sem_prison_cansee(rpr, &sema[i]) != 0) in kern_get_sema()
1598 *psemak = sema[i]; in kern_get_sema()
1774 if ((sema[i].u.sem_perm.mode & SEM_ALLOC) && in sem_prison_cleanup()
1775 sema[i].cred != NULL && sema[i].cred->cr_prison == pr) { in sem_prison_cleanup()