| 
									
										
										
										
											2022-05-06 15:49:09 +02:00
										 |  |  | #ifndef TARGET_OS_SIGINFO_H
 | 
					
						
							|  |  |  | #define TARGET_OS_SIGINFO_H
 | 
					
						
							| 
									
										
										
										
											2021-08-05 13:41:52 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | #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
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-06 15:49:09 +02:00
										 |  |  | #endif /* TARGET_OS_SIGINFO_H */
 |