Lines Matching defs:fbt

85 	fbt_probe_t *fbt = fbt_probetab[FBT_ADDR2NDX(addr)];
87 for (; fbt != NULL; fbt = fbt->fbtp_hashnext) {
88 if ((uintptr_t)fbt->fbtp_patchpoint == addr) {
89 if (fbt->fbtp_roffset == 0) {
117 dtrace_probe(fbt->fbtp_id, stack0, stack1,
135 dtrace_probe(fbt->fbtp_id, fbt->fbtp_roffset,
140 return (fbt->fbtp_rval);
157 fbt_probe_t *fbt, *retfbt;
317 fbt = kmem_zalloc(sizeof (fbt_probe_t), KM_SLEEP);
318 fbt->fbtp_name = name;
319 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
320 name, FBT_ENTRY, 3, fbt);
321 fbt->fbtp_patchpoint = instr;
322 fbt->fbtp_ctl = ctl;
323 fbt->fbtp_loadcnt = ctl->mod_loadcnt;
324 fbt->fbtp_rval = DTRACE_INVOP_PUSHL_EBP;
325 fbt->fbtp_savedval = *instr;
326 fbt->fbtp_patchval = FBT_PATCHVAL;
328 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
329 fbt->fbtp_symndx = i;
330 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
399 fbt = kmem_zalloc(sizeof (fbt_probe_t), KM_SLEEP);
400 fbt->fbtp_name = name;
403 fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
404 name, FBT_RETURN, 3, fbt);
406 retfbt->fbtp_next = fbt;
407 fbt->fbtp_id = retfbt->fbtp_id;
410 retfbt = fbt;
411 fbt->fbtp_patchpoint = instr;
412 fbt->fbtp_ctl = ctl;
413 fbt->fbtp_loadcnt = ctl->mod_loadcnt;
417 fbt->fbtp_rval = DTRACE_INVOP_POPL_EBP;
420 fbt->fbtp_rval = DTRACE_INVOP_LEAVE;
422 fbt->fbtp_roffset =
427 fbt->fbtp_rval = DTRACE_INVOP_RET;
428 fbt->fbtp_roffset =
432 fbt->fbtp_savedval = *instr;
433 fbt->fbtp_patchval = FBT_PATCHVAL;
434 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
435 fbt->fbtp_symndx = i;
436 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
449 fbt_probe_t *fbt = parg, *next, *hash, *last;
450 struct modctl *ctl = fbt->fbtp_ctl;
454 if (ctl != NULL && ctl->mod_loadcnt == fbt->fbtp_loadcnt) {
455 if ((ctl->mod_loadcnt == fbt->fbtp_loadcnt &&
465 ndx = FBT_ADDR2NDX(fbt->fbtp_patchpoint);
469 while (hash != fbt) {
476 last->fbtp_hashnext = fbt->fbtp_hashnext;
478 fbt_probetab[ndx] = fbt->fbtp_hashnext;
481 next = fbt->fbtp_next;
482 kmem_free(fbt, sizeof (fbt_probe_t));
484 fbt = next;
485 } while (fbt != NULL);
492 fbt_probe_t *fbt = parg;
493 struct modctl *ctl = fbt->fbtp_ctl;
499 cmn_err(CE_NOTE, "fbt is failing for probe %s "
501 fbt->fbtp_name, ctl->mod_modname);
512 if (ctl->mod_loadcnt != fbt->fbtp_loadcnt) {
514 cmn_err(CE_NOTE, "fbt is failing for probe %s "
516 fbt->fbtp_name, ctl->mod_modname);
522 for (; fbt != NULL; fbt = fbt->fbtp_next)
523 *fbt->fbtp_patchpoint = fbt->fbtp_patchval;
532 fbt_probe_t *fbt = parg;
533 struct modctl *ctl = fbt->fbtp_ctl;
538 if (!ctl->mod_loaded || (ctl->mod_loadcnt != fbt->fbtp_loadcnt))
541 for (; fbt != NULL; fbt = fbt->fbtp_next)
542 *fbt->fbtp_patchpoint = fbt->fbtp_savedval;
549 fbt_probe_t *fbt = parg;
550 struct modctl *ctl = fbt->fbtp_ctl;
554 if (!ctl->mod_loaded || (ctl->mod_loadcnt != fbt->fbtp_loadcnt))
557 for (; fbt != NULL; fbt = fbt->fbtp_next)
558 *fbt->fbtp_patchpoint = fbt->fbtp_savedval;
565 fbt_probe_t *fbt = parg;
566 struct modctl *ctl = fbt->fbtp_ctl;
570 if (!ctl->mod_loaded || (ctl->mod_loadcnt != fbt->fbtp_loadcnt))
573 for (; fbt != NULL; fbt = fbt->fbtp_next)
574 *fbt->fbtp_patchpoint = fbt->fbtp_patchval;
581 fbt_probe_t *fbt = parg;
582 struct modctl *ctl = fbt->fbtp_ctl;
591 if (!ctl->mod_loaded || (ctl->mod_loadcnt != fbt->fbtp_loadcnt))
594 if (fbt->fbtp_roffset != 0 && desc->dtargd_ndx == 0) {
640 if (ctf_func_info(fp, fbt->fbtp_symndx, &f) == CTF_ERR)
643 if (fbt->fbtp_roffset != 0) {
653 if (ctf_func_args(fp, fbt->fbtp_symndx, argc, argv) == CTF_ERR)
723 if (ddi_create_minor_node(devi, "fbt", S_IFCHR, 0,
725 dtrace_register("fbt", &fbt_attr, DTRACE_PRIV_KERNEL, NULL,