Lines Matching refs:workp

298  * Parameters:   workp                     Work queue entry.
309 struct kauth_resolver_work *workp)
317 error = msleep(workp, kauth_resolver_mtx, PCATCH, "kr_submit", &ts);
319 if ((error == 0) && (workp->kr_flags & KAUTH_REQUEST_DONE))
388 * workp->kr_result:??? An error from the user space
412 struct kauth_resolver_work *workp, *killp;
438 MALLOC(workp, struct kauth_resolver_work *, sizeof(*workp), M_KAUTH, M_WAITOK);
439 if (workp == NULL)
442 workp->kr_work = *lkp;
443 workp->kr_extend = extend_data;
444 workp->kr_refs = 1;
445 workp->kr_flags = KAUTH_REQUEST_UNSUBMITTED;
446 workp->kr_result = 0;
453 workp->kr_seqno = workp->kr_work.el_seqno = kauth_resolver_sequence++;
454 workp->kr_work.el_result = KAUTH_EXTLOOKUP_INPROG;
462 TAILQ_INSERT_TAIL(&kauth_resolver_unsubmitted, workp, kr_link);
471 error = __KERNEL_IS_WAITING_ON_EXTERNAL_CREDENTIAL_RESOLVER__(workp);
475 *lkp = workp->kr_work;
483 if (workp->kr_flags & KAUTH_REQUEST_UNSUBMITTED) {
515 if (--workp->kr_refs <= 0) {
517 if (workp->kr_flags & KAUTH_REQUEST_DONE) {
518 TAILQ_REMOVE(&kauth_resolver_done, workp, kr_link);
519 } else if (workp->kr_flags & KAUTH_REQUEST_SUBMITTED) {
520 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link);
521 } else if (workp->kr_flags & KAUTH_REQUEST_UNSUBMITTED) {
522 TAILQ_REMOVE(&kauth_resolver_unsubmitted, workp, kr_link);
534 error = workp->kr_result;
542 FREE(workp, M_KAUTH);
578 struct kauth_resolver_work *workp;
598 while ((workp = TAILQ_LAST(&kauth_resolver_submitted, kauth_resolver_submitted_head)) != NULL) {
599 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link);
600 workp->kr_flags &= ~KAUTH_REQUEST_SUBMITTED;
601 workp->kr_flags |= KAUTH_REQUEST_UNSUBMITTED;
602 TAILQ_INSERT_HEAD(&kauth_resolver_unsubmitted, workp, kr_link);
794 struct kauth_resolver_work *workp;
802 workp = TAILQ_FIRST(&kauth_resolver_unsubmitted);
811 if ((error = copyout(&workp->kr_work, message, offsetof(struct kauth_identity_extlookup, el_extend))) != 0) {
816 if ((error = copyout(&workp->kr_work.el_info_reserved_1,
834 if (workp->kr_work.el_flags & (KAUTH_EXTLOOKUP_VALID_PWNAM | KAUTH_EXTLOOKUP_VALID_GRNAM)) {
845 error = copyoutstr(CAST_DOWN(void *,workp->kr_extend), uaddr, MAXPATHLEN, &actual);
852 TAILQ_REMOVE(&kauth_resolver_unsubmitted, workp, kr_link);
853 workp->kr_flags &= ~KAUTH_REQUEST_UNSUBMITTED;
854 workp->kr_flags |= KAUTH_REQUEST_SUBMITTED;
855 TAILQ_INSERT_TAIL(&kauth_resolver_submitted, workp, kr_link);
885 struct kauth_resolver_work *workp;
890 while ((workp = TAILQ_FIRST(&kauth_resolver_unsubmitted)) == NULL) {
924 struct kauth_resolver_work *workp;
1004 TAILQ_FOREACH(workp, &kauth_resolver_submitted, kr_link) {
1006 if (workp->kr_seqno == extl.el_seqno) {
1013 TAILQ_REMOVE(&kauth_resolver_submitted, workp, kr_link);
1014 workp->kr_flags &= ~KAUTH_REQUEST_SUBMITTED;
1015 workp->kr_flags |= KAUTH_REQUEST_DONE;
1016 workp->kr_result = result;
1019 memcpy(&workp->kr_work, &extl, sizeof(struct kauth_identity_extlookup));
1049 error = copyinstr(extl.el_extend, CAST_DOWN(void *, workp->kr_extend), MAXPATHLEN, &actual);
1057 TAILQ_INSERT_TAIL(&kauth_resolver_done, workp, kr_link);
1058 wakeup(workp);