Lines Matching refs:workp

274 	struct kauth_resolver_work  *workp)  in __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__()  argument
282 error = msleep(workp, &kauth_resolver_mtx, PCATCH, "kr_submit", &ts); in __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__()
284 if ((error == 0) && (workp->kr_flags & KAUTH_REQUEST_DONE)) { in __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__()
365 struct kauth_resolver_work *workp, *killp; in kauth_resolver_submit() local
391 workp = kalloc_type(struct kauth_resolver_work, Z_WAITOK | Z_NOFAIL); in kauth_resolver_submit()
393 workp->kr_work = *lkp; in kauth_resolver_submit()
394 workp->kr_extend = extend_data; in kauth_resolver_submit()
395 workp->kr_refs = 1; in kauth_resolver_submit()
396 workp->kr_flags = KAUTH_REQUEST_UNSUBMITTED; in kauth_resolver_submit()
397 workp->kr_result = 0; in kauth_resolver_submit()
404 workp->kr_seqno = workp->kr_work.el_seqno = kauth_resolver_sequence++; in kauth_resolver_submit()
405 workp->kr_work.el_result = KAUTH_EXTLOOKUP_INPROG; in kauth_resolver_submit()
413 TAILQ_INSERT_TAIL(&kauth_resolver_unsubmitted, workp, kr_link); in kauth_resolver_submit()
422 error = __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__(workp); in kauth_resolver_submit()
426 *lkp = workp->kr_work; in kauth_resolver_submit()
435 if (workp->kr_flags & KAUTH_REQUEST_UNSUBMITTED) { in kauth_resolver_submit()
467 if (--workp->kr_refs <= 0) { in kauth_resolver_submit()
469 if (workp->kr_flags & KAUTH_REQUEST_DONE) { in kauth_resolver_submit()
470 TAILQ_REMOVE(&kauth_resolver_done, workp, kr_link); in kauth_resolver_submit()
471 } else if (workp->kr_flags & KAUTH_REQUEST_SUBMITTED) { in kauth_resolver_submit()
472 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link); in kauth_resolver_submit()
473 } else if (workp->kr_flags & KAUTH_REQUEST_UNSUBMITTED) { in kauth_resolver_submit()
474 TAILQ_REMOVE(&kauth_resolver_unsubmitted, workp, kr_link); in kauth_resolver_submit()
486 error = workp->kr_result; in kauth_resolver_submit()
494 kfree_type(struct kauth_resolver_work, workp); in kauth_resolver_submit()
530 struct kauth_resolver_work *workp; in identitysvc() local
555 while ((workp = TAILQ_LAST(&kauth_resolver_submitted, kauth_resolver_submitted_head)) != NULL) { in identitysvc()
556 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link); in identitysvc()
557 workp->kr_flags &= ~KAUTH_REQUEST_SUBMITTED; in identitysvc()
558 workp->kr_flags |= KAUTH_REQUEST_UNSUBMITTED; in identitysvc()
559 TAILQ_INSERT_HEAD(&kauth_resolver_unsubmitted, workp, kr_link); in identitysvc()
756 struct kauth_resolver_work *workp; in kauth_resolver_getwork2() local
764 workp = TAILQ_FIRST(&kauth_resolver_unsubmitted); in kauth_resolver_getwork2()
773 …if ((error = copyout(&workp->kr_work, message, offsetof(struct kauth_identity_extlookup, el_extend… in kauth_resolver_getwork2()
778 if ((error = copyout(&workp->kr_work.el_info_reserved_1, in kauth_resolver_getwork2()
796 if (workp->kr_work.el_flags & (KAUTH_EXTLOOKUP_VALID_PWNAM | KAUTH_EXTLOOKUP_VALID_GRNAM)) { in kauth_resolver_getwork2()
807 error = copyoutstr(CAST_DOWN(void *, workp->kr_extend), uaddr, MAXPATHLEN, &actual); in kauth_resolver_getwork2()
814 TAILQ_REMOVE(&kauth_resolver_unsubmitted, workp, kr_link); in kauth_resolver_getwork2()
815 workp->kr_flags &= ~KAUTH_REQUEST_UNSUBMITTED; in kauth_resolver_getwork2()
816 workp->kr_flags |= KAUTH_REQUEST_SUBMITTED; in kauth_resolver_getwork2()
817 TAILQ_INSERT_TAIL(&kauth_resolver_submitted, workp, kr_link); in kauth_resolver_getwork2()
847 struct kauth_resolver_work *workp; in kauth_resolver_getwork() local
852 while ((workp = TAILQ_FIRST(&kauth_resolver_unsubmitted)) == NULL) { in kauth_resolver_getwork()
888 struct kauth_resolver_work *workp; in kauth_resolver_complete() local
971 TAILQ_FOREACH(workp, &kauth_resolver_submitted, kr_link) { in kauth_resolver_complete()
973 if (workp->kr_seqno == extl.el_seqno) { in kauth_resolver_complete()
977 …want_extend_data = (workp->kr_work.el_flags & (KAUTH_EXTLOOKUP_WANT_PWNAM | KAUTH_EXTLOOKUP_WANT_G… in kauth_resolver_complete()
984 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link); in kauth_resolver_complete()
985 workp->kr_flags &= ~KAUTH_REQUEST_SUBMITTED; in kauth_resolver_complete()
986 workp->kr_flags |= KAUTH_REQUEST_DONE; in kauth_resolver_complete()
987 workp->kr_result = result; in kauth_resolver_complete()
990 memcpy(&workp->kr_work, &extl, sizeof(struct kauth_identity_extlookup)); in kauth_resolver_complete()
1024 error = copyinstr(extl.el_extend, CAST_DOWN(void *, workp->kr_extend), MAXPATHLEN, &actual); in kauth_resolver_complete()
1038 TAILQ_INSERT_TAIL(&kauth_resolver_done, workp, kr_link); in kauth_resolver_complete()
1039 wakeup(workp); in kauth_resolver_complete()