b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
| 2 | /* |
| 3 | * linux/arch/arm/include/asm/perf_event.h |
| 4 | * |
| 5 | * Copyright (C) 2009 picoChip Designs Ltd, Jamie Iles |
| 6 | */ |
| 7 | |
| 8 | #ifndef __ARM_PERF_EVENT_H__ |
| 9 | #define __ARM_PERF_EVENT_H__ |
| 10 | |
| 11 | #ifdef CONFIG_PERF_EVENTS |
| 12 | struct pt_regs; |
| 13 | extern unsigned long perf_instruction_pointer(struct pt_regs *regs); |
| 14 | extern unsigned long perf_misc_flags(struct pt_regs *regs); |
| 15 | #define perf_misc_flags(regs) perf_misc_flags(regs) |
| 16 | #endif |
| 17 | |
| 18 | #define perf_arch_fetch_caller_regs(regs, __ip) { \ |
| 19 | (regs)->ARM_pc = (__ip); \ |
| 20 | frame_pointer((regs)) = (unsigned long) __builtin_frame_address(0); \ |
| 21 | (regs)->ARM_sp = current_stack_pointer; \ |
| 22 | (regs)->ARM_cpsr = SVC_MODE; \ |
| 23 | } |
| 24 | |
| 25 | #endif /* __ARM_PERF_EVENT_H__ */ |