Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20211016' into staging
[qemu.git] / linux-user / sparc / target_signal.h
1 #ifndef SPARC_TARGET_SIGNAL_H
2 #define SPARC_TARGET_SIGNAL_H
3
4 #define TARGET_SIGHUP 1
5 #define TARGET_SIGINT 2
6 #define TARGET_SIGQUIT 3
7 #define TARGET_SIGILL 4
8 #define TARGET_SIGTRAP 5
9 #define TARGET_SIGABRT 6
10 #define TARGET_SIGIOT 6
11 #define TARGET_SIGSTKFLT 7 /* actually EMT */
12 #define TARGET_SIGFPE 8
13 #define TARGET_SIGKILL 9
14 #define TARGET_SIGBUS 10
15 #define TARGET_SIGSEGV 11
16 #define TARGET_SIGSYS 12
17 #define TARGET_SIGPIPE 13
18 #define TARGET_SIGALRM 14
19 #define TARGET_SIGTERM 15
20 #define TARGET_SIGURG 16
21 #define TARGET_SIGSTOP 17
22 #define TARGET_SIGTSTP 18
23 #define TARGET_SIGCONT 19
24 #define TARGET_SIGCHLD 20
25 #define TARGET_SIGTTIN 21
26 #define TARGET_SIGTTOU 22
27 #define TARGET_SIGIO 23
28 #define TARGET_SIGXCPU 24
29 #define TARGET_SIGXFSZ 25
30 #define TARGET_SIGVTALRM 26
31 #define TARGET_SIGPROF 27
32 #define TARGET_SIGWINCH 28
33 #define TARGET_SIGPWR 29
34 #define TARGET_SIGUSR1 30
35 #define TARGET_SIGUSR2 31
36 #define TARGET_SIGRTMIN 32
37
38 #define TARGET_SIG_BLOCK 0x01 /* for blocking signals */
39 #define TARGET_SIG_UNBLOCK 0x02 /* for unblocking signals */
40 #define TARGET_SIG_SETMASK 0x04 /* for setting the signal mask */
41
42 /* this struct defines a stack used during syscall handling */
43
44 typedef struct target_sigaltstack {
45 abi_ulong ss_sp;
46 abi_int ss_flags;
47 abi_ulong ss_size;
48 } target_stack_t;
49
50
51 /*
52 * sigaltstack controls
53 */
54 #define TARGET_SS_ONSTACK 1
55 #define TARGET_SS_DISABLE 2
56
57 #define TARGET_SA_NOCLDSTOP 8u
58 #define TARGET_SA_NOCLDWAIT 0x100u
59 #define TARGET_SA_SIGINFO 0x200u
60 #define TARGET_SA_ONSTACK 1u
61 #define TARGET_SA_RESTART 2u
62 #define TARGET_SA_NODEFER 0x20u
63 #define TARGET_SA_RESETHAND 4u
64 #define TARGET_ARCH_HAS_SA_RESTORER 1
65 #define TARGET_ARCH_HAS_KA_RESTORER 1
66
67 #define TARGET_MINSIGSTKSZ 4096
68 #define TARGET_SIGSTKSZ 16384
69
70 #ifdef TARGET_ABI32
71 #define TARGET_ARCH_HAS_SETUP_FRAME
72 #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1
73 #else
74 /* For sparc64, use of KA_RESTORER is mandatory. */
75 #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0
76 #endif
77
78 /* bit-flags */
79 #define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling */
80 /* mask for all SS_xxx flags */
81 #define TARGET_SS_FLAG_BITS TARGET_SS_AUTODISARM
82
83 #endif /* SPARC_TARGET_SIGNAL_H */