1 /* Linux-specific definitions: */
3 /* Define various structure offsets to simplify cross-compilation. */
5 /* The first three 64-bit words in a signal frame contain the signal
6 number, siginfo pointer, and sigcontext pointer passed to the
7 signal handler. We use this to locate the sigcontext pointer. */
9 #define LINUX_SIGFRAME_ARG2_OFF 0x10
11 #define LINUX_SC_FLAGS_OFF 0x000
12 #define LINUX_SC_NAT_OFF 0x008
13 #define LINUX_SC_STACK_OFF 0x010
14 #define LINUX_SC_IP_OFF 0x028
15 #define LINUX_SC_CFM_OFF 0x030
16 #define LINUX_SC_UM_OFF 0x038
17 #define LINUX_SC_AR_RSC_OFF 0x040
18 #define LINUX_SC_AR_BSP_OFF 0x048
19 #define LINUX_SC_AR_RNAT_OFF 0x050
20 #define LINUX_SC_AR_CCV 0x058
21 #define LINUX_SC_AR_UNAT_OFF 0x060
22 #define LINUX_SC_AR_FPSR_OFF 0x068
23 #define LINUX_SC_AR_PFS_OFF 0x070
24 #define LINUX_SC_AR_LC_OFF 0x078
25 #define LINUX_SC_PR_OFF 0x080
26 #define LINUX_SC_BR_OFF 0x088
27 #define LINUX_SC_GR_OFF 0x0c8
28 #define LINUX_SC_FR_OFF 0x1d0
29 #define LINUX_SC_RBS_BASE_OFF 0x9d0
30 #define LINUX_SC_LOADRS_OFF 0x9d8
31 #define LINUX_SC_AR_CSD_OFF 0x9e0
32 #define LINUX_SC_AR_SSD_OFF 0x9e8
33 #define LINUX_SC_MASK 0xa50
35 /* Layout of old Linux kernel interrupt frame (struct pt_regs). */
37 #define LINUX_OLD_PT_IPSR_OFF 0x000
38 #define LINUX_OLD_PT_IIP_OFF 0x008
39 #define LINUX_OLD_PT_IFS_OFF 0x010
40 #define LINUX_OLD_PT_UNAT_OFF 0x018
41 #define LINUX_OLD_PT_PFS_OFF 0x020
42 #define LINUX_OLD_PT_RSC_OFF 0x028
43 #define LINUX_OLD_PT_RNAT_OFF 0x030
44 #define LINUX_OLD_PT_BSPSTORE_OFF 0x038
45 #define LINUX_OLD_PT_PR_OFF 0x040
46 #define LINUX_OLD_PT_B6_OFF 0x048
47 #define LINUX_OLD_PT_LOADRS_OFF 0x050
48 #define LINUX_OLD_PT_R1_OFF 0x058
49 #define LINUX_OLD_PT_R2_OFF 0x060
50 #define LINUX_OLD_PT_R3_OFF 0x068
51 #define LINUX_OLD_PT_R12_OFF 0x070
52 #define LINUX_OLD_PT_R13_OFF 0x078
53 #define LINUX_OLD_PT_R14_OFF 0x080
54 #define LINUX_OLD_PT_R15_OFF 0x088
55 #define LINUX_OLD_PT_R8_OFF 0x090
56 #define LINUX_OLD_PT_R9_OFF 0x098
57 #define LINUX_OLD_PT_R10_OFF 0x0a0
58 #define LINUX_OLD_PT_R11_OFF 0x0a8
59 #define LINUX_OLD_PT_R16_OFF 0x0b0
60 #define LINUX_OLD_PT_R17_OFF 0x0b8
61 #define LINUX_OLD_PT_R18_OFF 0x0c0
62 #define LINUX_OLD_PT_R19_OFF 0x0c8
63 #define LINUX_OLD_PT_R20_OFF 0x0d0
64 #define LINUX_OLD_PT_R21_OFF 0x0d8
65 #define LINUX_OLD_PT_R22_OFF 0x0e0
66 #define LINUX_OLD_PT_R23_OFF 0x0e8
67 #define LINUX_OLD_PT_R24_OFF 0x0f0
68 #define LINUX_OLD_PT_R25_OFF 0x0f8
69 #define LINUX_OLD_PT_R26_OFF 0x100
70 #define LINUX_OLD_PT_R27_OFF 0x108
71 #define LINUX_OLD_PT_R28_OFF 0x110
72 #define LINUX_OLD_PT_R29_OFF 0x118
73 #define LINUX_OLD_PT_R30_OFF 0x120
74 #define LINUX_OLD_PT_R31_OFF 0x128
75 #define LINUX_OLD_PT_CCV_OFF 0x130
76 #define LINUX_OLD_PT_FPSR_OFF 0x138
77 #define LINUX_OLD_PT_B0_OFF 0x140
78 #define LINUX_OLD_PT_B7_OFF 0x148
79 #define LINUX_OLD_PT_F6_OFF 0x150
80 #define LINUX_OLD_PT_F7_OFF 0x160
81 #define LINUX_OLD_PT_F8_OFF 0x170
82 #define LINUX_OLD_PT_F9_OFF 0x180
84 /* Layout of new Linux kernel interrupt frame (struct pt_regs). */
86 #define LINUX_PT_B6_OFF 0
87 #define LINUX_PT_B7_OFF 8
88 #define LINUX_PT_CSD_OFF 16
89 #define LINUX_PT_SSD_OFF 24
90 #define LINUX_PT_R8_OFF 32
91 #define LINUX_PT_R9_OFF 40
92 #define LINUX_PT_R10_OFF 48
93 #define LINUX_PT_R11_OFF 56
94 #define LINUX_PT_IPSR_OFF 64
95 #define LINUX_PT_IIP_OFF 72
96 #define LINUX_PT_IFS_OFF 80
97 #define LINUX_PT_UNAT_OFF 88
98 #define LINUX_PT_PFS_OFF 96
99 #define LINUX_PT_RSC_OFF 104
100 #define LINUX_PT_RNAT_OFF 112
101 #define LINUX_PT_BSPSTORE_OFF 120
102 #define LINUX_PT_PR_OFF 128
103 #define LINUX_PT_B0_OFF 136
104 #define LINUX_PT_LOADRS_OFF 144
105 #define LINUX_PT_R1_OFF 152
106 #define LINUX_PT_R12_OFF 160
107 #define LINUX_PT_R13_OFF 168
108 #define LINUX_PT_FPSR_OFF 176
109 #define LINUX_PT_R15_OFF 184
110 #define LINUX_PT_R14_OFF 192
111 #define LINUX_PT_R2_OFF 200
112 #define LINUX_PT_R3_OFF 208
113 #define LINUX_PT_R16_OFF 216
114 #define LINUX_PT_R17_OFF 224
115 #define LINUX_PT_R18_OFF 232
116 #define LINUX_PT_R19_OFF 240
117 #define LINUX_PT_R20_OFF 248
118 #define LINUX_PT_R21_OFF 256
119 #define LINUX_PT_R22_OFF 264
120 #define LINUX_PT_R23_OFF 272
121 #define LINUX_PT_R24_OFF 280
122 #define LINUX_PT_R25_OFF 288
123 #define LINUX_PT_R26_OFF 296
124 #define LINUX_PT_R27_OFF 304
125 #define LINUX_PT_R28_OFF 312
126 #define LINUX_PT_R29_OFF 320
127 #define LINUX_PT_R30_OFF 328
128 #define LINUX_PT_R31_OFF 336
129 #define LINUX_PT_CCV_OFF 344
130 #define LINUX_PT_F6_OFF 352
131 #define LINUX_PT_F7_OFF 368
132 #define LINUX_PT_F8_OFF 384
133 #define LINUX_PT_F9_OFF 400
134 #define LINUX_PT_F10_OFF 416
135 #define LINUX_PT_F11_OFF 432
137 #define LINUX_PT_P_NONSYS 5 /* must match pNonSys in entry.h */