]>
Commit | Line | Data |
---|---|---|
9c092804 MA |
1 | #ifndef TARGET_OS_SIGINFO_H |
2 | #define TARGET_OS_SIGINFO_H | |
790baacc WL |
3 | |
4 | #define TARGET_NSIG 32 /* counting 0; could be 33 (mask is 1-32) */ | |
5 | #define TARGET_NSIG_BPW (sizeof(uint32_t) * 8) | |
6 | #define TARGET_NSIG_WORDS (TARGET_NSIG / TARGET_NSIG_BPW) | |
7 | ||
8 | /* this struct defines a stack used during syscall handling */ | |
9 | typedef struct target_sigaltstack { | |
10 | abi_long ss_sp; | |
11 | abi_ulong ss_size; | |
12 | abi_long ss_flags; | |
13 | } target_stack_t; | |
14 | ||
15 | typedef struct { | |
16 | uint32_t __bits[TARGET_NSIG_WORDS]; | |
17 | } target_sigset_t | |
18 | ||
19 | struct target_sigaction { | |
20 | abi_ulong _sa_handler; | |
21 | int32_t sa_flags; | |
22 | target_sigset_t sa_mask; | |
23 | }; | |
24 | ||
25 | /* Compare to sys/siginfo.h */ | |
26 | typedef union target_sigval { | |
27 | int sival_int; | |
28 | abi_ulong sival_ptr; | |
29 | } target_sigval_t; | |
30 | ||
31 | struct target_ksiginfo { | |
32 | int32_t _signo; | |
33 | int32_t _code; | |
34 | int32_t _errno; | |
35 | #if TARGET_ABI_BITS == 64 | |
36 | int32_t _pad; | |
37 | #endif | |
38 | union { | |
39 | struct { | |
40 | int32_t _pid; | |
41 | int32_t _uid; | |
42 | target_sigval_t _value; | |
43 | } _rt; | |
44 | ||
45 | struct { | |
46 | int32_t _pid; | |
47 | int32_t _uid; | |
48 | int32_t _struct; | |
49 | /* clock_t _utime; */ | |
50 | /* clock_t _stime; */ | |
51 | } _child; | |
52 | ||
53 | struct { | |
54 | abi_ulong _addr; | |
55 | int32_t _trap; | |
56 | } _fault; | |
57 | ||
58 | struct { | |
59 | long _band; | |
60 | int _fd; | |
61 | } _poll; | |
62 | } _reason; | |
63 | }; | |
64 | ||
65 | typedef union target_siginfo { | |
66 | int8_t si_pad[128]; | |
67 | struct target_ksiginfo _info; | |
68 | } target_siginfo_t; | |
69 | ||
70 | #define target_si_signo _info._signo | |
71 | #define target_si_code _info._code | |
72 | #define target_si_errno _info._errno | |
73 | #define target_si_addr _info._reason._fault._addr | |
74 | ||
75 | #define TARGET_SEGV_MAPERR 1 | |
76 | #define TARGET_SEGV_ACCERR 2 | |
77 | ||
78 | #define TARGET_TRAP_BRKPT 1 | |
79 | #define TARGET_TRAP_TRACE 2 | |
80 | ||
81 | ||
9c092804 | 82 | #endif /* TARGET_OS_SIGINFO_H */ |