Merge tag 'v9.0.0-rc3'
[qemu/ar7.git] / bsd-user / netbsd / target_os_siginfo.h
blobeb57e0a3098faa6ceff30c588069e1c61aa5748c
1 #ifndef TARGET_OS_SIGINFO_H
2 #define TARGET_OS_SIGINFO_H
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)
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;
15 typedef struct {
16 uint32_t __bits[TARGET_NSIG_WORDS];
17 } target_sigset_t
19 struct target_sigaction {
20 abi_ulong _sa_handler;
21 int32_t sa_flags;
22 target_sigset_t sa_mask;
25 /* Compare to sys/siginfo.h */
26 typedef union target_sigval {
27 int sival_int;
28 abi_ulong sival_ptr;
29 } target_sigval_t;
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;
45 struct {
46 int32_t _pid;
47 int32_t _uid;
48 int32_t _struct;
49 /* clock_t _utime; */
50 /* clock_t _stime; */
51 } _child;
53 struct {
54 abi_ulong _addr;
55 int32_t _trap;
56 } _fault;
58 struct {
59 long _band;
60 int _fd;
61 } _poll;
62 } _reason;
65 typedef union target_siginfo {
66 int8_t si_pad[128];
67 struct target_ksiginfo _info;
68 } target_siginfo_t;
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
75 #define TARGET_SEGV_MAPERR 1
76 #define TARGET_SEGV_ACCERR 2
78 #define TARGET_TRAP_BRKPT 1
79 #define TARGET_TRAP_TRACE 2
82 #endif /* TARGET_OS_SIGINFO_H */