1 /* $Id: signal.h,v 1.3 1998/04/12 06:20:33 davem Exp $
2  * signal.h: Signal emulation for Solaris
3  *
4  * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
5  */
6 
7 #define SOLARIS_SIGHUP		1
8 #define SOLARIS_SIGINT		2
9 #define SOLARIS_SIGQUIT		3
10 #define SOLARIS_SIGILL		4
11 #define SOLARIS_SIGTRAP		5
12 #define SOLARIS_SIGIOT		6
13 #define SOLARIS_SIGEMT		7
14 #define SOLARIS_SIGFPE		8
15 #define SOLARIS_SIGKILL		9
16 #define SOLARIS_SIGBUS		10
17 #define SOLARIS_SIGSEGV		11
18 #define SOLARIS_SIGSYS		12
19 #define SOLARIS_SIGPIPE		13
20 #define SOLARIS_SIGALRM		14
21 #define SOLARIS_SIGTERM		15
22 #define SOLARIS_SIGUSR1		16
23 #define SOLARIS_SIGUSR2		17
24 #define SOLARIS_SIGCLD		18
25 #define SOLARIS_SIGPWR		19
26 #define SOLARIS_SIGWINCH	20
27 #define SOLARIS_SIGURG		21
28 #define SOLARIS_SIGPOLL		22
29 #define SOLARIS_SIGSTOP		23
30 #define SOLARIS_SIGTSTP		24
31 #define SOLARIS_SIGCONT		25
32 #define SOLARIS_SIGTTIN		26
33 #define SOLARIS_SIGTTOU		27
34 #define SOLARIS_SIGVTALRM	28
35 #define SOLARIS_SIGPROF		29
36 #define SOLARIS_SIGXCPU		30
37 #define SOLARIS_SIGXFSZ		31
38 #define SOLARIS_SIGWAITING	32
39 #define SOLARIS_SIGLWP		33
40 #define SOLARIS_SIGFREEZE	34
41 #define SOLARIS_SIGTHAW		35
42 #define SOLARIS_SIGCANCEL	36
43 #define SOLARIS_SIGRTMIN	37
44 #define SOLARIS_SIGRTMAX	44
45 #define SOLARIS_NSIGNALS	44
46 
47 
48 #define SOLARIS_SA_ONSTACK	1
49 #define SOLARIS_SA_RESETHAND	2
50 #define SOLARIS_SA_RESTART	4
51 #define SOLARIS_SA_SIGINFO	8
52 #define SOLARIS_SA_NODEFER	16
53 #define SOLARIS_SA_NOCLDWAIT	0x10000
54 #define SOLARIS_SA_NOCLDSTOP	0x20000
55 
56 struct sol_siginfo {
57 	int	si_signo;
58 	int	si_code;
59 	int	si_errno;
60 	union	{
61 		char	pad[128-3*sizeof(int)];
62 		struct {
63 			s32	_pid;
64 			union {
65 				struct {
66 					s32	_uid;
67 					s32	_value;
68 				} _kill;
69 				struct {
70 					s32	_utime;
71 					int	_status;
72 					s32	_stime;
73 				} _cld;
74 			} _pdata;
75 		} _proc;
76 		struct { /* SIGSEGV, SIGBUS, SIGILL and SIGFPE */
77 			u32	_addr;
78 			int	_trapno;
79 		} _fault;
80 		struct { /* SIGPOLL, SIGXFSZ */
81 			int	_fd;
82 			s32	_band;
83 		} _file;
84 	} _data;
85 };
86 
87 #define SOLARIS_WUNTRACED	0x04
88 #define SOLARIS_WNOHANG		0x40
89 #define SOLARIS_WEXITED         0x01
90 #define SOLARIS_WTRAPPED        0x02
91 #define SOLARIS_WSTOPPED        WUNTRACED
92 #define SOLARIS_WCONTINUED      0x08
93 #define SOLARIS_WNOWAIT         0x80
94 
95 #define SOLARIS_TRAP_BRKPT      1
96 #define SOLARIS_TRAP_TRACE      2
97 #define SOLARIS_CLD_EXITED      1
98 #define SOLARIS_CLD_KILLED      2
99 #define SOLARIS_CLD_DUMPED      3
100 #define SOLARIS_CLD_TRAPPED     4
101 #define SOLARIS_CLD_STOPPED     5
102 #define SOLARIS_CLD_CONTINUED   6
103 #define SOLARIS_POLL_IN         1
104 #define SOLARIS_POLL_OUT        2
105 #define SOLARIS_POLL_MSG        3
106 #define SOLARIS_POLL_ERR        4
107 #define SOLARIS_POLL_PRI        5
108 #define SOLARIS_POLL_HUP        6
109