Lines Matching refs:workp

257 	struct kauth_resolver_work  *workp)  in __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__()  argument
265 error = msleep(workp, &kauth_resolver_mtx, PCATCH, "kr_submit", &ts); in __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__()
267 if ((error == 0) && (workp->kr_flags & KAUTH_REQUEST_DONE)) { in __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__()
348 struct kauth_resolver_work *workp, *killp; in kauth_resolver_submit() local
374 workp = kalloc_type(struct kauth_resolver_work, Z_WAITOK | Z_NOFAIL); in kauth_resolver_submit()
376 workp->kr_work = *lkp; in kauth_resolver_submit()
377 workp->kr_extend = extend_data; in kauth_resolver_submit()
378 workp->kr_refs = 1; in kauth_resolver_submit()
379 workp->kr_flags = KAUTH_REQUEST_UNSUBMITTED; in kauth_resolver_submit()
380 workp->kr_result = 0; in kauth_resolver_submit()
387 workp->kr_seqno = workp->kr_work.el_seqno = kauth_resolver_sequence++; in kauth_resolver_submit()
388 workp->kr_work.el_result = KAUTH_EXTLOOKUP_INPROG; in kauth_resolver_submit()
396 TAILQ_INSERT_TAIL(&kauth_resolver_unsubmitted, workp, kr_link); in kauth_resolver_submit()
405 error = __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__(workp); in kauth_resolver_submit()
409 *lkp = workp->kr_work; in kauth_resolver_submit()
418 if (workp->kr_flags & KAUTH_REQUEST_UNSUBMITTED) { in kauth_resolver_submit()
450 if (--workp->kr_refs <= 0) { in kauth_resolver_submit()
452 if (workp->kr_flags & KAUTH_REQUEST_DONE) { in kauth_resolver_submit()
453 TAILQ_REMOVE(&kauth_resolver_done, workp, kr_link); in kauth_resolver_submit()
454 } else if (workp->kr_flags & KAUTH_REQUEST_SUBMITTED) { in kauth_resolver_submit()
455 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link); in kauth_resolver_submit()
456 } else if (workp->kr_flags & KAUTH_REQUEST_UNSUBMITTED) { in kauth_resolver_submit()
457 TAILQ_REMOVE(&kauth_resolver_unsubmitted, workp, kr_link); in kauth_resolver_submit()
469 error = workp->kr_result; in kauth_resolver_submit()
477 kfree_type(struct kauth_resolver_work, workp); in kauth_resolver_submit()
513 struct kauth_resolver_work *workp; in identitysvc() local
538 while ((workp = TAILQ_LAST(&kauth_resolver_submitted, kauth_resolver_submitted_head)) != NULL) { in identitysvc()
539 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link); in identitysvc()
540 workp->kr_flags &= ~KAUTH_REQUEST_SUBMITTED; in identitysvc()
541 workp->kr_flags |= KAUTH_REQUEST_UNSUBMITTED; in identitysvc()
542 TAILQ_INSERT_HEAD(&kauth_resolver_unsubmitted, workp, kr_link); in identitysvc()
739 struct kauth_resolver_work *workp; in kauth_resolver_getwork2() local
747 workp = TAILQ_FIRST(&kauth_resolver_unsubmitted); in kauth_resolver_getwork2()
756 …if ((error = copyout(&workp->kr_work, message, offsetof(struct kauth_identity_extlookup, el_extend… in kauth_resolver_getwork2()
761 if ((error = copyout(&workp->kr_work.el_info_reserved_1, in kauth_resolver_getwork2()
779 if (workp->kr_work.el_flags & (KAUTH_EXTLOOKUP_VALID_PWNAM | KAUTH_EXTLOOKUP_VALID_GRNAM)) { in kauth_resolver_getwork2()
790 error = copyoutstr(CAST_DOWN(void *, workp->kr_extend), uaddr, MAXPATHLEN, &actual); in kauth_resolver_getwork2()
797 TAILQ_REMOVE(&kauth_resolver_unsubmitted, workp, kr_link); in kauth_resolver_getwork2()
798 workp->kr_flags &= ~KAUTH_REQUEST_UNSUBMITTED; in kauth_resolver_getwork2()
799 workp->kr_flags |= KAUTH_REQUEST_SUBMITTED; in kauth_resolver_getwork2()
800 TAILQ_INSERT_TAIL(&kauth_resolver_submitted, workp, kr_link); in kauth_resolver_getwork2()
830 struct kauth_resolver_work *workp; in kauth_resolver_getwork() local
835 while ((workp = TAILQ_FIRST(&kauth_resolver_unsubmitted)) == NULL) { in kauth_resolver_getwork()
871 struct kauth_resolver_work *workp; in kauth_resolver_complete() local
954 TAILQ_FOREACH(workp, &kauth_resolver_submitted, kr_link) { in kauth_resolver_complete()
956 if (workp->kr_seqno == extl.el_seqno) { in kauth_resolver_complete()
960 …want_extend_data = (workp->kr_work.el_flags & (KAUTH_EXTLOOKUP_WANT_PWNAM | KAUTH_EXTLOOKUP_WANT_G… in kauth_resolver_complete()
967 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link); in kauth_resolver_complete()
968 workp->kr_flags &= ~KAUTH_REQUEST_SUBMITTED; in kauth_resolver_complete()
969 workp->kr_flags |= KAUTH_REQUEST_DONE; in kauth_resolver_complete()
970 workp->kr_result = result; in kauth_resolver_complete()
973 memcpy(&workp->kr_work, &extl, sizeof(struct kauth_identity_extlookup)); in kauth_resolver_complete()
1007 error = copyinstr(extl.el_extend, CAST_DOWN(void *, workp->kr_extend), MAXPATHLEN, &actual); in kauth_resolver_complete()
1021 TAILQ_INSERT_TAIL(&kauth_resolver_done, workp, kr_link); in kauth_resolver_complete()
1022 wakeup(workp); in kauth_resolver_complete()