Lines Matching refs:fbt

37 #include "fbt.h"
65 fbt_probe_t *fbt;
78 fbt = fbt_probetab[FBT_ADDR2NDX(addr)];
79 for (; fbt != NULL; fbt = fbt->fbtp_hashnext) {
80 if ((uintptr_t)fbt->fbtp_patchpoint != addr)
82 fbtrval = fbt->fbtp_rval;
93 for (; fbt != NULL; fbt = fbt->fbtp_tracenext) {
94 ASSERT(fbt->fbtp_rval == fbtrval);
95 if (fbt->fbtp_roffset == 0) {
97 /* fbt->fbtp_rval == DTRACE_INVOP_PUSHQ_RBP */
129 dtrace_probe(fbt->fbtp_id, arg0, arg1,
147 dtrace_probe(fbt->fbtp_id, fbt->fbtp_roffset,
165 fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val)
172 *fbt->fbtp_patchpoint = val;
183 fbt_probe_t *fbt, *hash, *retfbt;
233 fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO);
234 fbt->fbtp_name = name;
235 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
236 name, FBT_ENTRY, FBT_AFRAMES, fbt);
237 fbt->fbtp_patchpoint = instr;
238 fbt->fbtp_ctl = lf;
239 fbt->fbtp_loadcnt = lf->loadcnt;
240 fbt->fbtp_rval = DTRACE_INVOP_PUSHL_EBP;
241 fbt->fbtp_savedval = *instr;
242 fbt->fbtp_patchval = FBT_PATCHVAL;
243 fbt->fbtp_symindx = symindx;
247 if (hash->fbtp_patchpoint == fbt->fbtp_patchpoint) {
248 fbt->fbtp_tracenext = hash->fbtp_tracenext;
249 hash->fbtp_tracenext = fbt;
254 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
255 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
325 fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO);
326 fbt->fbtp_name = name;
329 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
330 name, FBT_RETURN, FBT_AFRAMES, fbt);
332 retfbt->fbtp_probenext = fbt;
333 fbt->fbtp_id = retfbt->fbtp_id;
336 retfbt = fbt;
337 fbt->fbtp_patchpoint = instr;
338 fbt->fbtp_ctl = lf;
339 fbt->fbtp_loadcnt = lf->loadcnt;
340 fbt->fbtp_symindx = symindx;
344 fbt->fbtp_rval = DTRACE_INVOP_POPL_EBP;
347 fbt->fbtp_rval = DTRACE_INVOP_LEAVE;
349 fbt->fbtp_roffset =
354 fbt->fbtp_rval = DTRACE_INVOP_RET;
355 fbt->fbtp_roffset =
359 fbt->fbtp_savedval = *instr;
360 fbt->fbtp_patchval = FBT_PATCHVAL;
361 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
362 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;