60 lines
1.1 KiB
C
60 lines
1.1 KiB
C
|
#ifndef ARCH_PERF_REGS_H
|
||
|
#define ARCH_PERF_REGS_H
|
||
|
|
||
|
#include <stdlib.h>
|
||
|
#include <linux/types.h>
|
||
|
#include <asm/perf_regs.h>
|
||
|
|
||
|
void perf_regs_load(u64 *regs);
|
||
|
|
||
|
#define PERF_REGS_MASK ((1ULL << PERF_REG_ARM_MAX) - 1)
|
||
|
#define PERF_REGS_MAX PERF_REG_ARM_MAX
|
||
|
#define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_32
|
||
|
|
||
|
#define PERF_REG_IP PERF_REG_ARM_PC
|
||
|
#define PERF_REG_SP PERF_REG_ARM_SP
|
||
|
|
||
|
static inline const char *perf_reg_name(int id)
|
||
|
{
|
||
|
switch (id) {
|
||
|
case PERF_REG_ARM_R0:
|
||
|
return "r0";
|
||
|
case PERF_REG_ARM_R1:
|
||
|
return "r1";
|
||
|
case PERF_REG_ARM_R2:
|
||
|
return "r2";
|
||
|
case PERF_REG_ARM_R3:
|
||
|
return "r3";
|
||
|
case PERF_REG_ARM_R4:
|
||
|
return "r4";
|
||
|
case PERF_REG_ARM_R5:
|
||
|
return "r5";
|
||
|
case PERF_REG_ARM_R6:
|
||
|
return "r6";
|
||
|
case PERF_REG_ARM_R7:
|
||
|
return "r7";
|
||
|
case PERF_REG_ARM_R8:
|
||
|
return "r8";
|
||
|
case PERF_REG_ARM_R9:
|
||
|
return "r9";
|
||
|
case PERF_REG_ARM_R10:
|
||
|
return "r10";
|
||
|
case PERF_REG_ARM_FP:
|
||
|
return "fp";
|
||
|
case PERF_REG_ARM_IP:
|
||
|
return "ip";
|
||
|
case PERF_REG_ARM_SP:
|
||
|
return "sp";
|
||
|
case PERF_REG_ARM_LR:
|
||
|
return "lr";
|
||
|
case PERF_REG_ARM_PC:
|
||
|
return "pc";
|
||
|
default:
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
#endif /* ARCH_PERF_REGS_H */
|