|  | #ifndef TARGET_OS_SIGINFO_H | 
|  | #define TARGET_OS_SIGINFO_H | 
|  |  | 
|  | #define TARGET_NSIG     32  /* counting 0; could be 33 (mask is 1-32) */ | 
|  | #define TARGET_NSIG_BPW     (sizeof(uint32_t) * 8) | 
|  | #define TARGET_NSIG_WORDS   (TARGET_NSIG / TARGET_NSIG_BPW) | 
|  |  | 
|  | /* this struct defines a stack used during syscall handling */ | 
|  | typedef struct target_sigaltstack { | 
|  | abi_long    ss_sp; | 
|  | abi_ulong   ss_size; | 
|  | abi_long    ss_flags; | 
|  | } target_stack_t; | 
|  |  | 
|  | typedef struct { | 
|  | uint32_t __bits[TARGET_NSIG_WORDS]; | 
|  | } target_sigset_t | 
|  |  | 
|  | struct target_sigaction { | 
|  | abi_ulong   _sa_handler; | 
|  | int32_t     sa_flags; | 
|  | target_sigset_t sa_mask; | 
|  | }; | 
|  |  | 
|  | /* Compare to sys/siginfo.h */ | 
|  | typedef union target_sigval { | 
|  | int         sival_int; | 
|  | abi_ulong   sival_ptr; | 
|  | } target_sigval_t; | 
|  |  | 
|  | struct target_ksiginfo { | 
|  | int32_t     _signo; | 
|  | int32_t     _code; | 
|  | int32_t     _errno; | 
|  | #if TARGET_ABI_BITS == 64 | 
|  | int32_t     _pad; | 
|  | #endif | 
|  | union { | 
|  | struct { | 
|  | int32_t             _pid; | 
|  | int32_t             _uid; | 
|  | target_sigval_t    _value; | 
|  | } _rt; | 
|  |  | 
|  | struct { | 
|  | int32_t             _pid; | 
|  | int32_t             _uid; | 
|  | int32_t             _struct; | 
|  | /* clock_t          _utime; */ | 
|  | /* clock_t          _stime; */ | 
|  | } _child; | 
|  |  | 
|  | struct { | 
|  | abi_ulong           _addr; | 
|  | int32_t             _trap; | 
|  | } _fault; | 
|  |  | 
|  | struct { | 
|  | long                _band; | 
|  | int                 _fd; | 
|  | } _poll; | 
|  | } _reason; | 
|  | }; | 
|  |  | 
|  | typedef union target_siginfo { | 
|  | int8_t     si_pad[128]; | 
|  | struct     target_ksiginfo  _info; | 
|  | } target_siginfo_t; | 
|  |  | 
|  | #define target_si_signo     _info._signo | 
|  | #define target_si_code      _info._code | 
|  | #define target_si_errno     _info._errno | 
|  | #define target_si_addr      _info._reason._fault._addr | 
|  |  | 
|  | #define TARGET_SEGV_MAPERR  1 | 
|  | #define TARGET_SEGV_ACCERR  2 | 
|  |  | 
|  | #define TARGET_TRAP_BRKPT   1 | 
|  | #define TARGET_TRAP_TRACE   2 | 
|  |  | 
|  |  | 
|  | #endif /* TARGET_OS_SIGINFO_H */ |