Lines Matching refs:cw
127 combined_walk_append(combined_walk_data_t *cwd, combined_walk_t *cw)
130 cwd->cwd_current_walk = cwd->cwd_final_walk = cw;
132 cwd->cwd_final_walk->cw_next = cw;
133 cwd->cwd_final_walk = cw;
140 combined_walk_t *cw = cwd->cwd_current_walk;
141 if (cw == NULL) {
144 if (cw == cwd->cwd_final_walk) {
145 cwd->cwd_final_walk = cw->cw_next;
147 cwd->cwd_current_walk = cw->cw_next;
148 cw->cw_next = NULL;
149 return (cw);
159 combined_walk_t *cw;
161 cw = mdb_alloc(sizeof (combined_walk_t), UM_SLEEP);
163 cw->cw_init = walk_init;
164 cw->cw_step = walk_step;
165 cw->cw_fini = walk_fini;
166 cw->cw_next = NULL;
167 cw->cw_data = NULL;
168 cw->cw_initialized = B_FALSE;
170 combined_walk_append(cwd, cw);
177 combined_walk_t *cw = cwd->cwd_current_walk;
180 if (cw == NULL) {
184 if (cw->cw_initialized) {
185 wsp->walk_data = cw->cw_data;
188 status = cw->cw_init(wsp);
189 cw->cw_data = wsp->walk_data;
192 cw->cw_initialized = B_TRUE;
196 combined_walk_data_save(cwd, cw->cw_data);
197 status = cw->cw_step(wsp);
208 if (cw->cw_initialized)
209 cw->cw_fini(wsp);
210 mdb_free(cw, sizeof (combined_walk_t));
221 combined_walk_t *cw;
240 while ((cw = combined_walk_remove_current(cwd)) != NULL) {
241 if (cw->cw_initialized) {
242 wsp->walk_data = cw->cw_data;
243 cw->cw_fini(wsp);
245 mdb_free(cw, sizeof (combined_walk_t));