Lines Matching defs:lwd
62 list_walk_data_t *lwd;
82 lwd = mdb_alloc(sizeof (list_walk_data_t), UM_SLEEP);
84 lwd->lw_size = list.list_size;
85 lwd->lw_offset = list.list_offset;
86 lwd->lw_obj = mdb_alloc(list.list_size, UM_SLEEP);
87 lwd->lw_head = (uintptr_t)&((list_t *)wsp->walk_addr)->list_head;
88 lwd->lw_end = (end == NULL ? NULL : end + lwd->lw_offset);
89 lwd->lw_elem_name = element_name;
90 lwd->lw_elem_check = element_check;
91 lwd->lw_elem_check_arg = arg;
95 : begin + lwd->lw_offset);
96 wsp->walk_data = lwd;
127 list_walk_data_t *lwd = wsp->walk_data;
128 uintptr_t addr = wsp->walk_addr - lwd->lw_offset;
132 if (wsp->walk_addr == lwd->lw_head)
135 if (lwd->lw_end != NULL && wsp->walk_addr == lwd->lw_end)
138 if (mdb_vread(lwd->lw_obj, lwd->lw_size, addr) == -1) {
139 mdb_warn("failed to read %s at %#lx", lwd->lw_elem_name, addr);
143 if (lwd->lw_elem_check != NULL) {
144 int rc = lwd->lw_elem_check(lwd->lw_obj, addr,
145 lwd->lw_elem_check_arg);
152 status = wsp->walk_callback(addr, lwd->lw_obj, wsp->walk_cbdata);
153 node = (list_node_t *)((uintptr_t)lwd->lw_obj + lwd->lw_offset);
162 list_walk_data_t *lwd = wsp->walk_data;
164 mdb_free(lwd->lw_obj, lwd->lw_size);
165 mdb_free(lwd, sizeof (list_walk_data_t));