Lines Matching refs:dtp

40 dt_strdata_add(dtrace_hdl_t *dtp, dtrace_recdesc_t *rec, void ***data, int *max)  in dt_strdata_add()  argument
59 if (dt_ioctl(dtp, DTRACEIOC_FORMAT, &fmt) == -1) in dt_strdata_add()
60 return (dt_set_errno(dtp, errno)); in dt_strdata_add()
62 if ((fmt.dtfd_string = dt_alloc(dtp, fmt.dtfd_length)) == NULL) in dt_strdata_add()
63 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_strdata_add()
65 if (dt_ioctl(dtp, DTRACEIOC_FORMAT, &fmt) == -1) { in dt_strdata_add()
67 return (dt_set_errno(dtp, errno)); in dt_strdata_add()
74 void **new_data = dt_zalloc(dtp, nsize); in dt_strdata_add()
77 dt_free(dtp, fmt.dtfd_string); in dt_strdata_add()
78 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_strdata_add()
93 result = dtrace_printa_create(dtp, fmt.dtfd_string); in dt_strdata_add()
94 dt_free(dtp, fmt.dtfd_string); in dt_strdata_add()
97 result = dtrace_printf_create(dtp, fmt.dtfd_string); in dt_strdata_add()
98 dt_free(dtp, fmt.dtfd_string); in dt_strdata_add()
111 dt_epid_add(dtrace_hdl_t *dtp, dtrace_epid_t id) in dt_epid_add() argument
118 while (id >= (max = dtp->dt_maxprobe) || dtp->dt_pdesc == NULL) { in dt_epid_add()
127 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_epid_add()
133 if (dtp->dt_pdesc != NULL) { in dt_epid_add()
136 bcopy(dtp->dt_pdesc, new_pdesc, osize); in dt_epid_add()
137 free(dtp->dt_pdesc); in dt_epid_add()
139 bcopy(dtp->dt_edesc, new_edesc, osize); in dt_epid_add()
140 free(dtp->dt_edesc); in dt_epid_add()
143 dtp->dt_pdesc = new_pdesc; in dt_epid_add()
144 dtp->dt_edesc = new_edesc; in dt_epid_add()
145 dtp->dt_maxprobe = new_max; in dt_epid_add()
148 if (dtp->dt_pdesc[id] != NULL) in dt_epid_add()
152 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_epid_add()
158 if (dt_ioctl(dtp, DTRACEIOC_EPROBE, enabled) == -1) { in dt_epid_add()
159 rval = dt_set_errno(dtp, errno); in dt_epid_add()
176 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_epid_add()
178 rval = dt_ioctl(dtp, DTRACEIOC_EPROBE, enabled); in dt_epid_add()
181 rval = dt_set_errno(dtp, errno); in dt_epid_add()
189 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_epid_add()
194 if (dt_ioctl(dtp, DTRACEIOC_PROBES, probe) == -1) { in dt_epid_add()
195 rval = dt_set_errno(dtp, errno); in dt_epid_add()
203 if (dt_strdata_add(dtp, rec, &dtp->dt_formats, in dt_epid_add()
204 &dtp->dt_maxformat) != 0) { in dt_epid_add()
209 if (dt_strdata_add(dtp, rec, in dt_epid_add()
210 (void ***)&dtp->dt_strdata, in dt_epid_add()
211 &dtp->dt_maxstrdata) != 0) { in dt_epid_add()
219 dtp->dt_pdesc[id] = probe; in dt_epid_add()
220 dtp->dt_edesc[id] = enabled; in dt_epid_add()
237 dt_epid_lookup(dtrace_hdl_t *dtp, dtrace_epid_t epid, in dt_epid_lookup() argument
242 if (epid >= dtp->dt_maxprobe || dtp->dt_pdesc[epid] == NULL) { in dt_epid_lookup()
243 if ((rval = dt_epid_add(dtp, epid)) != 0) in dt_epid_lookup()
247 assert(epid < dtp->dt_maxprobe); in dt_epid_lookup()
248 assert(dtp->dt_edesc[epid] != NULL); in dt_epid_lookup()
249 assert(dtp->dt_pdesc[epid] != NULL); in dt_epid_lookup()
250 *epdp = dtp->dt_edesc[epid]; in dt_epid_lookup()
251 *pdp = dtp->dt_pdesc[epid]; in dt_epid_lookup()
257 dt_epid_destroy(dtrace_hdl_t *dtp) in dt_epid_destroy() argument
261 assert((dtp->dt_pdesc != NULL && dtp->dt_edesc != NULL && in dt_epid_destroy()
262 dtp->dt_maxprobe > 0) || (dtp->dt_pdesc == NULL && in dt_epid_destroy()
263 dtp->dt_edesc == NULL && dtp->dt_maxprobe == 0)); in dt_epid_destroy()
265 if (dtp->dt_pdesc == NULL) in dt_epid_destroy()
268 for (i = 0; i < dtp->dt_maxprobe; i++) { in dt_epid_destroy()
269 if (dtp->dt_edesc[i] == NULL) { in dt_epid_destroy()
270 assert(dtp->dt_pdesc[i] == NULL); in dt_epid_destroy()
274 assert(dtp->dt_pdesc[i] != NULL); in dt_epid_destroy()
275 free(dtp->dt_edesc[i]); in dt_epid_destroy()
276 free(dtp->dt_pdesc[i]); in dt_epid_destroy()
279 free(dtp->dt_pdesc); in dt_epid_destroy()
280 dtp->dt_pdesc = NULL; in dt_epid_destroy()
282 free(dtp->dt_edesc); in dt_epid_destroy()
283 dtp->dt_edesc = NULL; in dt_epid_destroy()
284 dtp->dt_maxprobe = 0; in dt_epid_destroy()
288 dt_format_lookup(dtrace_hdl_t *dtp, int format) in dt_format_lookup() argument
290 if (format == 0 || format > dtp->dt_maxformat) in dt_format_lookup()
293 if (dtp->dt_formats == NULL) in dt_format_lookup()
296 return (dtp->dt_formats[format - 1]); in dt_format_lookup()
300 dt_format_destroy(dtrace_hdl_t *dtp) in dt_format_destroy() argument
304 for (i = 0; i < dtp->dt_maxformat; i++) { in dt_format_destroy()
305 if (dtp->dt_formats[i] != NULL) in dt_format_destroy()
306 dt_printf_destroy(dtp->dt_formats[i]); in dt_format_destroy()
309 free(dtp->dt_formats); in dt_format_destroy()
310 dtp->dt_formats = NULL; in dt_format_destroy()
314 dt_aggid_add(dtrace_hdl_t *dtp, dtrace_aggid_t id) in dt_aggid_add() argument
320 while (id >= (max = dtp->dt_maxagg) || dtp->dt_aggdesc == NULL) { in dt_aggid_add()
326 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_aggid_add()
330 if (dtp->dt_aggdesc != NULL) { in dt_aggid_add()
331 bcopy(dtp->dt_aggdesc, new_aggdesc, in dt_aggid_add()
333 free(dtp->dt_aggdesc); in dt_aggid_add()
336 dtp->dt_aggdesc = new_aggdesc; in dt_aggid_add()
337 dtp->dt_maxagg = new_max; in dt_aggid_add()
340 if (dtp->dt_aggdesc[id] == NULL) { in dt_aggid_add()
344 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_aggid_add()
350 if (dt_ioctl(dtp, DTRACEIOC_AGGDESC, agg) == -1) { in dt_aggid_add()
351 rval = dt_set_errno(dtp, errno); in dt_aggid_add()
367 return (dt_set_errno(dtp, EDT_NOMEM)); in dt_aggid_add()
369 rval = dt_ioctl(dtp, DTRACEIOC_AGGDESC, agg); in dt_aggid_add()
372 rval = dt_set_errno(dtp, errno); in dt_aggid_add()
386 if (dtp->dt_options[DTRACEOPT_GRABANON] == DTRACEOPT_UNSET && in dt_aggid_add()
400 if ((epid = agg->dtagd_epid) >= dtp->dt_maxprobe || in dt_aggid_add()
401 dtp->dt_pdesc[epid] == NULL) { in dt_aggid_add()
402 if ((rval = dt_epid_add(dtp, epid)) != 0) { in dt_aggid_add()
408 dtp->dt_aggdesc[id] = agg; in dt_aggid_add()
415 dt_aggid_lookup(dtrace_hdl_t *dtp, dtrace_aggid_t aggid, in dt_aggid_lookup() argument
420 if (aggid >= dtp->dt_maxagg || dtp->dt_aggdesc[aggid] == NULL) { in dt_aggid_lookup()
421 if ((rval = dt_aggid_add(dtp, aggid)) != 0) in dt_aggid_lookup()
425 assert(aggid < dtp->dt_maxagg); in dt_aggid_lookup()
426 assert(dtp->dt_aggdesc[aggid] != NULL); in dt_aggid_lookup()
427 *adp = dtp->dt_aggdesc[aggid]; in dt_aggid_lookup()
433 dt_aggid_destroy(dtrace_hdl_t *dtp) in dt_aggid_destroy() argument
437 assert((dtp->dt_aggdesc != NULL && dtp->dt_maxagg != 0) || in dt_aggid_destroy()
438 (dtp->dt_aggdesc == NULL && dtp->dt_maxagg == 0)); in dt_aggid_destroy()
440 if (dtp->dt_aggdesc == NULL) in dt_aggid_destroy()
443 for (i = 0; i < dtp->dt_maxagg; i++) { in dt_aggid_destroy()
444 if (dtp->dt_aggdesc[i] != NULL) in dt_aggid_destroy()
445 free(dtp->dt_aggdesc[i]); in dt_aggid_destroy()
448 free(dtp->dt_aggdesc); in dt_aggid_destroy()
449 dtp->dt_aggdesc = NULL; in dt_aggid_destroy()
450 dtp->dt_maxagg = 0; in dt_aggid_destroy()
454 dt_strdata_lookup(dtrace_hdl_t *dtp, int idx) in dt_strdata_lookup() argument
456 if (idx == 0 || idx > dtp->dt_maxstrdata) in dt_strdata_lookup()
459 if (dtp->dt_strdata == NULL) in dt_strdata_lookup()
462 return (dtp->dt_strdata[idx - 1]); in dt_strdata_lookup()
466 dt_strdata_destroy(dtrace_hdl_t *dtp) in dt_strdata_destroy() argument
470 for (i = 0; i < dtp->dt_maxstrdata; i++) { in dt_strdata_destroy()
471 free(dtp->dt_strdata[i]); in dt_strdata_destroy()
474 free(dtp->dt_strdata); in dt_strdata_destroy()
475 dtp->dt_strdata = NULL; in dt_strdata_destroy()