xref: /aosp_15_r20/external/musl/arch/x86_64/bits/signal.h (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
2*c9945492SAndroid Build Coastguard Worker  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
3*c9945492SAndroid Build Coastguard Worker 
4*c9945492SAndroid Build Coastguard Worker #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
5*c9945492SAndroid Build Coastguard Worker #define MINSIGSTKSZ 2048
6*c9945492SAndroid Build Coastguard Worker #define SIGSTKSZ 8192
7*c9945492SAndroid Build Coastguard Worker #endif
8*c9945492SAndroid Build Coastguard Worker 
9*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE
10*c9945492SAndroid Build Coastguard Worker enum { REG_R8 = 0 };
11*c9945492SAndroid Build Coastguard Worker #define REG_R8 REG_R8
12*c9945492SAndroid Build Coastguard Worker enum { REG_R9 = 1 };
13*c9945492SAndroid Build Coastguard Worker #define REG_R9 REG_R9
14*c9945492SAndroid Build Coastguard Worker enum { REG_R10 = 2 };
15*c9945492SAndroid Build Coastguard Worker #define REG_R10 REG_R10
16*c9945492SAndroid Build Coastguard Worker enum { REG_R11 = 3 };
17*c9945492SAndroid Build Coastguard Worker #define REG_R11 REG_R11
18*c9945492SAndroid Build Coastguard Worker enum { REG_R12 = 4 };
19*c9945492SAndroid Build Coastguard Worker #define REG_R12 REG_R12
20*c9945492SAndroid Build Coastguard Worker enum { REG_R13 = 5 };
21*c9945492SAndroid Build Coastguard Worker #define REG_R13 REG_R13
22*c9945492SAndroid Build Coastguard Worker enum { REG_R14 = 6 };
23*c9945492SAndroid Build Coastguard Worker #define REG_R14 REG_R14
24*c9945492SAndroid Build Coastguard Worker enum { REG_R15 = 7 };
25*c9945492SAndroid Build Coastguard Worker #define REG_R15 REG_R15
26*c9945492SAndroid Build Coastguard Worker enum { REG_RDI = 8 };
27*c9945492SAndroid Build Coastguard Worker #define REG_RDI REG_RDI
28*c9945492SAndroid Build Coastguard Worker enum { REG_RSI = 9 };
29*c9945492SAndroid Build Coastguard Worker #define REG_RSI REG_RSI
30*c9945492SAndroid Build Coastguard Worker enum { REG_RBP = 10 };
31*c9945492SAndroid Build Coastguard Worker #define REG_RBP REG_RBP
32*c9945492SAndroid Build Coastguard Worker enum { REG_RBX = 11 };
33*c9945492SAndroid Build Coastguard Worker #define REG_RBX REG_RBX
34*c9945492SAndroid Build Coastguard Worker enum { REG_RDX = 12 };
35*c9945492SAndroid Build Coastguard Worker #define REG_RDX REG_RDX
36*c9945492SAndroid Build Coastguard Worker enum { REG_RAX = 13 };
37*c9945492SAndroid Build Coastguard Worker #define REG_RAX REG_RAX
38*c9945492SAndroid Build Coastguard Worker enum { REG_RCX = 14 };
39*c9945492SAndroid Build Coastguard Worker #define REG_RCX REG_RCX
40*c9945492SAndroid Build Coastguard Worker enum { REG_RSP = 15 };
41*c9945492SAndroid Build Coastguard Worker #define REG_RSP REG_RSP
42*c9945492SAndroid Build Coastguard Worker enum { REG_RIP = 16 };
43*c9945492SAndroid Build Coastguard Worker #define REG_RIP REG_RIP
44*c9945492SAndroid Build Coastguard Worker enum { REG_EFL = 17 };
45*c9945492SAndroid Build Coastguard Worker #define REG_EFL REG_EFL
46*c9945492SAndroid Build Coastguard Worker enum { REG_CSGSFS = 18 };
47*c9945492SAndroid Build Coastguard Worker #define REG_CSGSFS REG_CSGSFS
48*c9945492SAndroid Build Coastguard Worker enum { REG_ERR = 19 };
49*c9945492SAndroid Build Coastguard Worker #define REG_ERR REG_ERR
50*c9945492SAndroid Build Coastguard Worker enum { REG_TRAPNO = 20 };
51*c9945492SAndroid Build Coastguard Worker #define REG_TRAPNO REG_TRAPNO
52*c9945492SAndroid Build Coastguard Worker enum { REG_OLDMASK = 21 };
53*c9945492SAndroid Build Coastguard Worker #define REG_OLDMASK REG_OLDMASK
54*c9945492SAndroid Build Coastguard Worker enum { REG_CR2 = 22 };
55*c9945492SAndroid Build Coastguard Worker #define REG_CR2 REG_CR2
56*c9945492SAndroid Build Coastguard Worker #endif
57*c9945492SAndroid Build Coastguard Worker 
58*c9945492SAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
59*c9945492SAndroid Build Coastguard Worker typedef long long greg_t, gregset_t[23];
60*c9945492SAndroid Build Coastguard Worker typedef struct _fpstate {
61*c9945492SAndroid Build Coastguard Worker 	unsigned short cwd, swd, ftw, fop;
62*c9945492SAndroid Build Coastguard Worker 	unsigned long long rip, rdp;
63*c9945492SAndroid Build Coastguard Worker 	unsigned mxcsr, mxcr_mask;
64*c9945492SAndroid Build Coastguard Worker 	struct {
65*c9945492SAndroid Build Coastguard Worker 		unsigned short significand[4], exponent, padding[3];
66*c9945492SAndroid Build Coastguard Worker 	} _st[8];
67*c9945492SAndroid Build Coastguard Worker 	struct {
68*c9945492SAndroid Build Coastguard Worker 		unsigned element[4];
69*c9945492SAndroid Build Coastguard Worker 	} _xmm[16];
70*c9945492SAndroid Build Coastguard Worker 	unsigned padding[24];
71*c9945492SAndroid Build Coastguard Worker } *fpregset_t;
72*c9945492SAndroid Build Coastguard Worker struct sigcontext {
73*c9945492SAndroid Build Coastguard Worker 	unsigned long r8, r9, r10, r11, r12, r13, r14, r15;
74*c9945492SAndroid Build Coastguard Worker 	unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags;
75*c9945492SAndroid Build Coastguard Worker 	unsigned short cs, gs, fs, __pad0;
76*c9945492SAndroid Build Coastguard Worker 	unsigned long err, trapno, oldmask, cr2;
77*c9945492SAndroid Build Coastguard Worker 	struct _fpstate *fpstate;
78*c9945492SAndroid Build Coastguard Worker 	unsigned long __reserved1[8];
79*c9945492SAndroid Build Coastguard Worker };
80*c9945492SAndroid Build Coastguard Worker typedef struct {
81*c9945492SAndroid Build Coastguard Worker 	gregset_t gregs;
82*c9945492SAndroid Build Coastguard Worker 	fpregset_t fpregs;
83*c9945492SAndroid Build Coastguard Worker 	unsigned long long __reserved1[8];
84*c9945492SAndroid Build Coastguard Worker } mcontext_t;
85*c9945492SAndroid Build Coastguard Worker #else
86*c9945492SAndroid Build Coastguard Worker typedef struct {
87*c9945492SAndroid Build Coastguard Worker 	unsigned long __space[32];
88*c9945492SAndroid Build Coastguard Worker } mcontext_t;
89*c9945492SAndroid Build Coastguard Worker #endif
90*c9945492SAndroid Build Coastguard Worker 
91*c9945492SAndroid Build Coastguard Worker struct sigaltstack {
92*c9945492SAndroid Build Coastguard Worker 	void *ss_sp;
93*c9945492SAndroid Build Coastguard Worker 	int ss_flags;
94*c9945492SAndroid Build Coastguard Worker 	size_t ss_size;
95*c9945492SAndroid Build Coastguard Worker };
96*c9945492SAndroid Build Coastguard Worker 
97*c9945492SAndroid Build Coastguard Worker typedef struct __ucontext {
98*c9945492SAndroid Build Coastguard Worker 	unsigned long uc_flags;
99*c9945492SAndroid Build Coastguard Worker 	struct __ucontext *uc_link;
100*c9945492SAndroid Build Coastguard Worker 	stack_t uc_stack;
101*c9945492SAndroid Build Coastguard Worker 	mcontext_t uc_mcontext;
102*c9945492SAndroid Build Coastguard Worker 	sigset_t uc_sigmask;
103*c9945492SAndroid Build Coastguard Worker 	unsigned long __fpregs_mem[64];
104*c9945492SAndroid Build Coastguard Worker } ucontext_t;
105*c9945492SAndroid Build Coastguard Worker 
106*c9945492SAndroid Build Coastguard Worker #define SA_NOCLDSTOP  1
107*c9945492SAndroid Build Coastguard Worker #define SA_NOCLDWAIT  2
108*c9945492SAndroid Build Coastguard Worker #define SA_SIGINFO    4
109*c9945492SAndroid Build Coastguard Worker #define SA_ONSTACK    0x08000000
110*c9945492SAndroid Build Coastguard Worker #define SA_RESTART    0x10000000
111*c9945492SAndroid Build Coastguard Worker #define SA_NODEFER    0x40000000
112*c9945492SAndroid Build Coastguard Worker #define SA_RESETHAND  0x80000000
113*c9945492SAndroid Build Coastguard Worker #define SA_RESTORER   0x04000000
114*c9945492SAndroid Build Coastguard Worker 
115*c9945492SAndroid Build Coastguard Worker #endif
116*c9945492SAndroid Build Coastguard Worker 
117*c9945492SAndroid Build Coastguard Worker #define SIGHUP    1
118*c9945492SAndroid Build Coastguard Worker #define SIGINT    2
119*c9945492SAndroid Build Coastguard Worker #define SIGQUIT   3
120*c9945492SAndroid Build Coastguard Worker #define SIGILL    4
121*c9945492SAndroid Build Coastguard Worker #define SIGTRAP   5
122*c9945492SAndroid Build Coastguard Worker #define SIGABRT   6
123*c9945492SAndroid Build Coastguard Worker #define SIGIOT    SIGABRT
124*c9945492SAndroid Build Coastguard Worker #define SIGBUS    7
125*c9945492SAndroid Build Coastguard Worker #define SIGFPE    8
126*c9945492SAndroid Build Coastguard Worker #define SIGKILL   9
127*c9945492SAndroid Build Coastguard Worker #define SIGUSR1   10
128*c9945492SAndroid Build Coastguard Worker #define SIGSEGV   11
129*c9945492SAndroid Build Coastguard Worker #define SIGUSR2   12
130*c9945492SAndroid Build Coastguard Worker #define SIGPIPE   13
131*c9945492SAndroid Build Coastguard Worker #define SIGALRM   14
132*c9945492SAndroid Build Coastguard Worker #define SIGTERM   15
133*c9945492SAndroid Build Coastguard Worker #define SIGSTKFLT 16
134*c9945492SAndroid Build Coastguard Worker #define SIGCHLD   17
135*c9945492SAndroid Build Coastguard Worker #define SIGCONT   18
136*c9945492SAndroid Build Coastguard Worker #define SIGSTOP   19
137*c9945492SAndroid Build Coastguard Worker #define SIGTSTP   20
138*c9945492SAndroid Build Coastguard Worker #define SIGTTIN   21
139*c9945492SAndroid Build Coastguard Worker #define SIGTTOU   22
140*c9945492SAndroid Build Coastguard Worker #define SIGURG    23
141*c9945492SAndroid Build Coastguard Worker #define SIGXCPU   24
142*c9945492SAndroid Build Coastguard Worker #define SIGXFSZ   25
143*c9945492SAndroid Build Coastguard Worker #define SIGVTALRM 26
144*c9945492SAndroid Build Coastguard Worker #define SIGPROF   27
145*c9945492SAndroid Build Coastguard Worker #define SIGWINCH  28
146*c9945492SAndroid Build Coastguard Worker #define SIGIO     29
147*c9945492SAndroid Build Coastguard Worker #define SIGPOLL   29
148*c9945492SAndroid Build Coastguard Worker #define SIGPWR    30
149*c9945492SAndroid Build Coastguard Worker #define SIGSYS    31
150*c9945492SAndroid Build Coastguard Worker #define SIGUNUSED SIGSYS
151*c9945492SAndroid Build Coastguard Worker 
152*c9945492SAndroid Build Coastguard Worker #define _NSIG 65
153*c9945492SAndroid Build Coastguard Worker 
154