• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/dtrace-147/libdtrace/

Lines Matching refs:ddo

48 	dt_dof_t *ddo = &dtp->dt_dof;
50 ddo->ddo_hdl = dtp;
51 ddo->ddo_nsecs = 0;
52 ddo->ddo_strsec = DOF_SECIDX_NONE;
53 ddo->ddo_xlimport = NULL;
54 ddo->ddo_xlexport = NULL;
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);
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);
95 dt_dof_t *ddo = &dtp->dt_dof;
98 assert(ddo->ddo_hdl == dtp);
99 ddo->ddo_pgp = pgp;
101 ddo->ddo_nsecs = 0;
102 ddo->ddo_strsec = DOF_SECIDX_NONE;
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);
110 if (nx != 0 && (ddo->ddo_xlimport == NULL || ddo->ddo_xlexport == NULL))
114 ddo->ddo_xlimport[i] = DOF_SECIDX_NONE;
115 ddo->ddo_xlexport[i] = DOF_SECIDX_NONE;
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);
139 dof_add_lsect(dt_dof_t *ddo, const void *data, uint32_t type,
142 dtrace_hdl_t *dtp = ddo->ddo_hdl;
149 s.dofs_offset = dt_buf_offset(&ddo->ddo_ldata, align);
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);
157 return (ddo->ddo_nsecs++);
166 dof_add_usect(dt_dof_t *ddo, const void *data, uint32_t type,
169 dtrace_hdl_t *dtp = ddo->ddo_hdl;
176 s.dofs_offset = dt_buf_offset(&ddo->ddo_udata, align);
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);
184 return (ddo->ddo_nsecs++);
192 dof_add_string(dt_dof_t *ddo, const char *s)
194 dt_buf_t *bp = &ddo->ddo_strs;
200 dt_buf_write(ddo->ddo_hdl, bp, s, strlen(s) + 1, sizeof (char));
211 dof_add_difo(dt_dof_t *ddo, const dtrace_difo_t *dp)
225 dsecs[nsecs++] = dof_add_lsect(ddo, dp->dtdo_buf,
231 dsecs[nsecs++] = intsec = dof_add_lsect(ddo, dp->dtdo_inttab,
237 dsecs[nsecs++] = strsec = dof_add_lsect(ddo, dp->dtdo_strtab,
242 dsecs[nsecs++] = dof_add_lsect(ddo, dp->dtdo_vartab,
265 xlp->dofxr_xlator = ddo->ddo_xlimport[dxp->dx_id];
267 ddo->ddo_pgp->dp_xrefs[dxp->dx_id], dnp->dn_membid);
271 dsecs[nsecs++] = dof_add_lsect(ddo, xlt, DOF_SECT_XLTAB,
285 hdrsec = dof_add_lsect(ddo, dofd, DOF_SECT_DIFOHDR,
294 relsec = dof_add_lsect(ddo, dp->dtdo_kreltab, DOF_SECT_RELTAB,
307 (void) dof_add_lsect(ddo, &dofr, DOF_SECT_KRELHDR,
312 relsec = dof_add_lsect(ddo, dp->dtdo_ureltab, DOF_SECT_RELTAB,
325 (void) dof_add_lsect(ddo, &dofr, DOF_SECT_URELHDR,
333 dof_add_translator(dt_dof_t *ddo, const dt_xlator_t *dxp, uint_t type)
335 dtrace_hdl_t *dtp = ddo->ddo_hdl;
345 xst = type == DOF_SECT_XLIMPORT ? ddo->ddo_xlimport : ddo->ddo_xlexport;
350 dt_buf_reset(dtp, &ddo->ddo_xlms);
360 if (!BT_TEST(ddo->ddo_pgp->dp_xrefs[dxp->dx_id], i))
364 dofxm.dofxm_difo = dof_add_difo(ddo,
368 dofxm.dofxm_name = dof_add_string(ddo, dnp->dn_membname);
371 dt_buf_write(dtp, &ddo->ddo_xlms,
375 dofxl.dofxl_members = dof_add_lsect(ddo, NULL, DOF_SECT_XLMEMBERS,
376 sizeof (uint32_t), 0, sizeof (dofxm), dt_buf_len(&ddo->ddo_xlms));
378 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_xlms, sizeof (uint32_t));
380 dofxl.dofxl_strtab = ddo->ddo_strsec;
381 dofxl.dofxl_argv = dof_add_string(ddo, ctf_type_name(
384 dofxl.dofxl_type = dof_add_string(ddo, ctf_type_name(
388 xst[dxp->dx_id] = dof_add_lsect(ddo, &dofxl, type,
396 dt_dof_t *ddo = data;
397 dtrace_hdl_t *dtp = ddo->ddo_hdl;
409 dofpr.dofpr_name = dof_add_string(ddo, prp->pr_name);
410 dofpr.dofpr_nargv = dt_buf_len(&ddo->ddo_strs);
413 (void) dof_add_string(ddo, ctf_type_name(dnp->dn_ctfp,
417 dofpr.dofpr_xargv = dt_buf_len(&ddo->ddo_strs);
420 (void) dof_add_string(ddo, ctf_type_name(dnp->dn_ctfp,
424 dofpr.dofpr_argidx = dt_buf_len(&ddo->ddo_args) / sizeof (uint8_t);
427 dt_buf_write(dtp, &ddo->ddo_args, &prp->pr_mapping[i],
440 dofpr.dofpr_func = dof_add_string(ddo, pip->pi_fname);
450 dt_buf_len(&ddo->ddo_offs) / sizeof (uint32_t);
452 dt_buf_write(dtp, &ddo->ddo_offs, pip->pi_offs,
456 dt_buf_len(&ddo->ddo_enoffs) / sizeof (uint32_t);
458 dt_buf_write(dtp, &ddo->ddo_enoffs, pip->pi_enoffs,
471 dofr.dofr_name = dof_add_string(ddo, pip->pi_rname);
473 dofr.dofr_offset = dt_buf_len(&ddo->ddo_probes);
476 dt_buf_write(dtp, &ddo->ddo_rels, &dofr,
479 dt_buf_write(dtp, &ddo->ddo_probes, &dofpr,
487 dof_add_provider(dt_dof_t *ddo, const dt_provider_t *pvp)
489 dtrace_hdl_t *dtp = ddo->ddo_hdl;
511 dof_add_translator(ddo,
513 dofs[xr++] = ddo->ddo_xlexport[i];
517 dt_buf_reset(dtp, &ddo->ddo_probes);
518 dt_buf_reset(dtp, &ddo->ddo_args);
519 dt_buf_reset(dtp, &ddo->ddo_offs);
520 dt_buf_reset(dtp, &ddo->ddo_enoffs);
521 dt_buf_reset(dtp, &ddo->ddo_rels);
523 (void) dt_idhash_iter(pvp->pv_probes, dof_add_probe, ddo);
525 dofpv.dofpv_probes = dof_add_lsect(ddo, NULL, DOF_SECT_PROBES,
527 dt_buf_len(&ddo->ddo_probes));
529 dt_buf_concat(dtp, &ddo->ddo_ldata,
530 &ddo->ddo_probes, sizeof (uint64_t));
532 dofpv.dofpv_prargs = dof_add_lsect(ddo, NULL, DOF_SECT_PRARGS,
533 sizeof (uint8_t), 0, sizeof (uint8_t), dt_buf_len(&ddo->ddo_args));
535 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_args, sizeof (uint8_t));
537 dofpv.dofpv_proffs = dof_add_lsect(ddo, NULL, DOF_SECT_PROFFS,
538 sizeof (uint_t), 0, sizeof (uint_t), dt_buf_len(&ddo->ddo_offs));
540 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_offs, sizeof (uint_t));
542 if ((sz = dt_buf_len(&ddo->ddo_enoffs)) != 0) {
543 dofpv.dofpv_prenoffs = dof_add_lsect(ddo, NULL,
549 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_enoffs, sizeof (uint_t));
551 dofpv.dofpv_strtab = ddo->ddo_strsec;
552 dofpv.dofpv_name = dof_add_string(ddo, pvp->pv_desc.dtvd_name);
560 dofs[0] = dof_add_lsect(ddo, &dofpv, DOF_SECT_PROVIDER,
565 dofr.dofr_relsec = dof_add_lsect(ddo, NULL, DOF_SECT_RELTAB,
567 dt_buf_len(&ddo->ddo_rels));
569 dt_buf_concat(dtp, &ddo->ddo_ldata, &ddo->ddo_rels, sizeof (uint64_t));
571 (void) dof_add_lsect(ddo, &dofr, DOF_SECT_URELHDR,
575 (void) dof_add_lsect(ddo, dofs, DOF_SECT_PREXPORT,
622 dt_dof_t *ddo = &dtp->dt_dof;
684 ddo->ddo_strsec = dof_add_lsect(ddo, NULL, DOF_SECT_STRTAB, 1, 0, 0, 0);
685 (void) dof_add_string(ddo, "");
696 dof_add_translator(ddo, dxp, DOF_SECT_XLIMPORT);
727 dofp.dofp_strtab = ddo->ddo_strsec;
728 dofp.dofp_provider = dof_add_string(ddo, pdp->dtpd_provider);
729 dofp.dofp_mod = dof_add_string(ddo, pdp->dtpd_mod);
730 dofp.dofp_func = dof_add_string(ddo, pdp->dtpd_func);
731 dofp.dofp_name = dof_add_string(ddo, pdp->dtpd_name);
734 probesec = dof_add_lsect(ddo, &dofp, DOF_SECT_PROBEDESC,
743 prdsec = dof_add_difo(ddo, edp->dted_pred.dtpdd_difo);
754 dof_add_difo(ddo, ap->dtad_difo);
766 strndx = dof_add_string(ddo, fmt);
778 dofa[i].dofa_strtab = ddo->ddo_strsec;
790 actsec = dof_add_lsect(ddo, dofa, DOF_SECT_ACTDESC,
805 (void) dof_add_lsect(ddo, &dofe, DOF_SECT_ECBDESC,
816 dof_add_provider(ddo, pvp);
824 (void) dof_add_usect(ddo, _dtrace_version, DOF_SECT_COMMENTS,
826 (void) dof_add_usect(ddo, &dtp->dt_uts, DOF_SECT_UTSNAME,
834 h.dofh_secnum = ddo->ddo_nsecs;
835 ssize = sizeof (h) + dt_buf_len(&ddo->ddo_secs);
836 assert(ssize == sizeof (h) + sizeof (dof_sec_t) * ddo->ddo_nsecs);
839 dt_buf_len(&ddo->ddo_ldata) +
840 dt_buf_len(&ddo->ddo_strs);
842 if (dt_buf_len(&ddo->ddo_udata) != 0) {
844 h.dofh_filesz = lsize + dt_buf_len(&ddo->ddo_udata);
855 if ((i = dt_buf_error(&ddo->ddo_secs)) != 0) {
860 sp = dt_buf_ptr(&ddo->ddo_secs);
861 assert(sp[ddo->ddo_strsec].dofs_type == DOF_SECT_STRTAB);
863 sp[ddo->ddo_strsec].dofs_offset = ssize + dt_buf_len(&ddo->ddo_ldata);
864 sp[ddo->ddo_strsec].dofs_size = dt_buf_len(&ddo->ddo_strs);
870 for (i = 0; i < ddo->ddo_nsecs; i++, sp++) {
871 if (i == ddo->ddo_strsec)
888 dt_buf_concat(dtp, &dof, &ddo->ddo_secs, sizeof (uint64_t));
889 dt_buf_concat(dtp, &dof, &ddo->ddo_ldata, sizeof (uint64_t));
890 dt_buf_concat(dtp, &dof, &ddo->ddo_strs, sizeof (char));
891 dt_buf_concat(dtp, &dof, &ddo->ddo_udata, sizeof (uint64_t));