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