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 */
84