Linux Perf
unwind-libunwind.c
Go to the documentation of this file.
1 // SPDX-License-Identifier: GPL-2.0
2 
3 #include <errno.h>
4 #include <libunwind.h>
5 #include "perf_regs.h"
6 #include "../../util/unwind.h"
7 #include "../../util/debug.h"
8 
9 int libunwind__arch_reg_id(int regnum)
10 {
11  switch (regnum) {
12  case UNW_ARM_R0:
13  return PERF_REG_ARM_R0;
14  case UNW_ARM_R1:
15  return PERF_REG_ARM_R1;
16  case UNW_ARM_R2:
17  return PERF_REG_ARM_R2;
18  case UNW_ARM_R3:
19  return PERF_REG_ARM_R3;
20  case UNW_ARM_R4:
21  return PERF_REG_ARM_R4;
22  case UNW_ARM_R5:
23  return PERF_REG_ARM_R5;
24  case UNW_ARM_R6:
25  return PERF_REG_ARM_R6;
26  case UNW_ARM_R7:
27  return PERF_REG_ARM_R7;
28  case UNW_ARM_R8:
29  return PERF_REG_ARM_R8;
30  case UNW_ARM_R9:
31  return PERF_REG_ARM_R9;
32  case UNW_ARM_R10:
33  return PERF_REG_ARM_R10;
34  case UNW_ARM_R11:
35  return PERF_REG_ARM_FP;
36  case UNW_ARM_R12:
37  return PERF_REG_ARM_IP;
38  case UNW_ARM_R13:
39  return PERF_REG_ARM_SP;
40  case UNW_ARM_R14:
41  return PERF_REG_ARM_LR;
42  case UNW_ARM_R15:
43  return PERF_REG_ARM_PC;
44  default:
45  pr_err("unwind: invalid reg id %d\n", regnum);
46  return -EINVAL;
47  }
48 
49  return -EINVAL;
50 }
int libunwind__arch_reg_id(int regnum)
#define pr_err(fmt,...)
Definition: json.h:21