Lines Matching refs:bp

333 int arch_install_hw_breakpoint(struct perf_event *bp)  in arch_install_hw_breakpoint()  argument
335 struct arch_hw_breakpoint *info = counter_arch_bp(bp); in arch_install_hw_breakpoint()
361 *slot = bp; in arch_install_hw_breakpoint()
390 void arch_uninstall_hw_breakpoint(struct perf_event *bp) in arch_uninstall_hw_breakpoint() argument
392 struct arch_hw_breakpoint *info = counter_arch_bp(bp); in arch_uninstall_hw_breakpoint()
412 if (*slot == bp) { in arch_uninstall_hw_breakpoint()
459 int arch_check_bp_in_kernelspace(struct perf_event *bp) in arch_check_bp_in_kernelspace() argument
463 struct arch_hw_breakpoint *info = counter_arch_bp(bp); in arch_check_bp_in_kernelspace()
521 static int arch_build_bp_info(struct perf_event *bp) in arch_build_bp_info() argument
523 struct arch_hw_breakpoint *info = counter_arch_bp(bp); in arch_build_bp_info()
526 switch (bp->attr.bp_type) { in arch_build_bp_info()
544 switch (bp->attr.bp_len) { in arch_build_bp_info()
575 info->address = bp->attr.bp_addr; in arch_build_bp_info()
579 if (arch_check_bp_in_kernelspace(bp)) in arch_build_bp_info()
583 info->ctrl.enabled = !bp->attr.disabled; in arch_build_bp_info()
594 int arch_validate_hwbkpt_settings(struct perf_event *bp) in arch_validate_hwbkpt_settings() argument
596 struct arch_hw_breakpoint *info = counter_arch_bp(bp); in arch_validate_hwbkpt_settings()
605 ret = arch_build_bp_info(bp); in arch_validate_hwbkpt_settings()
634 if (!bp->overflow_handler) { in arch_validate_hwbkpt_settings()
643 if (arch_check_bp_in_kernelspace(bp)) in arch_validate_hwbkpt_settings()
650 if (!bp->hw.target) in arch_validate_hwbkpt_settings()
670 static void enable_single_step(struct perf_event *bp, u32 addr) in enable_single_step() argument
672 struct arch_hw_breakpoint *info = counter_arch_bp(bp); in enable_single_step()
674 arch_uninstall_hw_breakpoint(bp); in enable_single_step()
681 arch_install_hw_breakpoint(bp); in enable_single_step()
684 static void disable_single_step(struct perf_event *bp) in disable_single_step() argument
686 arch_uninstall_hw_breakpoint(bp); in disable_single_step()
687 counter_arch_bp(bp)->step_ctrl.enabled = 0; in disable_single_step()
688 arch_install_hw_breakpoint(bp); in disable_single_step()
801 struct perf_event *bp, **slots; in breakpoint_handler() local
814 bp = slots[i]; in breakpoint_handler()
816 if (bp == NULL) in breakpoint_handler()
819 info = counter_arch_bp(bp); in breakpoint_handler()
832 perf_bp_event(bp, regs); in breakpoint_handler()
833 if (!bp->overflow_handler) in breakpoint_handler()
834 enable_single_step(bp, addr); in breakpoint_handler()
841 disable_single_step(bp); in breakpoint_handler()
1122 void hw_breakpoint_pmu_read(struct perf_event *bp) in hw_breakpoint_pmu_read() argument