Lines Matching defs:trw_data
45 fmd_tracebuf_t trw_data;
99 (void) mdb_vread(&t->trw_data,
100 sizeof (t->trw_data), (uintptr_t)thr.thr_trdata);
102 if (t->trw_data.tb_recs == 0)
105 len = t->trw_data.tb_recs * t->trw_data.tb_size;
109 t->trw_base = (uintptr_t)t->trw_data.tb_buf;
116 end_off = (uintptr_t)t->trw_data.tb_end - t->trw_base;
117 ptr_off = (uintptr_t)t->trw_data.tb_ptr - t->trw_base;
119 t->trw_data.tb_buf = buf;
120 t->trw_data.tb_end = (void *)((uintptr_t)buf + end_off);
121 t->trw_data.tb_ptr = (void *)((uintptr_t)buf + ptr_off);
123 if (t->trw_data.tb_ptr < t->trw_data.tb_buf ||
124 t->trw_data.tb_ptr > t->trw_data.tb_end) {
127 t->trw_data.tb_ptr = t->trw_data.tb_buf;
130 t->trw_stop = t->trw_data.tb_ptr;
132 t->trw_data.tb_size + sizeof (uintptr_t), UM_SLEEP);
142 return (t->trw_data.tb_ptr);
144 if (t->trw_data.tb_ptr == t->trw_data.tb_buf)
145 t->trw_data.tb_ptr = t->trw_data.tb_end;
147 t->trw_data.tb_ptr = (fmd_tracerec_t *)
148 ((uintptr_t)t->trw_data.tb_ptr - t->trw_data.tb_size);
150 if (t->trw_data.tb_ptr == t->trw_stop)
153 return (t->trw_data.tb_ptr);
165 for (trp = t->trw_data.tb_ptr; t->trw_stop != NULL &&
182 trp = t->trw_data.tb_ptr;
184 bcopy(trp, t->trw_xrec, t->trw_data.tb_size);
185 t->trw_xrec->tr_depth = MIN(trp->tr_depth, t->trw_data.tb_frames);
189 t->trw_data.tb_buf + t->trw_base, t->trw_xrec, wsp->walk_cbdata);
202 mdb_free(t->trw_data.tb_buf,
203 t->trw_data.tb_recs * t->trw_data.tb_size);
204 mdb_free(t->trw_xrec, t->trw_data.tb_size + sizeof (uintptr_t));