Lines Matching refs:dtp

46 dt_dof_init(dtrace_hdl_t *dtp)
48 dt_dof_t *ddo = &dtp->dt_dof;
50 ddo->ddo_hdl = dtp;
56 dt_buf_create(dtp, &ddo->ddo_secs, "section headers", 0);
57 dt_buf_create(dtp, &ddo->ddo_strs, "string table", 0);
58 dt_buf_create(dtp, &ddo->ddo_ldata, "loadable data", 0);
59 dt_buf_create(dtp, &ddo->ddo_udata, "unloadable data", 0);
61 dt_buf_create(dtp, &ddo->ddo_probes, "probe data", 0);
62 dt_buf_create(dtp, &ddo->ddo_args, "probe args", 0);
63 dt_buf_create(dtp, &ddo->ddo_offs, "probe offs", 0);
64 dt_buf_create(dtp, &ddo->ddo_enoffs, "probe is-enabled offs", 0);
65 dt_buf_create(dtp, &ddo->ddo_rels, "probe rels", 0);
67 dt_buf_create(dtp, &ddo->ddo_xlms, "xlate members", 0);
71 dt_dof_fini(dtrace_hdl_t *dtp)
73 dt_dof_t *ddo = &dtp->dt_dof;
75 dt_free(dtp, ddo->ddo_xlimport);
76 dt_free(dtp, ddo->ddo_xlexport);
78 dt_buf_destroy(dtp, &ddo->ddo_secs);
79 dt_buf_destroy(dtp, &ddo->ddo_strs);
80 dt_buf_destroy(dtp, &ddo->ddo_ldata);
81 dt_buf_destroy(dtp, &ddo->ddo_udata);
83 dt_buf_destroy(dtp, &ddo->ddo_probes);
84 dt_buf_destroy(dtp, &ddo->ddo_args);
85 dt_buf_destroy(dtp, &ddo->ddo_offs);
86 dt_buf_destroy(dtp, &ddo->ddo_enoffs);
87 dt_buf_destroy(dtp, &ddo->ddo_rels);
89 dt_buf_destroy(dtp, &ddo->ddo_xlms);
93 dt_dof_reset(dtrace_hdl_t *dtp, dtrace_prog_t *pgp)
95 dt_dof_t *ddo = &dtp->dt_dof;
96 uint_t i, nx = dtp->dt_xlatorid;
98 assert(ddo->ddo_hdl == dtp);
104 dt_free(dtp, ddo->ddo_xlimport);
105 dt_free(dtp, ddo->ddo_xlexport);
107 ddo->ddo_xlimport = dt_alloc(dtp, sizeof (dof_secidx_t) * nx);
108 ddo->ddo_xlexport = dt_alloc(dtp, sizeof (dof_secidx_t) * nx);
118 dt_buf_reset(dtp, &ddo->ddo_secs);
119 dt_buf_reset(dtp, &ddo->ddo_strs);
120 dt_buf_reset(dtp, &ddo->ddo_ldata);
121 dt_buf_reset(dtp, &ddo->ddo_udata);
123 dt_buf_reset(dtp, &ddo->ddo_probes);
124 dt_buf_reset(dtp, &ddo->ddo_args);
125 dt_buf_reset(dtp, &ddo->ddo_offs);
126 dt_buf_reset(dtp, &ddo->ddo_enoffs);
127 dt_buf_reset(dtp, &ddo->ddo_rels);
129 dt_buf_reset(dtp, &ddo->ddo_xlms);
142 dtrace_hdl_t *dtp = ddo->ddo_hdl;
152 dt_buf_write(dtp, &ddo->ddo_secs, &s, sizeof (s), sizeof (uint64_t));
155 dt_buf_write(dtp, &ddo->ddo_ldata, data, size, align);
169 dtrace_hdl_t *dtp = ddo->ddo_hdl;
179 dt_buf_write(dtp, &ddo->ddo_secs, &s, sizeof (s), sizeof (uint64_t));
182 dt_buf_write(dtp, &ddo->ddo_udata, data, size, align);
335 dtrace_hdl_t *dtp = ddo->ddo_hdl;
350 dt_buf_reset(dtp, &ddo->ddo_xlms);
369 dt_node_diftype(dtp, dnp, &dofxm.dofxm_type);
371 dt_buf_write(dtp, &ddo->ddo_xlms,
378 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_xlms, sizeof (uint32_t));
397 dtrace_hdl_t *dtp = ddo->ddo_hdl;
427 dt_buf_write(dtp, &ddo->ddo_args, &prp->pr_mapping[i],
452 dt_buf_write(dtp, &ddo->ddo_offs, pip->pi_offs,
458 dt_buf_write(dtp, &ddo->ddo_enoffs, pip->pi_enoffs,
476 dt_buf_write(dtp, &ddo->ddo_rels, &dofr,
479 dt_buf_write(dtp, &ddo->ddo_probes, &dofpr,
489 dtrace_hdl_t *dtp = ddo->ddo_hdl;
514 dtp->dt_xlatemode == DT_XL_DYNAMIC) {
516 dt_xlator_lookup_id(dtp, i), DOF_SECT_XLEXPORT);
521 dt_buf_reset(dtp, &ddo->ddo_probes);
522 dt_buf_reset(dtp, &ddo->ddo_args);
523 dt_buf_reset(dtp, &ddo->ddo_offs);
524 dt_buf_reset(dtp, &ddo->ddo_enoffs);
525 dt_buf_reset(dtp, &ddo->ddo_rels);
530 return (dt_set_errno(dtp, EDT_NOPROBES));
536 dt_buf_concat(dtp, &ddo->ddo_ldata,
542 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_args, sizeof (uint8_t));
547 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_offs, sizeof (uint_t));
556 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_enoffs, sizeof (uint_t));
576 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_rels, sizeof (uint64_t));
581 if (nxr != 0 && dtp->dt_xlatemode == DT_XL_DYNAMIC) {
591 dof_hdr(dtrace_hdl_t *dtp, uint8_t dofversion, dof_hdr_t *hp)
598 if (dtp->dt_conf.dtc_difversion > UINT8_MAX ||
599 dtp->dt_conf.dtc_difintregs > UINT8_MAX ||
600 dtp->dt_conf.dtc_diftupregs > UINT8_MAX)
601 return (dt_set_errno(dtp, EOVERFLOW));
610 if (dtp->dt_conf.dtc_ctfmodel == CTF_MODEL_LP64)
617 hp->dofh_ident[DOF_ID_DIFVERS] = dtp->dt_conf.dtc_difversion;
618 hp->dofh_ident[DOF_ID_DIFIREG] = dtp->dt_conf.dtc_difintregs;
619 hp->dofh_ident[DOF_ID_DIFTREG] = dtp->dt_conf.dtc_diftupregs;
629 dtrace_dof_create(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t flags)
631 dt_dof_t *ddo = &dtp->dt_dof;
653 (void) dt_set_errno(dtp, EINVAL);
657 flags |= dtp->dt_dflags;
659 if (dof_hdr(dtp, pgp->dp_dofversion, &h) != 0)
662 if (dt_dof_reset(dtp, pgp) != 0)
676 i = dtrace_printf_format(dtp,
701 for (dxp = dt_list_next(&dtp->dt_xlators);
776 (void) dtrace_printf_format(dtp,
830 for (pvp = dt_list_next(&dtp->dt_provlist);
844 (void) dof_add_usect(ddo, &dtp->dt_uts, DOF_SECT_UTSNAME,
873 (void) dt_set_errno(dtp, i);
903 dt_buf_create(dtp, &dof, "dof", h.dofh_filesz);
905 dt_buf_write(dtp, &dof, &h, sizeof (h), sizeof (uint64_t));
906 dt_buf_concat(dtp, &dof, &ddo->ddo_secs, sizeof (uint64_t));
907 dt_buf_concat(dtp, &dof, &ddo->ddo_ldata, sizeof (uint64_t));
908 dt_buf_concat(dtp, &dof, &ddo->ddo_strs, sizeof (char));
909 dt_buf_concat(dtp, &dof, &ddo->ddo_udata, sizeof (uint64_t));
911 return (dt_buf_claim(dtp, &dof));
915 dtrace_dof_destroy(dtrace_hdl_t *dtp, void *dof)
917 dt_free(dtp, dof);
921 dtrace_getopt_dof(dtrace_hdl_t *dtp)
930 if (dtp->dt_options[i] != DTRACEOPT_UNSET)
936 if ((dof = dt_zalloc(dtp, len)) == NULL ||
937 dof_hdr(dtp, DOF_VERSION, dof) != 0) {
938 dt_free(dtp, dof);
962 if (dtp->dt_options[i] == DTRACEOPT_UNSET)
967 dofo->dofo_value = dtp->dt_options[i];
975 dtrace_geterr_dof(dtrace_hdl_t *dtp)
977 if (dtp->dt_errprog != NULL)
978 return (dtrace_dof_create(dtp, dtp->dt_errprog, 0));
980 (void) dt_set_errno(dtp, EDT_BADERROR);