Lines Matching defs:fbt
25 * $FreeBSD: head/sys/cddl/dev/fbt/x86/fbt_isa.c 309785 2016-12-10 03:11:05Z markj $
52 #include "fbt.h"
81 fbt_probe_t *fbt;
95 fbt = fbt_probetab[FBT_ADDR2NDX(addr)];
96 for (; fbt != NULL; fbt = fbt->fbtp_hashnext) {
97 if ((uintptr_t)fbt->fbtp_patchpoint == addr) {
98 if (fbt->fbtp_roffset == 0) {
100 /* fbt->fbtp_rval == DTRACE_INVOP_PUSHQ_RBP */
132 dtrace_probe(fbt->fbtp_id, arg0, arg1,
150 dtrace_probe(fbt->fbtp_id, fbt->fbtp_roffset,
155 return (fbt->fbtp_rval);
167 fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val)
170 *fbt->fbtp_patchpoint = val;
182 fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val)
196 for (; fbt != NULL; fbt = fbt->fbtp_next) {
197 *fbt->fbtp_patchpoint = val;
224 fbt_probe_t *fbt, *retfbt;
297 fbt = kmem_zalloc(sizeof (*fbt), KM_SLEEP);
298 fbt->fbtp_name = name;
299 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
300 name, FBT_ENTRY, 3, fbt);
301 fbt->fbtp_patchpoint = instr;
303 fbt->fbtp_ctl = lf;
304 fbt->fbtp_loadcnt = lf->loadcnt;
307 fbt->fbtp_ctl = mod;
309 fbt->fbtp_rval = DTRACE_INVOP_PUSHL_EBP;
310 fbt->fbtp_savedval = *instr;
311 fbt->fbtp_patchval = FBT_PATCHVAL;
312 fbt->fbtp_symindx = symindx;
314 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
315 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
385 fbt = kmem_zalloc(sizeof (*fbt), KM_SLEEP);
386 fbt->fbtp_name = name;
389 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
390 name, FBT_RETURN, 3, fbt);
392 retfbt->fbtp_next = fbt;
393 fbt->fbtp_id = retfbt->fbtp_id;
396 retfbt = fbt;
397 fbt->fbtp_patchpoint = instr;
399 fbt->fbtp_ctl = lf;
400 fbt->fbtp_loadcnt = lf->loadcnt;
403 fbt->fbtp_ctl = mod;
405 fbt->fbtp_symindx = symindx;
409 fbt->fbtp_rval = DTRACE_INVOP_POPL_EBP;
412 fbt->fbtp_rval = DTRACE_INVOP_LEAVE;
414 fbt->fbtp_roffset =
419 fbt->fbtp_rval = DTRACE_INVOP_RET;
420 fbt->fbtp_roffset =
424 fbt->fbtp_savedval = *instr;
425 fbt->fbtp_patchval = FBT_PATCHVAL;
426 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
427 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;