| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _PERF_DWARF_REGS_H_ |
| #define _PERF_DWARF_REGS_H_ |
| #include "annotate.h" |
| |
| #define DWARF_REG_PC 0xd3af9c /* random number */ |
| #define DWARF_REG_FB 0xd3affb /* random number */ |
| |
| #ifdef HAVE_DWARF_SUPPORT |
| const char *get_arch_regstr(unsigned int n); |
| /* |
| * get_dwarf_regstr - Returns ftrace register string from DWARF regnum |
| * n: DWARF register number |
| * machine: ELF machine signature (EM_*) |
| */ |
| const char *get_dwarf_regstr(unsigned int n, unsigned int machine); |
| |
| int get_arch_regnum(const char *name); |
| /* |
| * get_dwarf_regnum - Returns DWARF regnum from register name |
| * name: architecture register name |
| * machine: ELF machine signature (EM_*) |
| */ |
| int get_dwarf_regnum(const char *name, unsigned int machine); |
| |
| #else /* HAVE_DWARF_SUPPORT */ |
| |
| static inline int get_dwarf_regnum(const char *name __maybe_unused, |
| unsigned int machine __maybe_unused) |
| { |
| return -1; |
| } |
| #endif |
| |
| #if !defined(__powerpc__) || !defined(HAVE_DWARF_SUPPORT) |
| static inline void get_powerpc_regs(u32 raw_insn __maybe_unused, int is_source __maybe_unused, |
| struct annotated_op_loc *op_loc __maybe_unused) |
| { |
| return; |
| } |
| #else |
| void get_powerpc_regs(u32 raw_insn, int is_source, struct annotated_op_loc *op_loc); |
| #endif |
| |
| #ifdef HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET |
| /* |
| * Arch should support fetching the offset of a register in pt_regs |
| * by its name. See kernel's regs_query_register_offset in |
| * arch/xxx/kernel/ptrace.c. |
| */ |
| int regs_query_register_offset(const char *name); |
| #endif |
| #endif |