1ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux/* Linux-specific definitions: */
2ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux
3ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux/* Define various structure offsets to simplify cross-compilation.  */
4ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux
5ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux/* Offsets for AArch64 Linux "ucontext_t":  */
6ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux
7ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_UC_FLAGS_OFF	0x0
8ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_UC_LINK_OFF	0x8
9ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_UC_STACK_OFF	0x10
10ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_UC_SIGMASK_OFF	0x28
11ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_UC_MCONTEXT_OFF	0xb0
12ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux
13ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux/* Offsets for AArch64 Linux "struct sigcontext":  */
14ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux
15ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_FAULTADDRESS_OFF	0x00
16ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X0_OFF		0x008
17ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X1_OFF		0x010
18ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X2_OFF		0x018
19ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X3_OFF		0x020
20ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X4_OFF		0x028
21ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X5_OFF		0x030
22ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X6_OFF		0x038
23ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X7_OFF		0x040
24ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X8_OFF		0x048
25ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X9_OFF		0x050
26ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X10_OFF	0x058
27ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X11_OFF	0x060
28ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X12_OFF	0x068
29ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X13_OFF	0x070
30ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X14_OFF	0x078
31ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X15_OFF	0x080
32ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X16_OFF	0x088
33ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X17_OFF	0x090
34ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X18_OFF	0x098
35ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X19_OFF	0x0a0
36ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X20_OFF	0x0a8
37ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X21_OFF	0x0b0
38ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X22_OFF	0x0b8
39ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X23_OFF	0x0c0
40ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X24_OFF	0x0c8
41ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X25_OFF	0x0d0
42ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X26_OFF	0x0d8
43ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X27_OFF	0x0e0
44ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X28_OFF	0x0e8
45ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X29_OFF	0x0f0
46ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_X30_OFF	0x0f8
47ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_SP_OFF		0x100
48ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_PC_OFF		0x108
49ac6c0a6535975f1dc2da6e4e2766614baac2a14aYvan Roux#define LINUX_SC_PSTATE_OFF	0x110
50