Lines Matching refs:dtp
141 dt_stmt_create(dtrace_hdl_t *dtp, dtrace_ecbdesc_t *edp, in dt_stmt_create() argument
144 dtrace_stmtdesc_t *sdp = dtrace_stmt_create(dtp, edp); in dt_stmt_create()
159 dt_stmt_action(dtrace_hdl_t *dtp, dtrace_stmtdesc_t *sdp) in dt_stmt_action() argument
163 if ((new = dtrace_stmt_action(dtp, sdp)) == NULL) in dt_stmt_action()
295 dtrace_hdl_t *dtp = yypcb->pcb_hdl; in dt_action_difconst() local
296 dtrace_difo_t *dp = dt_zalloc(dtp, sizeof (dtrace_difo_t)); in dt_action_difconst()
301 dp->dtdo_buf = dt_alloc(dtp, sizeof (dif_instr_t) * 2); in dt_action_difconst()
302 dp->dtdo_inttab = dt_alloc(dtp, sizeof (uint64_t)); in dt_action_difconst()
305 dt_difo_free(dtp, dp); in dt_action_difconst()
321 dt_action_clear(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_clear() argument
352 if (aid->di_gen == dtp->dt_gen && !(aid->di_flags & DT_IDFLG_MOD)) { in dt_action_clear()
357 ap = dt_stmt_action(dtp, sdp); in dt_action_clear()
363 dt_action_normalize(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_normalize() argument
401 if (aid->di_gen == dtp->dt_gen && !(aid->di_flags & DT_IDFLG_MOD)) { in dt_action_normalize()
406 ap = dt_stmt_action(dtp, sdp); in dt_action_normalize()
417 ap = dt_stmt_action(dtp, sdp); in dt_action_normalize()
426 dt_action_trunc(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_trunc() argument
468 if (aid->di_gen == dtp->dt_gen && !(aid->di_flags & DT_IDFLG_MOD)) { in dt_action_trunc()
473 ap = dt_stmt_action(dtp, sdp); in dt_action_trunc()
477 ap = dt_stmt_action(dtp, sdp); in dt_action_trunc()
492 dt_action_printa(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_printa() argument
542 if (aid->di_gen == dtp->dt_gen && in dt_action_printa()
569 ap = dt_stmt_action(dtp, sdp); in dt_action_printa()
578 dt_action_printflike(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp, in dt_action_printflike() argument
627 sdp->dtsd_fmtdata = dt_printf_create(dtp, str); in dt_action_printflike()
636 if ((dbuf = dt_alloc(dtp, sizeof (dif_instr_t))) == NULL || in dt_action_printflike()
637 (dp = dt_zalloc(dtp, sizeof (dtrace_difo_t))) == NULL) { in dt_action_printflike()
638 dt_free(dtp, dbuf); in dt_action_printflike()
648 ap = dt_stmt_action(dtp, sdp); in dt_action_printflike()
655 ap = dt_stmt_action(dtp, sdp); in dt_action_printflike()
663 dt_action_trace(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_trace() argument
667 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_trace()
709 dmp = dt_module_lookup_by_ctf(dtp, dret->dn_ctfp); in dt_action_trace()
712 ctflib = dt_module_getlibid(dtp, dmp, dret->dn_ctfp); in dt_action_trace()
720 sdp->dtsd_strdata = dt_alloc(dtp, n); in dt_action_trace()
737 dt_action_tracemem(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_tracemem() argument
739 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_tracemem()
777 ap = dt_stmt_action(dtp, sdp); in dt_action_tracemem()
789 dt_action_stack_args(dtrace_hdl_t *dtp, dtrace_actdesc_t *ap, dt_node_t *arg0) in dt_action_stack_args() argument
793 if (dtp->dt_options[DTRACEOPT_STACKFRAMES] != DTRACEOPT_UNSET) { in dt_action_stack_args()
794 ap->dtad_arg = dtp->dt_options[DTRACEOPT_STACKFRAMES]; in dt_action_stack_args()
815 dt_action_stack(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_stack() argument
817 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_stack()
818 dt_action_stack_args(dtp, ap, dnp->dn_args); in dt_action_stack()
822 dt_action_ustack_args(dtrace_hdl_t *dtp, dtrace_actdesc_t *ap, dt_node_t *dnp) in dt_action_ustack_args() argument
833 if (dtp->dt_options[DTRACEOPT_JSTACKFRAMES] != DTRACEOPT_UNSET) in dt_action_ustack_args()
834 nframes = dtp->dt_options[DTRACEOPT_JSTACKFRAMES]; in dt_action_ustack_args()
836 if (dtp->dt_options[DTRACEOPT_JSTACKSTRSIZE] != DTRACEOPT_UNSET) in dt_action_ustack_args()
837 strsize = dtp->dt_options[DTRACEOPT_JSTACKSTRSIZE]; in dt_action_ustack_args()
843 if (dtp->dt_options[DTRACEOPT_USTACKFRAMES] != DTRACEOPT_UNSET) in dt_action_ustack_args()
844 nframes = dtp->dt_options[DTRACEOPT_USTACKFRAMES]; in dt_action_ustack_args()
877 dt_action_ustack(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_ustack() argument
879 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_ustack()
880 dt_action_ustack_args(dtp, ap, dnp); in dt_action_ustack()
884 dt_action_setopt(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_setopt() argument
896 ap = dt_stmt_action(dtp, sdp); in dt_action_setopt()
902 ap = dt_stmt_action(dtp, sdp); in dt_action_setopt()
917 dt_action_symmod_args(dtrace_hdl_t *dtp, dtrace_actdesc_t *ap, in dt_action_symmod_args() argument
931 dt_action_symmod(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp, in dt_action_symmod() argument
934 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_symmod()
935 dt_action_symmod_args(dtp, ap, dnp->dn_args, kind); in dt_action_symmod()
940 dt_action_ftruncate(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_ftruncate() argument
942 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_ftruncate()
956 dt_action_stop(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_stop() argument
958 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_stop()
966 dt_action_breakpoint(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_breakpoint() argument
968 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_breakpoint()
976 dt_action_panic(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_panic() argument
978 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_panic()
985 dt_action_chill(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_chill() argument
987 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_chill()
995 dt_action_raise(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_raise() argument
997 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_raise()
1005 dt_action_exit(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_exit() argument
1007 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_exit()
1016 dt_action_speculate(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_speculate() argument
1018 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_speculate()
1026 dt_action_commit(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_commit() argument
1028 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_commit()
1036 dt_action_discard(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_action_discard() argument
1038 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_action_discard()
1046 dt_compile_fun(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_compile_fun() argument
1050 dt_action_breakpoint(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1053 dt_action_chill(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1056 dt_action_clear(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1059 dt_action_commit(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1062 dt_action_normalize(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1065 dt_action_discard(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1068 dt_action_exit(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1071 dt_action_printflike(dtp, dnp->dn_expr, sdp, DTRACEACT_FREOPEN); in dt_compile_fun()
1074 dt_action_ftruncate(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1077 dt_action_symmod(dtp, dnp->dn_expr, sdp, DTRACEACT_MOD); in dt_compile_fun()
1080 dt_action_normalize(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1083 dt_action_panic(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1086 dt_action_trace(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1089 dt_action_printa(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1092 dt_action_printflike(dtp, dnp->dn_expr, sdp, DTRACEACT_PRINTF); in dt_compile_fun()
1095 dt_action_raise(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1098 dt_action_setopt(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1101 dt_action_speculate(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1104 dt_action_stack(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1107 dt_action_stop(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1110 dt_action_symmod(dtp, dnp->dn_expr, sdp, DTRACEACT_SYM); in dt_compile_fun()
1113 dt_action_printflike(dtp, dnp->dn_expr, sdp, DTRACEACT_SYSTEM); in dt_compile_fun()
1116 dt_action_trace(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1119 dt_action_tracemem(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1122 dt_action_trunc(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1125 dt_action_symmod(dtp, dnp->dn_expr, sdp, DTRACEACT_UADDR); in dt_compile_fun()
1128 dt_action_symmod(dtp, dnp->dn_expr, sdp, DTRACEACT_UMOD); in dt_compile_fun()
1131 dt_action_symmod(dtp, dnp->dn_expr, sdp, DTRACEACT_USYM); in dt_compile_fun()
1135 dt_action_ustack(dtp, dnp->dn_expr, sdp); in dt_compile_fun()
1144 dt_compile_exp(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_compile_exp() argument
1146 dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp); in dt_compile_exp()
1155 dt_compile_agg(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp) in dt_compile_agg() argument
1185 ap = dt_stmt_action(dtp, sdp); in dt_compile_agg()
1189 ap = dt_stmt_action(dtp, sdp); in dt_compile_agg()
1194 dt_action_stack_args(dtp, ap, anp->dn_args); in dt_compile_agg()
1200 dt_action_ustack_args(dtp, ap, anp); in dt_compile_agg()
1206 dt_action_symmod_args(dtp, ap, in dt_compile_agg()
1211 dt_action_symmod_args(dtp, ap, in dt_compile_agg()
1216 dt_action_symmod_args(dtp, ap, in dt_compile_agg()
1221 dt_action_symmod_args(dtp, ap, in dt_compile_agg()
1226 dt_action_symmod_args(dtp, ap, in dt_compile_agg()
1537 ap = dt_stmt_action(dtp, sdp); in dt_compile_agg()
1549 ap = dt_stmt_action(dtp, sdp); in dt_compile_agg()
1563 dt_compile_one_clause(dtrace_hdl_t *dtp, dt_node_t *cnp, dt_node_t *pnp) in dt_compile_one_clause() argument
1570 dt_setcontext(dtp, pnp->dn_desc); in dt_compile_one_clause()
1573 if (DT_TREEDUMP_PASS(dtp, 2)) in dt_compile_one_clause()
1576 if ((edp = dt_ecbdesc_create(dtp, pnp->dn_desc)) == NULL) in dt_compile_one_clause()
1588 dt_stmt_append(dt_stmt_create(dtp, edp, in dt_compile_one_clause()
1594 sdp = dt_stmt_create(dtp, edp, cnp->dn_ctxattr, cnp->dn_attr); in dt_compile_one_clause()
1599 dt_compile_agg(dtp, dnp->dn_expr, sdp); in dt_compile_one_clause()
1601 dt_compile_exp(dtp, dnp, sdp); in dt_compile_one_clause()
1604 dt_compile_fun(dtp, dnp, sdp); in dt_compile_one_clause()
1607 dt_compile_agg(dtp, dnp, sdp); in dt_compile_one_clause()
1619 dt_ecbdesc_release(dtp, edp); in dt_compile_one_clause()
1620 dt_endcontext(dtp); in dt_compile_one_clause()
1625 dt_compile_clause(dtrace_hdl_t *dtp, dt_node_t *cnp) in dt_compile_clause() argument
1630 dt_compile_one_clause(dtp, cnp, pnp); in dt_compile_clause()
1647 dt_setcontext(dtrace_hdl_t *dtp, dtrace_probedesc_t *pdp) in dt_setcontext() argument
1669 ((pvp = dt_provider_lookup(dtp, pdp->dtpd_provider)) == NULL || in dt_setcontext()
1671 dt_pid_create_probes(pdp, dtp, yypcb) != 0) { in dt_setcontext()
1680 if ((prp = dt_probe_info(dtp, pdp, &yypcb->pcb_pinfo)) == NULL) { in dt_setcontext()
1682 err = dtrace_errno(dtp); in dt_setcontext()
1698 xyerror(D_PDESC_INVAL, "%s\n", dtrace_errmsg(dtp, err)); in dt_setcontext()
1709 if ((idp = dt_idhash_lookup(dtp->dt_globals, "probeprov")) != NULL) in dt_setcontext()
1711 if ((idp = dt_idhash_lookup(dtp->dt_globals, "probemod")) != NULL) in dt_setcontext()
1713 if ((idp = dt_idhash_lookup(dtp->dt_globals, "probefunc")) != NULL) in dt_setcontext()
1715 if ((idp = dt_idhash_lookup(dtp->dt_globals, "probename")) != NULL) in dt_setcontext()
1717 if ((idp = dt_idhash_lookup(dtp->dt_globals, "args")) != NULL) in dt_setcontext()
1730 dt_endcontext(dtrace_hdl_t *dtp) in dt_endcontext() argument
1740 if ((idp = dt_idhash_lookup(dtp->dt_globals, cvars[i])) != NULL) in dt_endcontext()
1749 dt_reduceid(dt_idhash_t *dhp, dt_ident_t *idp, dtrace_hdl_t *dtp) in dt_reduceid() argument
1751 if (idp->di_vers != 0 && idp->di_vers > dtp->dt_vmax) in dt_reduceid()
1767 dt_reduce(dtrace_hdl_t *dtp, dt_version_t v) in dt_reduce() argument
1772 if (v > dtp->dt_vmax) in dt_reduce()
1773 return (dt_set_errno(dtp, EDT_VERSREDUCED)); in dt_reduce()
1774 else if (v == dtp->dt_vmax) in dt_reduce()
1780 dtp->dt_vmax = v; in dt_reduce()
1782 for (dxp = dt_list_next(&dtp->dt_xlators); dxp != NULL; dxp = nxp) { in dt_reduce()
1786 dt_list_delete(&dtp->dt_xlators, dxp); in dt_reduce()
1789 (void) dt_idhash_iter(dtp->dt_macros, (dt_idhash_f *)dt_reduceid, dtp); in dt_reduce()
1790 (void) dt_idhash_iter(dtp->dt_aggs, (dt_idhash_f *)dt_reduceid, dtp); in dt_reduce()
1791 (void) dt_idhash_iter(dtp->dt_globals, (dt_idhash_f *)dt_reduceid, dtp); in dt_reduce()
1792 (void) dt_idhash_iter(dtp->dt_tls, (dt_idhash_f *)dt_reduceid, dtp); in dt_reduce()
1803 dt_preproc(dtrace_hdl_t *dtp, FILE *ifp) in dt_preproc() argument
1805 int argc = dtp->dt_cpp_argc; in dt_preproc()
1821 (void) dt_set_errno(dtp, errno); in dt_preproc()
1847 bcopy(dtp->dt_cpp_argv, argv, sizeof (char *) * argc); in dt_preproc()
1850 "-D__SUNW_D_VERSION=0x%08x", dtp->dt_vmax); in dt_preproc()
1853 switch (dtp->dt_stdcmode) { in dt_preproc()
1886 (void) dt_set_errno(dtp, EDT_CPPFORK); in dt_preproc()
1891 (void) execvp(dtp->dt_cpp_path, argv); in dt_preproc()
1896 dt_dprintf("waiting for %s (PID %d)\n", dtp->dt_cpp_path, in dt_preproc()
1903 dt_dprintf("%s returned exit status 0x%x\n", dtp->dt_cpp_path, wstat); in dt_preproc()
1909 (void) dt_set_errno(dtp, EDT_CPPEXEC); in dt_preproc()
1912 (void) dt_set_errno(dtp, EDT_CPPENT); in dt_preproc()
1915 (void) dt_set_errno(dtp, EDT_CPPERR); in dt_preproc()
1932 dt_lib_depend_error(dtrace_hdl_t *dtp, const char *format, ...) in dt_lib_depend_error() argument
1937 dt_set_errmsg(dtp, NULL, NULL, NULL, 0, format, ap); in dt_lib_depend_error()
1942 dt_lib_depend_add(dtrace_hdl_t *dtp, dt_list_t *dlp, const char *arg) in dt_lib_depend_add() argument
1950 return (dt_set_errno(dtp, EINVAL)); in dt_lib_depend_add()
1952 if ((dld = dt_zalloc(dtp, sizeof (dt_lib_depend_t))) == NULL) in dt_lib_depend_add()
1955 if ((dld->dtld_libpath = dt_alloc(dtp, MAXPATHLEN)) == NULL) { in dt_lib_depend_add()
1956 dt_free(dtp, dld); in dt_lib_depend_add()
1962 dt_free(dtp, dld->dtld_libpath); in dt_lib_depend_add()
1963 dt_free(dtp, dld); in dt_lib_depend_add()
1964 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_lib_depend_add()
1992 dt_lib_build_graph(dtrace_hdl_t *dtp) in dt_lib_build_graph() argument
1996 for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL; in dt_lib_build_graph()
2004 if ((dlda = dt_lib_depend_lookup(&dtp->dt_lib_dep, in dt_lib_build_graph()
2006 dt_lib_depend_error(dtp, in dt_lib_build_graph()
2010 return (dt_set_errno(dtp, EDT_COMPILER)); in dt_lib_build_graph()
2013 if ((dt_lib_depend_add(dtp, &dlda->dtld_dependents, in dt_lib_build_graph()
2023 dt_topo_sort(dtrace_hdl_t *dtp, dt_lib_depend_t *dld, int *count) in dt_topo_sort() argument
2031 dlda = dt_lib_depend_lookup(&dtp->dt_lib_dep, in dt_topo_sort()
2036 dt_topo_sort(dtp, dlda, count) == -1) in dt_topo_sort()
2040 if ((new = dt_zalloc(dtp, sizeof (dt_lib_depend_t))) == NULL) in dt_topo_sort()
2044 dt_free(dtp, new); in dt_topo_sort()
2045 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_topo_sort()
2050 dt_list_prepend(&dtp->dt_lib_dep_sorted, new); in dt_topo_sort()
2059 dt_lib_depend_sort(dtrace_hdl_t *dtp) in dt_lib_depend_sort() argument
2064 if (dt_lib_build_graph(dtp) == -1) in dt_lib_depend_sort()
2072 for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL; in dt_lib_depend_sort()
2075 dt_topo_sort(dtp, dld, &count) == -1) in dt_lib_depend_sort()
2084 for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL; in dt_lib_depend_sort()
2088 dlda = dt_lib_depend_lookup(&dtp->dt_lib_dep_sorted, in dt_lib_depend_sort()
2093 dt_lib_depend_error(dtp, in dt_lib_depend_sort()
2097 return (dt_set_errno(dtp, EDT_COMPILER)); in dt_lib_depend_sort()
2106 dt_lib_depend_free(dtrace_hdl_t *dtp) in dt_lib_depend_free() argument
2110 while ((dld = dt_list_next(&dtp->dt_lib_dep)) != NULL) { in dt_lib_depend_free()
2113 dt_free(dtp, dlda->dtld_library); in dt_lib_depend_free()
2114 dt_free(dtp, dlda->dtld_libpath); in dt_lib_depend_free()
2115 dt_free(dtp, dlda); in dt_lib_depend_free()
2119 dt_free(dtp, dlda->dtld_library); in dt_lib_depend_free()
2120 dt_free(dtp, dlda->dtld_libpath); in dt_lib_depend_free()
2121 dt_free(dtp, dlda); in dt_lib_depend_free()
2123 dt_list_delete(&dtp->dt_lib_dep, dld); in dt_lib_depend_free()
2124 dt_free(dtp, dld->dtld_library); in dt_lib_depend_free()
2125 dt_free(dtp, dld->dtld_libpath); in dt_lib_depend_free()
2126 dt_free(dtp, dld); in dt_lib_depend_free()
2129 while ((dld = dt_list_next(&dtp->dt_lib_dep_sorted)) != NULL) { in dt_lib_depend_free()
2130 dt_list_delete(&dtp->dt_lib_dep_sorted, dld); in dt_lib_depend_free()
2131 dt_free(dtp, dld->dtld_library); in dt_lib_depend_free()
2132 dt_free(dtp, dld); in dt_lib_depend_free()
2146 dt_load_libs_dir(dtrace_hdl_t *dtp, const char *path) in dt_load_libs_dir() argument
2179 for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL; in dt_load_libs_dir()
2196 dtp->dt_filetag = fname; in dt_load_libs_dir()
2197 if (dt_lib_depend_add(dtp, &dtp->dt_lib_dep, fname) != 0) { in dt_load_libs_dir()
2202 rv = dt_compile(dtp, DT_CTX_DPROG, in dt_load_libs_dir()
2206 if (rv != NULL && dtp->dt_errno && in dt_load_libs_dir()
2207 (dtp->dt_errno != EDT_COMPILER || in dt_load_libs_dir()
2208 dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) { in dt_load_libs_dir()
2213 if (dtp->dt_errno) in dt_load_libs_dir()
2215 fname, dtrace_errmsg(dtp, dtrace_errno(dtp))); in dt_load_libs_dir()
2218 dtp->dt_filetag = NULL; in dt_load_libs_dir()
2237 dt_load_libs_sort(dtrace_hdl_t *dtp) in dt_load_libs_sort() argument
2248 if (dt_lib_depend_sort(dtp) == -1) in dt_load_libs_sort()
2251 for (dld = dt_list_next(&dtp->dt_lib_dep_sorted); dld != NULL; in dt_load_libs_sort()
2260 dtp->dt_filetag = dld->dtld_library; in dt_load_libs_sort()
2261 pgp = dtrace_program_fcompile(dtp, fp, DTRACE_C_EMPTY, 0, NULL); in dt_load_libs_sort()
2263 dtp->dt_filetag = NULL; in dt_load_libs_sort()
2265 if (pgp == NULL && (dtp->dt_errno != EDT_COMPILER || in dt_load_libs_sort()
2266 dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) in dt_load_libs_sort()
2272 dtrace_errmsg(dtp, dtrace_errno(dtp))); in dt_load_libs_sort()
2275 dt_program_destroy(dtp, pgp); in dt_load_libs_sort()
2279 dt_lib_depend_free(dtp); in dt_load_libs_sort()
2283 dt_lib_depend_free(dtp); in dt_load_libs_sort()
2294 dt_load_libs(dtrace_hdl_t *dtp) in dt_load_libs() argument
2298 if (dtp->dt_cflags & DTRACE_C_NOLIBS) in dt_load_libs()
2301 dtp->dt_cflags |= DTRACE_C_NOLIBS; in dt_load_libs()
2310 for (dirp = dt_list_next(dt_list_next(&dtp->dt_lib_path)); in dt_load_libs()
2312 if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { in dt_load_libs()
2313 dtp->dt_cflags &= ~DTRACE_C_NOLIBS; in dt_load_libs()
2319 dirp = dt_list_next(&dtp->dt_lib_path); in dt_load_libs()
2320 if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { in dt_load_libs()
2321 dtp->dt_cflags &= ~DTRACE_C_NOLIBS; in dt_load_libs()
2325 if (dt_load_libs_sort(dtp) < 0) in dt_load_libs()
2332 dt_compile(dtrace_hdl_t *dtp, int context, dtrace_probespec_t pspec, void *arg, in dt_compile() argument
2342 (void) dt_set_errno(dtp, EINVAL); in dt_compile()
2346 if (dt_list_next(&dtp->dt_lib_path) != NULL && dt_load_libs(dtp) != 0) in dt_compile()
2349 if (dtp->dt_globals->dh_nelems != 0) in dt_compile()
2350 (void) dt_idhash_iter(dtp->dt_globals, dt_idreset, NULL); in dt_compile()
2352 if (dtp->dt_tls->dh_nelems != 0) in dt_compile()
2353 (void) dt_idhash_iter(dtp->dt_tls, dt_idreset, NULL); in dt_compile()
2355 if (fp && (cflags & DTRACE_C_CPP) && (fp = dt_preproc(dtp, fp)) == NULL) in dt_compile()
2358 dt_pcb_push(dtp, &pcb); in dt_compile()
2368 pcb.pcb_cflags = dtp->dt_cflags | cflags; in dt_compile()
2369 pcb.pcb_amin = dtp->dt_amin; in dt_compile()
2408 if (context != DT_CTX_DTYPE && DT_TREEDUMP_PASS(dtp, 1)) in dt_compile()
2435 dnp = dt_compile_sugar(dtp, dnp); in dt_compile()
2456 if ((yypcb->pcb_prog = dt_program_create(dtp)) == NULL) in dt_compile()
2457 longjmp(yypcb->pcb_jmpbuf, dtrace_errno(dtp)); in dt_compile()
2462 if (DT_TREEDUMP_PASS(dtp, 4)) in dt_compile()
2464 dt_compile_clause(dtp, dnp); in dt_compile()
2467 if (dtp->dt_xlatemode == DT_XL_DYNAMIC) in dt_compile()
2504 DT_TREEDUMP_PASS(dtp, 3)) in dt_compile()
2507 if (dtp->dt_cdefs_fd != -1 && (ftruncate64(dtp->dt_cdefs_fd, 0) == -1 || in dt_compile()
2508 lseek64(dtp->dt_cdefs_fd, 0, SEEK_SET) == -1 || in dt_compile()
2509 ctf_write(dtp->dt_cdefs->dm_ctfp, dtp->dt_cdefs_fd) == CTF_ERR)) in dt_compile()
2512 if (dtp->dt_ddefs_fd != -1 && (ftruncate64(dtp->dt_ddefs_fd, 0) == -1 || in dt_compile()
2513 lseek64(dtp->dt_ddefs_fd, 0, SEEK_SET) == -1 || in dt_compile()
2514 ctf_write(dtp->dt_ddefs->dm_ctfp, dtp->dt_ddefs_fd) == CTF_ERR)) in dt_compile()
2520 dt_pcb_pop(dtp, err); in dt_compile()
2521 (void) dt_set_errno(dtp, err); in dt_compile()
2526 dtrace_program_strcompile(dtrace_hdl_t *dtp, const char *s, in dtrace_program_strcompile() argument
2529 return (dt_compile(dtp, DT_CTX_DPROG, in dtrace_program_strcompile()
2534 dtrace_program_fcompile(dtrace_hdl_t *dtp, FILE *fp, in dtrace_program_fcompile() argument
2537 return (dt_compile(dtp, DT_CTX_DPROG, in dtrace_program_fcompile()
2542 dtrace_type_strcompile(dtrace_hdl_t *dtp, const char *s, dtrace_typeinfo_t *dtt) in dtrace_type_strcompile() argument
2544 (void) dt_compile(dtp, DT_CTX_DTYPE, in dtrace_type_strcompile()
2546 return (dtp->dt_errno ? -1 : 0); in dtrace_type_strcompile()
2550 dtrace_type_fcompile(dtrace_hdl_t *dtp, FILE *fp, dtrace_typeinfo_t *dtt) in dtrace_type_fcompile() argument
2552 (void) dt_compile(dtp, DT_CTX_DTYPE, in dtrace_type_fcompile()
2554 return (dtp->dt_errno ? -1 : 0); in dtrace_type_fcompile()