Lines Matching full:pcb
94 dt_pcb_t *pcb = data; in dt_copyvar() local
102 dvp = &pcb->pcb_difo->dtdo_vartab[pcb->pcb_asvidx++]; in dt_copyvar()
103 stroff = dt_strtab_insert(pcb->pcb_strtab, idp->di_name); in dt_copyvar()
106 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_copyvar()
108 longjmp(pcb->pcb_jmpbuf, EDT_STR2BIG); in dt_copyvar()
131 dt_node_diftype(pcb->pcb_hdl, &dn, &dvp->dtdv_type); in dt_copyvar()
138 dt_copystr(const char *s, size_t n, size_t off, dt_pcb_t *pcb) in dt_copystr() argument
140 bcopy(s, pcb->pcb_difo->dtdo_strtab + off, n); in dt_copystr()
147 * We track the cumulative references to translators and members in the pcb's
152 dt_as_xlate(dt_pcb_t *pcb, dtrace_difo_t *dp, in dt_as_xlate() argument
155 dtrace_hdl_t *dtp = pcb->pcb_hdl; in dt_as_xlate()
167 if (pcb->pcb_asxrefs == NULL) { in dt_as_xlate()
168 pcb->pcb_asxreflen = dtp->dt_xlatorid; in dt_as_xlate()
169 pcb->pcb_asxrefs = in dt_as_xlate()
170 dt_zalloc(dtp, sizeof (ulong_t *) * pcb->pcb_asxreflen); in dt_as_xlate()
171 if (pcb->pcb_asxrefs == NULL) in dt_as_xlate()
172 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as_xlate()
175 if (pcb->pcb_asxrefs[dxp->dx_id] == NULL) { in dt_as_xlate()
176 pcb->pcb_asxrefs[dxp->dx_id] = in dt_as_xlate()
178 if (pcb->pcb_asxrefs[dxp->dx_id] == NULL) in dt_as_xlate()
179 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as_xlate()
185 BT_SET(pcb->pcb_asxrefs[dxp->dx_id], dnp->dn_membid); in dt_as_xlate()
209 dt_as(dt_pcb_t *pcb) in dt_as() argument
211 dtrace_hdl_t *dtp = pcb->pcb_hdl; in dt_as()
212 dt_irlist_t *dlp = &pcb->pcb_ir; in dt_as()
266 assert(pcb->pcb_difo == NULL); in dt_as()
267 pcb->pcb_difo = dt_zalloc(dtp, sizeof (dtrace_difo_t)); in dt_as()
269 if ((dp = pcb->pcb_difo) == NULL) in dt_as()
270 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
275 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
278 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
342 pcb->pcb_asvidx = 0; in dt_as()
351 (void) dt_idhash_iter(pcb->pcb_locals, dt_countvar, &n); in dt_as()
358 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
360 (void) dt_idhash_iter(dtp->dt_tls, dt_copyvar, pcb); in dt_as()
361 (void) dt_idhash_iter(dtp->dt_globals, dt_copyvar, pcb); in dt_as()
362 (void) dt_idhash_iter(pcb->pcb_locals, dt_copyvar, pcb); in dt_as()
375 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
384 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
392 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
400 uint_t knodef = pcb->pcb_cflags & DTRACE_C_KNODEF; in dt_as()
401 uint_t unodef = pcb->pcb_cflags & DTRACE_C_UNODEF; in dt_as()
423 dt_as_xlate(pcb, dp, i - 1, (uint_t) in dt_as()
444 soff = dt_strtab_insert(pcb->pcb_strtab, idp->di_name); in dt_as()
447 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
449 longjmp(pcb->pcb_jmpbuf, EDT_STR2BIG); in dt_as()
468 if ((n = dt_strtab_size(pcb->pcb_strtab)) != 0) { in dt_as()
470 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
472 (void) dt_strtab_write(pcb->pcb_strtab, in dt_as()
473 (dt_strtab_write_f *)dt_copystr, pcb); in dt_as()
481 if ((n = dt_inttab_size(pcb->pcb_inttab)) != 0) { in dt_as()
484 longjmp(pcb->pcb_jmpbuf, EDT_NOMEM); in dt_as()
486 dt_inttab_write(pcb->pcb_inttab, dp->dtdo_inttab); in dt_as()
495 dt_node_diftype(dtp, pcb->pcb_dret, &dp->dtdo_rtype); in dt_as()
496 pcb->pcb_difo = NULL; in dt_as()
497 pcb->pcb_dret = NULL; in dt_as()
499 if (pcb->pcb_cflags & DTRACE_C_DIFV) in dt_as()