Lines Matching defs:pinfo

142 	struct pseminfo *pinfo;
164 static int psem_access(struct pseminfo *pinfo, int mode, kauth_cred_t cred);
167 static int psem_delete(struct pseminfo * pinfo);
356 struct pseminfo *pinfo;
376 pinfo = PSEMINFO_NULL;
491 error = psem_cache_search(&pinfo, &nd, &pcache);
508 if (pinfo->psem_flags & PSEM_INDELETE) {
511 AUDIT_ARG(posix_ipc_perm, pinfo->psem_uid,
512 pinfo->psem_gid, pinfo->psem_mode);
523 pinfo = new_pinfo;
524 pinfo->psem_flags = PSEM_DEFINED | PSEM_INCREATE;
525 pinfo->psem_usecount = 1;
526 pinfo->psem_mode = cmode;
527 pinfo->psem_uid = kauth_getuid();
528 pinfo->psem_gid = kauth_getgid();
529 bcopy(pnbuf, &pinfo->psem_name[0], PSEMNAMLEN);
530 pinfo->psem_name[PSEMNAMLEN]= 0;
531 pinfo->psem_flags &= ~PSEM_DEFINED;
532 pinfo->psem_flags |= PSEM_ALLOCATED;
533 pinfo->sem_proc = p;
540 mac_posixsem_label_associate(kauth_cred_get(), pinfo, nameptr);
548 if( pinfo->psem_flags & PSEM_INDELETE) {
552 AUDIT_ARG(posix_ipc_perm, pinfo->psem_uid,
553 pinfo->psem_gid, pinfo->psem_mode);
555 error = mac_posixsem_check_open(kauth_cred_get(), pinfo);
560 if ( (error = psem_access(pinfo, fmode, kauth_cred_get())) ) {
567 if ( (error = psem_cache_add(pinfo, &nd, pcp)) ) {
571 pinfo->psem_flags &= ~PSEM_INCREATE;
572 pinfo->psem_usecount++;
573 new_pnode->pinfo = pinfo;
644 psem_access(struct pseminfo *pinfo, int mode, kauth_cred_t cred)
653 return(posix_cred_access(cred, pinfo->psem_uid, pinfo->psem_gid, pinfo->psem_mode, mode_req));
662 struct pseminfo *pinfo;
670 pinfo = PSEMINFO_NULL;
713 error = psem_cache_search(&pinfo, &nd, &pcache);
728 error = mac_posixsem_check_unlink(kauth_cred_get(), pinfo, nameptr);
734 if ( (error = psem_access(pinfo, pinfo->psem_mode, kauth_cred_get())) ) {
739 if ((pinfo->psem_flags & (PSEM_DEFINED | PSEM_ALLOCATED))==0) {
745 if ( (pinfo->psem_flags & PSEM_INDELETE) ) {
751 AUDIT_ARG(posix_ipc_perm, pinfo->psem_uid, pinfo->psem_gid,
752 pinfo->psem_mode);
754 pinfo->psem_flags |= PSEM_INDELETE;
755 pinfo->psem_usecount--;
757 if (!pinfo->psem_usecount) {
758 psem_delete(pinfo);
759 FREE(pinfo,M_SHM);
761 pinfo->psem_flags |= PSEM_REMOVED;
808 struct pseminfo * pinfo;
821 if ((pinfo = pnode->pinfo) == PSEMINFO_NULL) {
826 if ((pinfo->psem_flags & (PSEM_DEFINED | PSEM_ALLOCATED))
833 error = mac_posixsem_check_wait(kauth_cred_get(), pinfo);
840 kret = semaphore_wait(pinfo->psem_semobject);
868 struct pseminfo * pinfo;
882 if ((pinfo = pnode->pinfo) == PSEMINFO_NULL) {
887 if ((pinfo->psem_flags & (PSEM_DEFINED | PSEM_ALLOCATED))
894 error = mac_posixsem_check_wait(kauth_cred_get(), pinfo);
904 kret = semaphore_timedwait(pinfo->psem_semobject, MACH_TIMESPEC_ZERO);
933 struct pseminfo * pinfo;
946 if ((pinfo = pnode->pinfo) == PSEMINFO_NULL) {
951 if ((pinfo->psem_flags & (PSEM_DEFINED | PSEM_ALLOCATED))
958 error = mac_posixsem_check_post(kauth_cred_get(), pinfo);
965 kret = semaphore_signal(pinfo->psem_semobject);
1009 struct pseminfo *pinfo;
1012 if ((pinfo = pnode->pinfo) == PSEMINFO_NULL){
1017 if ((pinfo->psem_flags & PSEM_ALLOCATED) != PSEM_ALLOCATED) {
1022 if(!pinfo->psem_usecount) {
1026 pinfo->psem_usecount--;
1028 if ((pinfo->psem_flags & PSEM_REMOVED) && !pinfo->psem_usecount) {
1031 error = psem_delete(pinfo);
1032 FREE(pinfo,M_SHM);
1056 psem_delete(struct pseminfo * pinfo)
1060 kret = semaphore_destroy(kernel_task, pinfo->psem_semobject);
1062 mac_posixsem_label_destroy(pinfo);
1117 struct pseminfo *pinfo;
1121 if ((pinfo = pnode->pinfo) == PSEMINFO_NULL){
1127 if ((pinfo->psem_flags & PSEM_ALLOCATED) != PSEM_ALLOCATED) {
1136 sb->vst_mode = pinfo->psem_mode;
1137 sb->vst_uid = pinfo->psem_uid;
1138 sb->vst_gid = pinfo->psem_gid;
1139 sb->vst_size = pinfo->psem_usecount;
1140 bcopy(&pinfo->psem_name[0], &info->psem_name[0], PSEMNAMLEN+1);
1156 psem = pnode->pinfo;