Lines Matching refs:workp
258 struct kauth_resolver_work *workp) in __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__() argument
266 error = msleep(workp, &kauth_resolver_mtx, PCATCH, "kr_submit", &ts); in __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__()
268 if ((error == 0) && (workp->kr_flags & KAUTH_REQUEST_DONE)) { in __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__()
349 struct kauth_resolver_work *workp, *killp; in kauth_resolver_submit() local
375 workp = kalloc_type(struct kauth_resolver_work, Z_WAITOK | Z_NOFAIL); in kauth_resolver_submit()
377 workp->kr_work = *lkp; in kauth_resolver_submit()
378 workp->kr_extend = extend_data; in kauth_resolver_submit()
379 workp->kr_refs = 1; in kauth_resolver_submit()
380 workp->kr_flags = KAUTH_REQUEST_UNSUBMITTED; in kauth_resolver_submit()
381 workp->kr_result = 0; in kauth_resolver_submit()
388 workp->kr_seqno = workp->kr_work.el_seqno = kauth_resolver_sequence++; in kauth_resolver_submit()
389 workp->kr_work.el_result = KAUTH_EXTLOOKUP_INPROG; in kauth_resolver_submit()
397 TAILQ_INSERT_TAIL(&kauth_resolver_unsubmitted, workp, kr_link); in kauth_resolver_submit()
406 error = __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__(workp); in kauth_resolver_submit()
410 *lkp = workp->kr_work; in kauth_resolver_submit()
419 if (workp->kr_flags & KAUTH_REQUEST_UNSUBMITTED) { in kauth_resolver_submit()
451 if (--workp->kr_refs <= 0) { in kauth_resolver_submit()
453 if (workp->kr_flags & KAUTH_REQUEST_DONE) { in kauth_resolver_submit()
454 TAILQ_REMOVE(&kauth_resolver_done, workp, kr_link); in kauth_resolver_submit()
455 } else if (workp->kr_flags & KAUTH_REQUEST_SUBMITTED) { in kauth_resolver_submit()
456 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link); in kauth_resolver_submit()
457 } else if (workp->kr_flags & KAUTH_REQUEST_UNSUBMITTED) { in kauth_resolver_submit()
458 TAILQ_REMOVE(&kauth_resolver_unsubmitted, workp, kr_link); in kauth_resolver_submit()
470 error = workp->kr_result; in kauth_resolver_submit()
478 kfree_type(struct kauth_resolver_work, workp); in kauth_resolver_submit()
514 struct kauth_resolver_work *workp; in identitysvc() local
539 while ((workp = TAILQ_LAST(&kauth_resolver_submitted, kauth_resolver_submitted_head)) != NULL) { in identitysvc()
540 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link); in identitysvc()
541 workp->kr_flags &= ~KAUTH_REQUEST_SUBMITTED; in identitysvc()
542 workp->kr_flags |= KAUTH_REQUEST_UNSUBMITTED; in identitysvc()
543 TAILQ_INSERT_HEAD(&kauth_resolver_unsubmitted, workp, kr_link); in identitysvc()
740 struct kauth_resolver_work *workp; in kauth_resolver_getwork2() local
748 workp = TAILQ_FIRST(&kauth_resolver_unsubmitted); in kauth_resolver_getwork2()
757 …if ((error = copyout(&workp->kr_work, message, offsetof(struct kauth_identity_extlookup, el_extend… in kauth_resolver_getwork2()
762 if ((error = copyout(&workp->kr_work.el_info_reserved_1, in kauth_resolver_getwork2()
780 if (workp->kr_work.el_flags & (KAUTH_EXTLOOKUP_VALID_PWNAM | KAUTH_EXTLOOKUP_VALID_GRNAM)) { in kauth_resolver_getwork2()
791 error = copyoutstr(CAST_DOWN(void *, workp->kr_extend), uaddr, MAXPATHLEN, &actual); in kauth_resolver_getwork2()
798 TAILQ_REMOVE(&kauth_resolver_unsubmitted, workp, kr_link); in kauth_resolver_getwork2()
799 workp->kr_flags &= ~KAUTH_REQUEST_UNSUBMITTED; in kauth_resolver_getwork2()
800 workp->kr_flags |= KAUTH_REQUEST_SUBMITTED; in kauth_resolver_getwork2()
801 TAILQ_INSERT_TAIL(&kauth_resolver_submitted, workp, kr_link); in kauth_resolver_getwork2()
831 struct kauth_resolver_work *workp; in kauth_resolver_getwork() local
836 while ((workp = TAILQ_FIRST(&kauth_resolver_unsubmitted)) == NULL) { in kauth_resolver_getwork()
872 struct kauth_resolver_work *workp; in kauth_resolver_complete() local
955 TAILQ_FOREACH(workp, &kauth_resolver_submitted, kr_link) { in kauth_resolver_complete()
957 if (workp->kr_seqno == extl.el_seqno) { in kauth_resolver_complete()
961 …want_extend_data = (workp->kr_work.el_flags & (KAUTH_EXTLOOKUP_WANT_PWNAM | KAUTH_EXTLOOKUP_WANT_G… in kauth_resolver_complete()
968 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link); in kauth_resolver_complete()
969 workp->kr_flags &= ~KAUTH_REQUEST_SUBMITTED; in kauth_resolver_complete()
970 workp->kr_flags |= KAUTH_REQUEST_DONE; in kauth_resolver_complete()
971 workp->kr_result = result; in kauth_resolver_complete()
974 memcpy(&workp->kr_work, &extl, sizeof(struct kauth_identity_extlookup)); in kauth_resolver_complete()
1008 error = copyinstr(extl.el_extend, CAST_DOWN(void *, workp->kr_extend), MAXPATHLEN, &actual); in kauth_resolver_complete()
1022 TAILQ_INSERT_TAIL(&kauth_resolver_done, workp, kr_link); in kauth_resolver_complete()
1023 wakeup(workp); in kauth_resolver_complete()