brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · 75b28dc Raw
54 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _PERF_DWARF_REGS_H_3#define _PERF_DWARF_REGS_H_4#include "annotate.h"5 6#define DWARF_REG_PC  0xd3af9c /* random number */7#define DWARF_REG_FB  0xd3affb /* random number */8 9#ifdef HAVE_DWARF_SUPPORT10const char *get_arch_regstr(unsigned int n);11/*12 * get_dwarf_regstr - Returns ftrace register string from DWARF regnum13 * n: DWARF register number14 * machine: ELF machine signature (EM_*)15 */16const char *get_dwarf_regstr(unsigned int n, unsigned int machine);17 18int get_arch_regnum(const char *name);19/*20 * get_dwarf_regnum - Returns DWARF regnum from register name21 * name: architecture register name22 * machine: ELF machine signature (EM_*)23 */24int get_dwarf_regnum(const char *name, unsigned int machine);25 26#else /* HAVE_DWARF_SUPPORT */27 28static inline int get_dwarf_regnum(const char *name __maybe_unused,29				   unsigned int machine __maybe_unused)30{31	return -1;32}33#endif34 35#if !defined(__powerpc__) || !defined(HAVE_DWARF_SUPPORT)36static inline void get_powerpc_regs(u32 raw_insn __maybe_unused, int is_source __maybe_unused,37		struct annotated_op_loc *op_loc __maybe_unused)38{39	return;40}41#else42void get_powerpc_regs(u32 raw_insn, int is_source, struct annotated_op_loc *op_loc);43#endif44 45#ifdef HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET46/*47 * Arch should support fetching the offset of a register in pt_regs48 * by its name. See kernel's regs_query_register_offset in49 * arch/xxx/kernel/ptrace.c.50 */51int regs_query_register_offset(const char *name);52#endif53#endif54