xref: /relibc/src/header/signal/dragonos.rs (revision 3ef630632f9f28038ab7ce841ef9795cace840b4)
1 use core::arch::global_asm;
2 
3 // Needs to be defined in assembly because it can't have a function prologue
4 // rax is register, 25 is RT_SIGRETURN
5 #[cfg(target_arch = "x86_64")]
6 global_asm!(
7     "
8     .global __restore_rt
9     __restore_rt:
10         push   rbp
11         mov    rbp,rsp
12         mov    eax, 15
13         int    0x80
14         nop
15         pop    rbp
16         ret
17 "
18 );
19 
20 // x8 is register, 139 is RT_SIGRETURN
21 #[cfg(target_arch = "aarch64")]
22 global_asm!(
23     "
24     .global __restore_rt
25     __restore_rt:
26         mov x8, #139
27         svc 0
28 "
29 );
30 
31 pub const SIGHUP: usize = 1;
32 pub const SIGINT: usize = 2;
33 pub const SIGQUIT: usize = 3;
34 pub const SIGILL: usize = 4;
35 pub const SIGTRAP: usize = 5;
36 pub const SIGABRT: usize = 6;
37 pub const SIGIOT: usize = SIGABRT;
38 pub const SIGBUS: usize = 7;
39 pub const SIGFPE: usize = 8;
40 pub const SIGKILL: usize = 9;
41 pub const SIGUSR1: usize = 10;
42 pub const SIGSEGV: usize = 11;
43 pub const SIGUSR2: usize = 12;
44 pub const SIGPIPE: usize = 13;
45 pub const SIGALRM: usize = 14;
46 pub const SIGTERM: usize = 15;
47 pub const SIGSTKFLT: usize = 16;
48 pub const SIGCHLD: usize = 17;
49 pub const SIGCONT: usize = 18;
50 pub const SIGSTOP: usize = 19;
51 pub const SIGTSTP: usize = 20;
52 pub const SIGTTIN: usize = 21;
53 pub const SIGTTOU: usize = 22;
54 pub const SIGURG: usize = 23;
55 pub const SIGXCPU: usize = 24;
56 pub const SIGXFSZ: usize = 25;
57 pub const SIGVTALRM: usize = 26;
58 pub const SIGPROF: usize = 27;
59 pub const SIGWINCH: usize = 28;
60 pub const SIGIO: usize = 29;
61 pub const SIGPOLL: usize = SIGIO;
62 pub const SIGPWR: usize = 30;
63 pub const SIGSYS: usize = 31;
64 pub const SIGUNUSED: usize = SIGSYS;
65 pub const NSIG: usize = 32;
66 
67 pub const SA_NOCLDSTOP: usize = 1;
68 pub const SA_NOCLDWAIT: usize = 2;
69 pub const SA_SIGINFO: usize = 4;
70 pub const SA_ONSTACK: usize = 0x0800_0000;
71 pub const SA_RESTART: usize = 0x1000_0000;
72 pub const SA_NODEFER: usize = 0x4000_0000;
73 pub const SA_RESETHAND: usize = 0x8000_0000;
74 pub const SA_RESTORER: usize = 0x0400_0000;
75 
76 pub const SS_ONSTACK: usize = 1;
77 pub const SS_DISABLE: usize = 2;
78 
79 // Those two should be updated from kernel headers
80 pub const MINSIGSTKSZ: usize = 2048;
81 pub const SIGSTKSZ: usize = 8096;
82