qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

target_os_siginfo.h (2006B)


      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 */