xref: /relibc/src/header/signal/redox.rs (revision 7fd366be705b22d855cd01478862dc9ed6453019)
1 // Needs to be defined in assembly because it can't have a function prologue
2 // rax is register, 119 is SIGRETURN
3 #[cfg(target_arch = "x86_64")]
4 global_asm!(
5     "
6     .global __restore_rt
7     __restore_rt:
8         mov $119, %rax
9         syscall
10 "
11 );
12 // x8 is register, 119 is SIGRETURN
13 #[cfg(target_arch = "aarch64")]
14 global_asm!(
15     "
16     .global __restore_rt
17     __restore_rt:
18         mov x8, #119
19         svc 0
20 "
21 );
22 
23 pub const SIGHUP: usize = 1;
24 pub const SIGINT: usize = 2;
25 pub const SIGQUIT: usize = 3;
26 pub const SIGILL: usize = 4;
27 pub const SIGTRAP: usize = 5;
28 pub const SIGABRT: usize = 6;
29 pub const SIGBUS: usize = 7;
30 pub const SIGFPE: usize = 8;
31 pub const SIGKILL: usize = 9;
32 pub const SIGUSR1: usize = 10;
33 pub const SIGSEGV: usize = 11;
34 pub const SIGUSR2: usize = 12;
35 pub const SIGPIPE: usize = 13;
36 pub const SIGALRM: usize = 14;
37 pub const SIGTERM: usize = 15;
38 pub const SIGSTKFLT: usize = 16;
39 pub const SIGCHLD: usize = 17;
40 pub const SIGCONT: usize = 18;
41 pub const SIGSTOP: usize = 19;
42 pub const SIGTSTP: usize = 20;
43 pub const SIGTTIN: usize = 21;
44 pub const SIGTTOU: usize = 22;
45 pub const SIGURG: usize = 23;
46 pub const SIGXCPU: usize = 24;
47 pub const SIGXFSZ: usize = 25;
48 pub const SIGVTALRM: usize = 26;
49 pub const SIGPROF: usize = 27;
50 pub const SIGWINCH: usize = 28;
51 pub const SIGIO: usize = 29;
52 pub const SIGPWR: usize = 30;
53 pub const SIGSYS: usize = 31;
54 pub const NSIG: usize = 32;
55 
56 pub const SA_NOCLDSTOP: usize = 0x00000001;
57 pub const SA_NOCLDWAIT: usize = 0x00000002;
58 pub const SA_SIGINFO: usize = 0x00000004;
59 pub const SA_RESTORER: usize = 0x04000000;
60 pub const SA_ONSTACK: usize = 0x08000000;
61 pub const SA_RESTART: usize = 0x10000000;
62 pub const SA_NODEFER: usize = 0x40000000;
63 pub const SA_RESETHAND: usize = 0x80000000;
64 
65 pub const SS_ONSTACK: usize = 0x00000001;
66 pub const SS_DISABLE: usize = 0x00000002;
67 
68 // TODO: It's just a guess based on Linux
69 pub const MINSIGSTKSZ: usize = 2048;
70 pub const SIGSTKSZ: usize = 8096;
71