Lines Matching refs:dtp

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