|
|
1.1 root 1: #ifndef __COMMON__SIGINFO_H__
2: #define __COMMON__SIGINFO_H__
3:
4: /*
5: * This internal header file contains definitions related to the internal data
6: * type "__siginfo_t", an internal equivalent to the System V, Release 4 data
7: * type "siginfo_t", but with a private name to avoid accidental reservation
8: * of user-space names. In addition, this internal version of the structure is
9: * not padded to 128 bytes as the user-level version is. Otherwise, the form
10: * of the "siginfo" structure exactly parallels the definition supplied in the
11: * System V, Release 4 ABI.
12: */
13:
14: #include <common/__caddr.h>
15: #include <common/__clock.h>
16: #include <common/__pid.h>
17: #include <common/_uid.h>
18:
19: enum {
20: __ILL_ILLOPC = 1, /* Illegal opcode */
21: __ILL_ILLOPN, /* Illegal operand */
22: __ILL_ILLADR, /* Illegal addressing mode */
23: __ILL_ILLTRAP, /* Illegal trap */
24: __ILL_PRVOPC, /* Priveleged opcode */
25: __ILL_PRVREG, /* Priveleded register */
26: __ILL_COPROC, /* Coprocessor error */
27: __ILL_BADSTK, /* Internal stack error */
28:
29: __FPE_INTDIV = 1, /* Integer divide by zero */
30: __FPE_INTOVF, /* Integer overflow */
31: __FPE_FLTDIV, /* Floating-point divide by zero */
32: __FPE_FLTOVF, /* Floating-point overflow */
33: __FPE_FLTUND, /* Floating-point underflow */
34: __FPE_FLTRES, /* Floating-point inexact result */
35: __FPE_FLTINV, /* Invalid floating-point operation */
36: __FPE_FLTSUB, /* Subscript out of range */
37:
38: __SEGV_MAPERR = 1, /* Address not mapped to object */
39: __SEGV_ACCERR, /* Invalid permissions for object */
40:
41: __BUS_ADRALN = 1, /* Invalid address alignment */
42: __BUS_ADRERR, /* Non-existent physical address */
43: __BUS_OBJERR, /* Object-specific hardware error */
44:
45: __TRAP_BRKPT = 1, /* Process breakpoint */
46: __TRAP_TRACE, /* Process trace trap */
47:
48: __CLD_EXITED = 1, /* Child has exited */
49: __CLD_KILLED, /* Child was killed */
50: __CLD_DUMPED, /* Child terminated abnormally */
51: __CLD_TRAPPED, /* Traced child has trapped */
52: __CLD_STOPPED, /* Child has stopped */
53: __CLD_CONTINUED, /* Stopped child had continued */
54:
55: __POLL_IN = 1, /* Data input available */
56: __POLL_OUT, /* Output buffers available */
57: __POLL_MSG, /* Input message available */
58: __POLL_ERR, /* I/O error */
59: __POLL_PRI, /* High-priority input available */
60: __POLL_HUP /* Device disconnected */
61: };
62:
63: typedef struct __siginfo __siginfo_t;
64:
65: struct __siginfo {
66: int __si_signo;
67: int __si_code;
68: int __si_errno;
69: union {
70: struct {
71: __pid_t _pid;
72: union {
73: struct {
74: n_uid_t _uid;
75: } _kill;
76: struct {
77: __clock_t _utime;
78: int _status;
79: __clock_t _stime;
80: } _cld;
81: } _pdata;
82: } _proc;
83: struct {
84: __caddr_t _addr;
85: } _fault;
86: struct {
87: int _fd;
88: long _band;
89: } _file;
90: } _data;
91: };
92:
93: #define __si_pid _data._proc._pid
94: #define __si_status _data._proc._pdata._cld._status
95: #define __si_stime _data._proc._pdata._cld._stime
96: #define __si_utime _data._proc._pdata._cld._utime
97: #define __si_uid _data._proc._pdata._kill._uid
98: #define __si_addr _data._fault._addr
99: #define __si_fd _data._file._fd
100: #define __si_band _data._file._band
101:
102: #endif /* ! defined (__COMMON__SIGINFO_H__) */
103:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.