Lines Matching refs:fbt
49 fbt_probe_t *fbt; in fbt_invop() local
52 fbt = fbt_probetab[FBT_ADDR2NDX(addr)]; in fbt_invop()
54 for (; fbt != NULL; fbt = fbt->fbtp_hashnext) { in fbt_invop()
55 if ((uintptr_t)fbt->fbtp_patchpoint == addr) { in fbt_invop()
58 if (fbt->fbtp_roffset == 0) { in fbt_invop()
59 dtrace_probe(fbt->fbtp_id, frame->tf_a[0], in fbt_invop()
63 dtrace_probe(fbt->fbtp_id, fbt->fbtp_roffset, in fbt_invop()
68 return (fbt->fbtp_savedval); in fbt_invop()
76 fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val) in fbt_patch_tracepoint() argument
79 switch(fbt->fbtp_patchval) { in fbt_patch_tracepoint()
81 *(uint16_t *)fbt->fbtp_patchpoint = (uint16_t)val; in fbt_patch_tracepoint()
85 *fbt->fbtp_patchpoint = val; in fbt_patch_tracepoint()
95 fbt_probe_t *fbt, *retfbt; in fbt_provide_module_function() local
145 fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO); in fbt_provide_module_function()
146 fbt->fbtp_name = name; in fbt_provide_module_function()
147 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname, in fbt_provide_module_function()
148 name, FBT_ENTRY, FBT_AFRAMES, fbt); in fbt_provide_module_function()
149 fbt->fbtp_patchpoint = instr; in fbt_provide_module_function()
150 fbt->fbtp_ctl = lf; in fbt_provide_module_function()
151 fbt->fbtp_loadcnt = lf->loadcnt; in fbt_provide_module_function()
152 fbt->fbtp_savedval = *instr; in fbt_provide_module_function()
153 fbt->fbtp_patchval = patchval; in fbt_provide_module_function()
154 fbt->fbtp_rval = rval; in fbt_provide_module_function()
155 fbt->fbtp_symindx = symindx; in fbt_provide_module_function()
157 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)]; in fbt_provide_module_function()
158 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt; in fbt_provide_module_function()
186 fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO); in fbt_provide_module_function()
187 fbt->fbtp_name = name; in fbt_provide_module_function()
189 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname, in fbt_provide_module_function()
190 name, FBT_RETURN, FBT_AFRAMES, fbt); in fbt_provide_module_function()
192 retfbt->fbtp_probenext = fbt; in fbt_provide_module_function()
193 fbt->fbtp_id = retfbt->fbtp_id; in fbt_provide_module_function()
195 retfbt = fbt; in fbt_provide_module_function()
197 fbt->fbtp_patchpoint = instr; in fbt_provide_module_function()
198 fbt->fbtp_ctl = lf; in fbt_provide_module_function()
199 fbt->fbtp_loadcnt = lf->loadcnt; in fbt_provide_module_function()
200 fbt->fbtp_symindx = symindx; in fbt_provide_module_function()
201 fbt->fbtp_rval = rval; in fbt_provide_module_function()
202 fbt->fbtp_roffset = (uintptr_t)instr - (uintptr_t)symval->value; in fbt_provide_module_function()
203 fbt->fbtp_savedval = *instr; in fbt_provide_module_function()
204 fbt->fbtp_patchval = patchval; in fbt_provide_module_function()
205 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)]; in fbt_provide_module_function()
206 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt; in fbt_provide_module_function()