perf_regs.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef ARCH_PERF_REGS_H
  2. #define ARCH_PERF_REGS_H
  3. #include <stdlib.h>
  4. #include <linux/types.h>
  5. #include <asm/perf_regs.h>
  6. void perf_regs_load(u64 *regs);
  7. #define PERF_REGS_MASK ((1ULL << PERF_REG_ARM_MAX) - 1)
  8. #define PERF_REGS_MAX PERF_REG_ARM_MAX
  9. #define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_32
  10. #define PERF_REG_IP PERF_REG_ARM_PC
  11. #define PERF_REG_SP PERF_REG_ARM_SP
  12. static inline const char *perf_reg_name(int id)
  13. {
  14. switch (id) {
  15. case PERF_REG_ARM_R0:
  16. return "r0";
  17. case PERF_REG_ARM_R1:
  18. return "r1";
  19. case PERF_REG_ARM_R2:
  20. return "r2";
  21. case PERF_REG_ARM_R3:
  22. return "r3";
  23. case PERF_REG_ARM_R4:
  24. return "r4";
  25. case PERF_REG_ARM_R5:
  26. return "r5";
  27. case PERF_REG_ARM_R6:
  28. return "r6";
  29. case PERF_REG_ARM_R7:
  30. return "r7";
  31. case PERF_REG_ARM_R8:
  32. return "r8";
  33. case PERF_REG_ARM_R9:
  34. return "r9";
  35. case PERF_REG_ARM_R10:
  36. return "r10";
  37. case PERF_REG_ARM_FP:
  38. return "fp";
  39. case PERF_REG_ARM_IP:
  40. return "ip";
  41. case PERF_REG_ARM_SP:
  42. return "sp";
  43. case PERF_REG_ARM_LR:
  44. return "lr";
  45. case PERF_REG_ARM_PC:
  46. return "pc";
  47. default:
  48. return NULL;
  49. }
  50. return NULL;
  51. }
  52. #endif /* ARCH_PERF_REGS_H */