Lines Matching defs:wp

851 	man_work_t	*wp;
876 wp = man_work_alloc(MAN_WORK_CLOSE_CTL, KM_SLEEP);
877 wp->mw_flags = MAN_WFLAGS_CVWAITER;
878 man_work_add(man_bwork_q, wp);
880 while (!(wp->mw_flags & MAN_WFLAGS_DONE)) {
881 cv_wait(&wp->mw_cv, &man_lock);
883 man_work_free(wp);
889 wp = man_work_alloc(MAN_WORK_STOP, KM_SLEEP);
890 wp->mw_flags = MAN_WFLAGS_CVWAITER;
891 man_work_add(man_bwork_q, wp);
893 while (!(wp->mw_flags & MAN_WFLAGS_DONE)) {
894 cv_wait(&wp->mw_cv, &man_lock);
896 man_work_free(wp);
1346 man_work_t *wp;
1376 wp = man_work_alloc(MAN_WORK_OPEN_CTL, KM_SLEEP);
1377 wp->mw_flags |= MAN_WFLAGS_QWAITER;
1378 wp->mw_q = WR(rq);
1384 man_work_add(man_bwork_q, wp);
1385 while (!(wp->mw_flags & MAN_WFLAGS_DONE)) {
1390 status = wp->mw_status;
1391 man_work_free(wp);
1459 man_work_t *wp;
1461 wp = man_work_alloc(MAN_WORK_CLOSE_STREAM, KM_SLEEP);
1462 man_dodetach(close_msp, wp);
1486 man_dodetach(manstr_t *msp, man_work_t *wp)
1540 ASSERT(wp->mw_type == MAN_WORK_CLOSE_STREAM);
1542 wp->mw_arg.a_mdp = mdp;
1543 wp->mw_arg.a_ndests = MAN_MAX_DESTS;
1544 wp->mw_arg.a_pg_id = -1; /* Don't care */
1547 man_work_add(man_bwork_q, wp);
3013 man_work_t *wp;
3029 wp = man_work_alloc(MAN_WORK_CLOSE_STREAM, KM_NOSLEEP);
3030 if (wp == NULL) {
3034 man_dodetach(msp, wp);
4094 man_work_t *wp;
4104 wp = man_iwork_q->q_work;
4105 man_iwork_q->q_work = wp->mw_next;
4106 wp->mw_next = NULL;
4111 _mw_type[wp->mw_type]));
4115 switch (wp->mw_type) {
4117 (void) man_do_dr_attach(wp);
4127 if (man_do_dr_switch(wp) == 0)
4132 man_do_dr_detach(wp);
4136 if (man_iswitch(wp))
4141 man_do_kstats(wp);
4146 "illegal work type(%d)", wp->mw_type);
4157 wp->mw_flags |= MAN_WFLAGS_DONE;
4159 if (wp->mw_flags & MAN_WFLAGS_CVWAITER)
4160 cv_signal(&wp->mw_cv);
4162 man_work_free(wp);
4171 * He is in cv_wait_sig(wp->mw_cv). We forward the work request on to
4173 * man_iwork, who will cv_signal(wp->mw_cv) man_dr_detach.
4179 man_do_dr_switch(man_work_t *wp)
4189 adp = &wp->mw_arg;
4192 MAN_DBGCALL(MAN_SWITCH, man_print_work(wp));
4235 * DR thread is sleeping on wp->mw_cv. We change the work
4242 wp->mw_type = MAN_WORK_SWITCH;
4243 if (status = man_pg_cmd(&mpath, wp))
4260 wp->mw_status = status;
4274 man_do_dr_attach(man_work_t *wp)
4282 adp = &wp->mw_arg;
4285 MAN_DBGCALL(MAN_SWITCH, man_print_work(wp));
4321 * He is in cv_wait_sig(wp->mw_cv). We remove the path and
4322 * cv_signal(wp->mw_cv) man_dr_detach.
4327 man_do_dr_detach(man_work_t *wp)
4339 adp = &wp->mw_arg;
4342 MAN_DBGCALL(MAN_SWITCH, man_print_work(wp));
4412 wp->mw_status = status;
4430 man_iswitch(man_work_t *wp)
4441 adp = &wp->mw_arg;
4443 if (wp->mw_status != 0) {
4585 wp->mw_type = MAN_WORK_CLOSE;
4586 man_work_add(man_bwork_q, wp);
4907 man_work_t *wp;
4911 wp = man_work_alloc(MAN_WORK_CLOSE, KM_NOSLEEP);
4912 if (wp == NULL) {
4933 man_work_free(wp);
4980 wp->mw_arg.a_mdp = cdp;
4981 wp->mw_arg.a_ndests = close_cnt;
4982 man_work_add(man_bwork_q, wp);
5300 man_work_t *wp;
5307 wp = man_work_alloc(MAN_WORK_SWITCH, KM_NOSLEEP);
5308 if (wp == NULL) {
5314 wp = waiter_wp;
5324 man_work_free(wp);
5334 man_work_free(wp);
5342 wp->mw_arg.a_sf_dev = sdp->md_device;
5343 wp->mw_arg.a_st_dev = *st_devp;
5344 wp->mw_arg.a_pg_id = mpg->mpg_pg_id;
5345 wp->mw_arg.a_man_ppa = mpg->mpg_man_ppa;
5347 wp->mw_arg.a_mdp = sdp;
5348 wp->mw_arg.a_ndests = sdp_cnt;
5349 man_work_add(man_bwork_q, wp);
5724 man_work_t *wp;
5750 wp = man_bwork_q->q_work;
5751 man_bwork_q->q_work = wp->mw_next;
5752 wp->mw_next = NULL;
5758 _mw_type[wp->mw_type]));
5760 switch (wp->mw_type) {
5762 wp->mw_status = man_open_ctl();
5771 man_bclose(&wp->mw_arg);
5775 man_bswitch(&wp->mw_arg, wp);
5787 "illegal work type(%d)", wp->mw_type);
5794 wp->mw_flags |= MAN_WFLAGS_DONE;
5795 if (wp->mw_flags & MAN_WFLAGS_CVWAITER)
5796 cv_signal(&wp->mw_cv);
5797 else if (wp->mw_flags & MAN_WFLAGS_QWAITER)
5798 qenable(wp->mw_q);
5800 man_work_free(wp);
6014 man_bswitch(man_adest_t *adp, man_work_t *wp)
6092 wp->mw_status = status;
6095 man_work_add(man_iwork_q, wp);
7006 man_work_t *wp;
7008 wp = man_kzalloc(sizeof (man_work_t), kmflag);
7009 if (wp == NULL)
7012 cv_init(&wp->mw_cv, NULL, CV_DRIVER, NULL); \
7013 wp->mw_type = type;
7016 return (wp);
7022 * wp - ptr to work structure to be freed
7025 man_work_free(man_work_t *wp)
7027 cv_destroy(&wp->mw_cv);
7028 man_kfree((void *)wp, sizeof (man_work_t));
7037 man_work_add(man_workq_t *q, man_work_t *wp)
7045 lp->mw_next = wp;
7048 q->q_work = wp;
7515 man_work_t *wp;
7536 wp = man_work_alloc(MAN_WORK_KSTAT_UPDATE, KM_SLEEP);
7537 wp->mw_arg.a_man_ppa = manp->man_meta_ppa;
7538 wp->mw_flags = MAN_WFLAGS_CVWAITER;
7539 man_work_add(man_iwork_q, wp);
7541 wait_status = cv_reltimedwait_sig(&wp->mw_cv, &man_lock,
7544 if (wp->mw_flags & MAN_WFLAGS_DONE) {
7545 status = wp->mw_status;
7546 man_work_free(wp);
7549 wp->mw_flags &= ~MAN_WFLAGS_CVWAITER;
7589 man_do_kstats(man_work_t *wp)
7602 wp->mw_arg.a_man_ppa);
8255 man_print_work(man_work_t *wp)
8259 cmn_err(CE_CONT, "\twp(0x%p)\n\n", (void *)wp);
8261 if (wp == NULL)
8264 cmn_err(CE_CONT, "\tmw_type: %s\n", _mw_type[wp->mw_type]);
8268 if ((wp->mw_flags >> i) & 0x1)
8273 cmn_err(CE_CONT, "\twp_status: %d\n", wp->mw_status);
8275 cmn_err(CE_CONT, "\twp_arg: 0x%p\n", (void *)&wp->mw_arg);
8277 cmn_err(CE_CONT, "\tmw_next: 0x%p\n", (void *)wp->mw_next);
8279 cmn_err(CE_CONT, "\twp_q: 0x%p", (void *)wp->mw_q);