]> git.proxmox.com Git - mirror_qemu.git/blame - bsd-user/openbsd/target_os_siginfo.h
bsd-user: Implement host_to_target_rusage and host_to_target_wrusage.
[mirror_qemu.git] / bsd-user / openbsd / target_os_siginfo.h
CommitLineData
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 */
9typedef struct target_sigaltstack {
10 abi_long ss_sp;
11 abi_ulong ss_size;
12 abi_long ss_flags;
13} target_stack_t;
14
15typedef struct {
16 uint32_t __bits[TARGET_NSIG_WORDS];
17} target_sigset_t
18
19struct 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 */
26typedef union target_sigval {
27 int sival_int;
28 abi_ulong sival_ptr;
29} target_sigval_t;
30
31struct 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
65typedef 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 */