Lines Matching defs:sema

110 static struct semid_kernel *sema;	/* semaphore id pool */
222 SYSCTL_PROC(_kern_ipc, OID_AUTO, sema,
284 sema = malloc(sizeof(struct semid_kernel) * seminfo.semmni, M_SEM,
291 sema[i].u.sem_base = 0;
292 sema[i].u.sem_perm.mode = 0;
293 sema[i].u.sem_perm.seq = 0;
295 mac_sysvsem_init(&sema[i]);
364 mac_sysvsem_destroy(&sema[i]);
367 free(sema, M_SEM);
564 semakptr = &sema[semidx];
579 if ((sema[i].u.sem_perm.mode & SEM_ALLOC) &&
580 sema[i].u.sem_base > semakptr->u.sem_base)
586 if ((sema[i].u.sem_perm.mode & SEM_ALLOC) &&
587 sema[i].u.sem_base > semakptr->u.sem_base) {
588 sema[i].u.sem_base -= semakptr->u.sem_nsems;
718 semakptr = &sema[semid];
746 semakptr = &sema[semidx];
967 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) &&
968 sema[semid].cred != NULL &&
969 sema[semid].cred->cr_prison == cred->cr_prison &&
970 sema[semid].u.sem_perm.key == key)
980 if ((error = ipcperm(td, &sema[semid].u.sem_perm,
984 if (nsems > 0 && sema[semid].u.sem_nsems < nsems) {
990 error = mac_sysvsem_check_semget(cred, &sema[semid]);
1014 if ((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0)
1035 KASSERT((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0,
1037 sema[semid].u.sem_perm.key = key;
1038 sema[semid].u.sem_perm.cuid = cred->cr_uid;
1039 sema[semid].u.sem_perm.uid = cred->cr_uid;
1040 sema[semid].u.sem_perm.cgid = cred->cr_gid;
1041 sema[semid].u.sem_perm.gid = cred->cr_gid;
1042 sema[semid].u.sem_perm.mode = (semflg & 0777) | SEM_ALLOC;
1043 sema[semid].cred = crhold(cred);
1044 sema[semid].u.sem_perm.seq =
1045 (sema[semid].u.sem_perm.seq + 1) & 0x7fff;
1046 sema[semid].u.sem_nsems = nsems;
1047 sema[semid].u.sem_otime = 0;
1048 sema[semid].u.sem_ctime = time_second;
1049 sema[semid].u.sem_base = &sem[semtot];
1051 bzero(sema[semid].u.sem_base,
1052 sizeof(sema[semid].u.sem_base[0])*nsems);
1054 mac_sysvsem_create(cred, &sema[semid]);
1058 sema[semid].u.sem_base, &sem[semtot]));
1066 td->td_retval[0] = IXSEQ_TO_IPCID(semid, sema[semid].u.sem_perm);
1142 semakptr = &sema[semid];
1434 semakptr = &sema[semid];
1488 if ((sema[i].u.sem_perm.mode & SEM_ALLOC) == 0 ||
1489 rpr == NULL || sem_prison_cansee(rpr, &sema[i]) != 0)
1492 tsemak = sema[i];
1668 if ((sema[i].u.sem_perm.mode & SEM_ALLOC) &&
1669 sema[i].cred != NULL && sema[i].cred->cr_prison == pr) {