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) {
66 rval = dt_set_errno(dtp, errno);
75 void **new_data = dt_zalloc(dtp, nsize);
78 dt_free(dtp, fmt.dtfd_string);
79 return (dt_set_errno(dtp, EDT_NOMEM));
94 result = dtrace_printa_create(dtp, fmt.dtfd_string);
95 dt_free(dtp, fmt.dtfd_string);
98 result = dtrace_printf_create(dtp, fmt.dtfd_string);
99 dt_free(dtp, fmt.dtfd_string);
112 dt_epid_add(dtrace_hdl_t *dtp, dtrace_epid_t id)
119 while (id >= (max = dtp->dt_maxprobe) || dtp->dt_pdesc == NULL) {
128 return (dt_set_errno(dtp, EDT_NOMEM));
134 if (dtp->dt_pdesc != NULL) {
137 bcopy(dtp->dt_pdesc, new_pdesc, osize);
138 free(dtp->dt_pdesc);
140 bcopy(dtp->dt_edesc, new_edesc, osize);
141 free(dtp->dt_edesc);
144 dtp->dt_pdesc = new_pdesc;
145 dtp->dt_edesc = new_edesc;
146 dtp->dt_maxprobe = new_max;
149 if (dtp->dt_pdesc[id] != NULL)
153 return (dt_set_errno(dtp, EDT_NOMEM));
160 if (dt_ioctl(dtp, DTRACEIOC_EPROBE, enabled) == -1) {
162 if (dt_ioctl(dtp, DTRACEIOC_EPROBE, &enabled) == -1) {
164 rval = dt_set_errno(dtp, errno);
181 return (dt_set_errno(dtp, EDT_NOMEM));
184 rval = dt_ioctl(dtp, DTRACEIOC_EPROBE, enabled);
186 rval = dt_ioctl(dtp, DTRACEIOC_EPROBE, &enabled);
190 rval = dt_set_errno(dtp, errno);
198 return (dt_set_errno(dtp, EDT_NOMEM));
203 if (dt_ioctl(dtp, DTRACEIOC_PROBES, probe) == -1) {
204 rval = dt_set_errno(dtp, errno);
212 if (dt_strdata_add(dtp, rec, &dtp->dt_formats,
213 &dtp->dt_maxformat) != 0) {
218 if (dt_strdata_add(dtp, rec,
219 (void ***)&dtp->dt_strdata,
220 &dtp->dt_maxstrdata) != 0) {
228 dtp->dt_pdesc[id] = probe;
229 dtp->dt_edesc[id] = enabled;
246 dt_epid_lookup(dtrace_hdl_t *dtp, dtrace_epid_t epid,
251 if (epid >= dtp->dt_maxprobe || dtp->dt_pdesc[epid] == NULL) {
252 if ((rval = dt_epid_add(dtp, epid)) != 0)
256 assert(epid < dtp->dt_maxprobe);
257 assert(dtp->dt_edesc[epid] != NULL);
258 assert(dtp->dt_pdesc[epid] != NULL);
259 *epdp = dtp->dt_edesc[epid];
260 *pdp = dtp->dt_pdesc[epid];
266 dt_epid_destroy(dtrace_hdl_t *dtp)
270 assert((dtp->dt_pdesc != NULL && dtp->dt_edesc != NULL &&
271 dtp->dt_maxprobe > 0) || (dtp->dt_pdesc == NULL &&
272 dtp->dt_edesc == NULL && dtp->dt_maxprobe == 0));
274 if (dtp->dt_pdesc == NULL)
277 for (i = 0; i < dtp->dt_maxprobe; i++) {
278 if (dtp->dt_edesc[i] == NULL) {
279 assert(dtp->dt_pdesc[i] == NULL);
283 assert(dtp->dt_pdesc[i] != NULL);
284 free(dtp->dt_edesc[i]);
285 free(dtp->dt_pdesc[i]);
288 free(dtp->dt_pdesc);
289 dtp->dt_pdesc = NULL;
291 free(dtp->dt_edesc);
292 dtp->dt_edesc = NULL;
293 dtp->dt_maxprobe = 0;
297 dt_format_lookup(dtrace_hdl_t *dtp, int format)
299 if (format == 0 || format > dtp->dt_maxformat)
302 if (dtp->dt_formats == NULL)
305 return (dtp->dt_formats[format - 1]);
309 dt_format_destroy(dtrace_hdl_t *dtp)
313 for (i = 0; i < dtp->dt_maxformat; i++) {
314 if (dtp->dt_formats[i] != NULL)
315 dt_printf_destroy(dtp->dt_formats[i]);
318 free(dtp->dt_formats);
319 dtp->dt_formats = NULL;
323 dt_aggid_add(dtrace_hdl_t *dtp, dtrace_aggid_t id)
329 while (id >= (max = dtp->dt_maxagg) || dtp->dt_aggdesc == NULL) {
335 return (dt_set_errno(dtp, EDT_NOMEM));
339 if (dtp->dt_aggdesc != NULL) {
340 bcopy(dtp->dt_aggdesc, new_aggdesc,
342 free(dtp->dt_aggdesc);
345 dtp->dt_aggdesc = new_aggdesc;
346 dtp->dt_maxagg = new_max;
349 if (dtp->dt_aggdesc[id] == NULL) {
353 return (dt_set_errno(dtp, EDT_NOMEM));
360 if (dt_ioctl(dtp, DTRACEIOC_AGGDESC, agg) == -1) {
362 if (dt_ioctl(dtp, DTRACEIOC_AGGDESC, &agg) == -1) {
364 rval = dt_set_errno(dtp, errno);
380 return (dt_set_errno(dtp, EDT_NOMEM));
383 rval = dt_ioctl(dtp, DTRACEIOC_AGGDESC, agg);
385 rval = dt_ioctl(dtp, DTRACEIOC_AGGDESC, &agg);
389 rval = dt_set_errno(dtp, errno);
403 if (dtp->dt_options[DTRACEOPT_GRABANON] == DTRACEOPT_UNSET &&
417 if ((epid = agg->dtagd_epid) >= dtp->dt_maxprobe ||
418 dtp->dt_pdesc[epid] == NULL) {
419 if ((rval = dt_epid_add(dtp, epid)) != 0) {
425 dtp->dt_aggdesc[id] = agg;
432 dt_aggid_lookup(dtrace_hdl_t *dtp, dtrace_aggid_t aggid,
437 if (aggid >= dtp->dt_maxagg || dtp->dt_aggdesc[aggid] == NULL) {
438 if ((rval = dt_aggid_add(dtp, aggid)) != 0)
442 assert(aggid < dtp->dt_maxagg);
443 assert(dtp->dt_aggdesc[aggid] != NULL);
444 *adp = dtp->dt_aggdesc[aggid];
450 dt_aggid_destroy(dtrace_hdl_t *dtp)
454 assert((dtp->dt_aggdesc != NULL && dtp->dt_maxagg != 0) ||
455 (dtp->dt_aggdesc == NULL && dtp->dt_maxagg == 0));
457 if (dtp->dt_aggdesc == NULL)
460 for (i = 0; i < dtp->dt_maxagg; i++) {
461 if (dtp->dt_aggdesc[i] != NULL)
462 free(dtp->dt_aggdesc[i]);
465 free(dtp->dt_aggdesc);
466 dtp->dt_aggdesc = NULL;
467 dtp->dt_maxagg = 0;
471 dt_strdata_lookup(dtrace_hdl_t *dtp, int idx)
473 if (idx == 0 || idx > dtp->dt_maxstrdata)
476 if (dtp->dt_strdata == NULL)
479 return (dtp->dt_strdata[idx - 1]);
483 dt_strdata_destroy(dtrace_hdl_t *dtp)
487 for (i = 0; i < dtp->dt_maxstrdata; i++) {
488 free(dtp->dt_strdata[i]);
491 free(dtp->dt_strdata);
492 dtp->dt_strdata = NULL;