Lines Matching defs:fbt

39 #include "fbt.h"
52 fbt_probe_t *fbt;
55 fbt = fbt_probetab[FBT_ADDR2NDX(addr)];
57 for (; fbt != NULL; fbt = fbt->fbtp_hashnext) {
58 if ((uintptr_t)fbt->fbtp_patchpoint == addr) {
61 dtrace_probe(fbt->fbtp_id, frame->tf_x[0],
66 return (fbt->fbtp_savedval);
74 fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val)
77 *fbt->fbtp_patchpoint = val;
78 cpu_icache_sync_range((vm_offset_t)fbt->fbtp_patchpoint, 4);
85 fbt_probe_t *fbt, *retfbt;
111 fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO);
112 fbt->fbtp_name = name;
113 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
114 name, FBT_ENTRY, 3, fbt);
115 fbt->fbtp_patchpoint = instr;
116 fbt->fbtp_ctl = lf;
117 fbt->fbtp_loadcnt = lf->loadcnt;
118 fbt->fbtp_savedval = *instr;
119 fbt->fbtp_patchval = FBT_PATCHVAL;
120 fbt->fbtp_rval = DTRACE_INVOP_PUSHM;
121 fbt->fbtp_symindx = symindx;
123 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
124 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
149 fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO);
150 fbt->fbtp_name = name;
152 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
153 name, FBT_RETURN, 3, fbt);
155 retfbt->fbtp_next = fbt;
156 fbt->fbtp_id = retfbt->fbtp_id;
158 retfbt = fbt;
160 fbt->fbtp_patchpoint = instr;
161 fbt->fbtp_ctl = lf;
162 fbt->fbtp_loadcnt = lf->loadcnt;
163 fbt->fbtp_symindx = symindx;
165 fbt->fbtp_rval = DTRACE_INVOP_B;
167 fbt->fbtp_rval = DTRACE_INVOP_RET;
168 fbt->fbtp_savedval = *instr;
169 fbt->fbtp_patchval = FBT_PATCHVAL;
170 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
171 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;