Lines Matching refs:fbt

49 	fbt_probe_t *fbt = fbt_probetab[FBT_ADDR2NDX(addr)];  in fbt_invop()  local
52 for (; fbt != NULL; fbt = fbt->fbtp_hashnext) { in fbt_invop()
53 if ((uintptr_t)fbt->fbtp_patchpoint != addr) in fbt_invop()
58 if (fbt->fbtp_roffset == 0) { in fbt_invop()
64 dtrace_probe(fbt->fbtp_id, frame->tf_r0, in fbt_invop()
68 dtrace_probe(fbt->fbtp_id, fbt->fbtp_roffset, rval, in fbt_invop()
73 return (fbt->fbtp_rval | (fbt->fbtp_savedval << DTRACE_INVOP_SHIFT)); in fbt_invop()
80 fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val) in fbt_patch_tracepoint() argument
83 *fbt->fbtp_patchpoint = val; in fbt_patch_tracepoint()
84 icache_sync((vm_offset_t)fbt->fbtp_patchpoint, sizeof(val)); in fbt_patch_tracepoint()
93 fbt_probe_t *fbt, *retfbt; in fbt_provide_module_function() local
117 fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO); in fbt_provide_module_function()
118 fbt->fbtp_name = name; in fbt_provide_module_function()
119 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname, in fbt_provide_module_function()
120 name, FBT_ENTRY, 2, fbt); in fbt_provide_module_function()
121 fbt->fbtp_patchpoint = instr; in fbt_provide_module_function()
122 fbt->fbtp_ctl = lf; in fbt_provide_module_function()
123 fbt->fbtp_loadcnt = lf->loadcnt; in fbt_provide_module_function()
124 fbt->fbtp_savedval = *instr; in fbt_provide_module_function()
125 fbt->fbtp_patchval = FBT_BREAKPOINT; in fbt_provide_module_function()
126 fbt->fbtp_rval = DTRACE_INVOP_PUSHM; in fbt_provide_module_function()
127 fbt->fbtp_symindx = symindx; in fbt_provide_module_function()
129 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)]; in fbt_provide_module_function()
130 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt; in fbt_provide_module_function()
161 fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO); in fbt_provide_module_function()
162 fbt->fbtp_name = name; in fbt_provide_module_function()
164 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname, in fbt_provide_module_function()
165 name, FBT_RETURN, 2, fbt); in fbt_provide_module_function()
167 retfbt->fbtp_probenext = fbt; in fbt_provide_module_function()
168 fbt->fbtp_id = retfbt->fbtp_id; in fbt_provide_module_function()
170 retfbt = fbt; in fbt_provide_module_function()
172 fbt->fbtp_patchpoint = instr; in fbt_provide_module_function()
173 fbt->fbtp_ctl = lf; in fbt_provide_module_function()
174 fbt->fbtp_loadcnt = lf->loadcnt; in fbt_provide_module_function()
175 fbt->fbtp_symindx = symindx; in fbt_provide_module_function()
177 fbt->fbtp_rval = DTRACE_INVOP_B; in fbt_provide_module_function()
179 fbt->fbtp_rval = DTRACE_INVOP_POPM; in fbt_provide_module_function()
180 fbt->fbtp_roffset = (uintptr_t)instr - (uintptr_t)symval->value; in fbt_provide_module_function()
181 fbt->fbtp_savedval = *instr; in fbt_provide_module_function()
182 fbt->fbtp_patchval = FBT_BREAKPOINT; in fbt_provide_module_function()
183 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)]; in fbt_provide_module_function()
184 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt; in fbt_provide_module_function()