diff options
Diffstat (limited to 'kernel/arch/arm64/include/asm/perf_event.h')
-rw-r--r-- | kernel/arch/arm64/include/asm/perf_event.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/arch/arm64/include/asm/perf_event.h b/kernel/arch/arm64/include/asm/perf_event.h index d26d1d53c..7bd3cdb53 100644 --- a/kernel/arch/arm64/include/asm/perf_event.h +++ b/kernel/arch/arm64/include/asm/perf_event.h @@ -17,11 +17,18 @@ #ifndef __ASM_PERF_EVENT_H #define __ASM_PERF_EVENT_H -#ifdef CONFIG_HW_PERF_EVENTS +#ifdef CONFIG_PERF_EVENTS struct pt_regs; extern unsigned long perf_instruction_pointer(struct pt_regs *regs); extern unsigned long perf_misc_flags(struct pt_regs *regs); #define perf_misc_flags(regs) perf_misc_flags(regs) #endif +#define perf_arch_fetch_caller_regs(regs, __ip) { \ + (regs)->pc = (__ip); \ + (regs)->regs[29] = (unsigned long) __builtin_frame_address(0); \ + (regs)->sp = current_stack_pointer; \ + (regs)->pstate = PSR_MODE_EL1h; \ +} + #endif |