Lines Matching refs:cwd
58 combined_walk_data_t *cwd; in combined_walk_init() local
60 cwd = mdb_alloc(sizeof (combined_walk_data_t), UM_SLEEP); in combined_walk_init()
62 cwd->cwd_initial_walk_addr = wsp->walk_addr; in combined_walk_init()
63 cwd->cwd_current_walk = cwd->cwd_final_walk = NULL; in combined_walk_init()
64 cwd->cwd_next = cwd->cwd_prev = NULL; in combined_walk_init()
65 cwd->cwd_tag = NULL; in combined_walk_init()
66 wsp->walk_data = cwd; in combined_walk_init()
82 combined_walk_data_save(combined_walk_data_t *cwd, void *tag) in combined_walk_data_save() argument
84 cwd->cwd_next = cwd_saved; in combined_walk_data_save()
85 cwd->cwd_prev = NULL; in combined_walk_data_save()
87 cwd_saved->cwd_prev = cwd; in combined_walk_data_save()
89 cwd_saved = cwd; in combined_walk_data_save()
90 cwd->cwd_tag = tag; in combined_walk_data_save()
94 combined_walk_data_drop(combined_walk_data_t *cwd) in combined_walk_data_drop() argument
96 if (cwd->cwd_prev == NULL) { in combined_walk_data_drop()
97 cwd_saved = cwd->cwd_next; in combined_walk_data_drop()
99 cwd->cwd_prev->cwd_next = cwd->cwd_next; in combined_walk_data_drop()
101 if (cwd->cwd_next != NULL) { in combined_walk_data_drop()
102 cwd->cwd_next->cwd_prev = cwd->cwd_prev; in combined_walk_data_drop()
104 cwd->cwd_next = cwd->cwd_prev = NULL; in combined_walk_data_drop()
105 cwd->cwd_tag = NULL; in combined_walk_data_drop()
111 combined_walk_data_t *cwd; in combined_walk_data_find() local
117 for (cwd = cwd_saved; cwd != NULL; cwd = cwd->cwd_next) { in combined_walk_data_find()
118 if (cwd->cwd_tag == tag) { in combined_walk_data_find()
119 return (cwd); in combined_walk_data_find()
127 combined_walk_append(combined_walk_data_t *cwd, combined_walk_t *cw) in combined_walk_append() argument
129 if (cwd->cwd_final_walk == NULL) { in combined_walk_append()
130 cwd->cwd_current_walk = cwd->cwd_final_walk = cw; in combined_walk_append()
132 cwd->cwd_final_walk->cw_next = cw; in combined_walk_append()
133 cwd->cwd_final_walk = cw; in combined_walk_append()
138 combined_walk_remove_current(combined_walk_data_t *cwd) in combined_walk_remove_current() argument
140 combined_walk_t *cw = cwd->cwd_current_walk; in combined_walk_remove_current()
144 if (cw == cwd->cwd_final_walk) { in combined_walk_remove_current()
145 cwd->cwd_final_walk = cw->cw_next; in combined_walk_remove_current()
147 cwd->cwd_current_walk = cw->cw_next; in combined_walk_remove_current()
158 combined_walk_data_t *cwd = wsp->walk_data; in combined_walk_add() local
170 combined_walk_append(cwd, cw); in combined_walk_add()
176 combined_walk_data_t *cwd = wsp->walk_data; in combined_walk_step() local
177 combined_walk_t *cw = cwd->cwd_current_walk; in combined_walk_step()
187 wsp->walk_addr = cwd->cwd_initial_walk_addr; in combined_walk_step()
196 combined_walk_data_save(cwd, cw->cw_data); in combined_walk_step()
199 combined_walk_data_drop(cwd); in combined_walk_step()
203 wsp->walk_data = cwd; in combined_walk_step()
207 (void) combined_walk_remove_current(cwd); in combined_walk_step()
211 wsp->walk_data = cwd; in combined_walk_step()
220 combined_walk_data_t *cwd; in combined_walk_fini() local
229 cwd = combined_walk_data_find(wsp->walk_data); in combined_walk_fini()
230 if (cwd == NULL) { in combined_walk_fini()
235 cwd = wsp->walk_data; in combined_walk_fini()
237 combined_walk_data_drop(cwd); in combined_walk_fini()
240 while ((cw = combined_walk_remove_current(cwd)) != NULL) { in combined_walk_fini()
248 mdb_free(cwd, sizeof (combined_walk_data_t)); in combined_walk_fini()