Update VERSION for v7.2.0-rc3
[qemu.git] / bsd-user / openbsd / target_os_siginfo.h
1 #ifndef TARGET_OS_SIGINFO_H
2 #define TARGET_OS_SIGINFO_H
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
82 #endif /* TARGET_OS_SIGINFO_H */