Lines Matching defs:pcb
62 dt_pcb_push(dtrace_hdl_t *dtp, dt_pcb_t *pcb)
77 bzero(pcb, sizeof (dt_pcb_t));
79 dt_scope_create(&pcb->pcb_dstack);
80 dt_idstack_push(&pcb->pcb_globals, dtp->dt_globals);
81 dt_irlist_create(&pcb->pcb_ir);
83 pcb->pcb_hdl = dtp;
84 pcb->pcb_prev = dtp->dt_pcb;
86 dtp->dt_pcb = pcb;
89 yyinit(pcb);
111 dt_pcb_t *pcb = yypcb;
114 assert(pcb != NULL);
115 assert(pcb == dtp->dt_pcb);
117 while (pcb->pcb_dstack.ds_next != NULL)
120 dt_scope_destroy(&pcb->pcb_dstack);
121 dt_irlist_destroy(&pcb->pcb_ir);
123 dt_node_link_free(&pcb->pcb_list);
124 dt_node_link_free(&pcb->pcb_hold);
130 if (pcb->pcb_prog != NULL)
131 dt_program_destroy(dtp, pcb->pcb_prog);
132 if (pcb->pcb_stmt != NULL)
133 dtrace_stmt_destroy(dtp, pcb->pcb_stmt);
134 if (pcb->pcb_ecbdesc != NULL)
135 dt_ecbdesc_release(dtp, pcb->pcb_ecbdesc);
162 if (pcb->pcb_pragmas != NULL)
163 dt_idhash_destroy(pcb->pcb_pragmas);
164 if (pcb->pcb_locals != NULL)
165 dt_idhash_destroy(pcb->pcb_locals);
166 if (pcb->pcb_idents != NULL)
167 dt_idhash_destroy(pcb->pcb_idents);
168 if (pcb->pcb_inttab != NULL)
169 dt_inttab_destroy(pcb->pcb_inttab);
170 if (pcb->pcb_strtab != NULL)
171 dt_strtab_destroy(pcb->pcb_strtab);
172 if (pcb->pcb_regs != NULL)
173 dt_regset_destroy(pcb->pcb_regs);
175 for (i = 0; i < pcb->pcb_asxreflen; i++)
176 dt_free(dtp, pcb->pcb_asxrefs[i]);
178 dt_free(dtp, pcb->pcb_asxrefs);
179 dt_difo_free(dtp, pcb->pcb_difo);
181 free(pcb->pcb_filetag);
182 free(pcb->pcb_sflagv);
184 dtp->dt_pcb = pcb->pcb_prev;
185 bzero(pcb, sizeof (dt_pcb_t));