Thomas Gleixner | d2912cb | 2019-06-04 10:11:33 +0200 | [diff] [blame^] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
Jamie Iles | 7ada189 | 2010-02-02 20:24:58 +0100 | [diff] [blame] | 2 | /* |
| 3 | * linux/arch/arm/include/asm/perf_event.h |
| 4 | * |
| 5 | * Copyright (C) 2009 picoChip Designs Ltd, Jamie Iles |
Jamie Iles | 7ada189 | 2010-02-02 20:24:58 +0100 | [diff] [blame] | 6 | */ |
| 7 | |
| 8 | #ifndef __ARM_PERF_EVENT_H__ |
| 9 | #define __ARM_PERF_EVENT_H__ |
| 10 | |
Mark Rutland | d39976f | 2014-09-29 17:15:32 +0100 | [diff] [blame] | 11 | #ifdef CONFIG_PERF_EVENTS |
Marc Zyngier | e50c541 | 2012-09-13 16:40:46 +0100 | [diff] [blame] | 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) |
Marc Zyngier | c7cc504 | 2012-11-22 13:05:55 +0100 | [diff] [blame] | 16 | #endif |
Marc Zyngier | e50c541 | 2012-09-13 16:40:46 +0100 | [diff] [blame] | 17 | |
Hou Pengyang | b3eac02 | 2015-05-08 06:43:03 +0100 | [diff] [blame] | 18 | #define perf_arch_fetch_caller_regs(regs, __ip) { \ |
| 19 | (regs)->ARM_pc = (__ip); \ |
| 20 | (regs)->ARM_fp = (unsigned long) __builtin_frame_address(0); \ |
| 21 | (regs)->ARM_sp = current_stack_pointer; \ |
| 22 | (regs)->ARM_cpsr = SVC_MODE; \ |
| 23 | } |
| 24 | |
Jamie Iles | 7ada189 | 2010-02-02 20:24:58 +0100 | [diff] [blame] | 25 | #endif /* __ARM_PERF_EVENT_H__ */ |