1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
// Created by cgo -cdefs - DO NOT EDIT
// cgo -cdefs defs_linux.go defs3_linux.go
enum {
EINTR = 0x4,
EAGAIN = 0xb,
ENOMEM = 0xc,
PROT_NONE = 0x0,
PROT_READ = 0x1,
PROT_WRITE = 0x2,
PROT_EXEC = 0x4,
MAP_ANON = 0x20,
MAP_PRIVATE = 0x2,
MAP_FIXED = 0x10,
MADV_DONTNEED = 0x4,
SA_RESTART = 0x10000000,
SA_ONSTACK = 0x8000000,
SA_SIGINFO = 0x4,
SIGHUP = 0x1,
SIGINT = 0x2,
SIGQUIT = 0x3,
SIGILL = 0x4,
SIGTRAP = 0x5,
SIGABRT = 0x6,
SIGBUS = 0x7,
SIGFPE = 0x8,
SIGKILL = 0x9,
SIGUSR1 = 0xa,
SIGSEGV = 0xb,
SIGUSR2 = 0xc,
SIGPIPE = 0xd,
SIGALRM = 0xe,
SIGSTKFLT = 0x10,
SIGCHLD = 0x11,
SIGCONT = 0x12,
SIGSTOP = 0x13,
SIGTSTP = 0x14,
SIGTTIN = 0x15,
SIGTTOU = 0x16,
SIGURG = 0x17,
SIGXCPU = 0x18,
SIGXFSZ = 0x19,
SIGVTALRM = 0x1a,
SIGPROF = 0x1b,
SIGWINCH = 0x1c,
SIGIO = 0x1d,
SIGPWR = 0x1e,
SIGSYS = 0x1f,
FPE_INTDIV = 0x1,
FPE_INTOVF = 0x2,
FPE_FLTDIV = 0x3,
FPE_FLTOVF = 0x4,
FPE_FLTUND = 0x5,
FPE_FLTRES = 0x6,
FPE_FLTINV = 0x7,
FPE_FLTSUB = 0x8,
BUS_ADRALN = 0x1,
BUS_ADRERR = 0x2,
BUS_OBJERR = 0x3,
SEGV_MAPERR = 0x1,
SEGV_ACCERR = 0x2,
ITIMER_REAL = 0x0,
ITIMER_VIRTUAL = 0x1,
ITIMER_PROF = 0x2,
EPOLLIN = 0x1,
EPOLLOUT = 0x4,
EPOLLERR = 0x8,
EPOLLHUP = 0x10,
EPOLLRDHUP = 0x2000,
EPOLLET = -0x80000000,
EPOLL_CLOEXEC = 0x80000,
EPOLL_CTL_ADD = 0x1,
EPOLL_CTL_DEL = 0x2,
EPOLL_CTL_MOD = 0x3,
};
typedef struct Sigset Sigset;
typedef struct Timespec Timespec;
typedef struct Timeval Timeval;
typedef struct Sigaction Sigaction;
typedef struct Siginfo Siginfo;
typedef struct Itimerval Itimerval;
typedef struct EpollEvent EpollEvent;
typedef uint64 Usigset;
#pragma pack on
//struct Sigset {
// uint64 sig[1];
//};
//typedef uint64 Sigset;
struct Timespec {
int64 tv_sec;
int64 tv_nsec;
};
struct Timeval {
int64 tv_sec;
int64 tv_usec;
};
struct Sigaction {
void *sa_handler;
uint64 sa_flags;
void *sa_restorer;
Usigset sa_mask;
};
struct Siginfo {
int32 si_signo;
int32 si_errno;
int32 si_code;
byte Pad_cgo_0[4];
byte _sifields[112];
};
struct Itimerval {
Timeval it_interval;
Timeval it_value;
};
struct EpollEvent {
uint32 events;
byte Pad_cgo_0[4];
uint64 data;
};
#pragma pack off
// Created by cgo -cdefs - DO NOT EDIT
// cgo -cdefs defs_linux.go defs3_linux.go
enum {
O_RDONLY = 0x0,
O_CLOEXEC = 0x80000,
SA_RESTORER = 0,
};
//typedef struct Usigset Usigset;
typedef struct Ptregs Ptregs;
typedef struct Vreg Vreg;
typedef struct SigaltstackT SigaltstackT;
typedef struct Sigcontext Sigcontext;
typedef struct Ucontext Ucontext;
#pragma pack on
//struct Usigset {
// uint64 sig[1];
//};
//typedef Sigset Usigset;
struct Ptregs {
uint64 gpr[32];
uint64 nip;
uint64 msr;
uint64 orig_gpr3;
uint64 ctr;
uint64 link;
uint64 xer;
uint64 ccr;
uint64 softe;
uint64 trap;
uint64 dar;
uint64 dsisr;
uint64 result;
};
typedef uint64 Gregset[48];
typedef float64 FPregset[33];
struct Vreg {
uint32 u[4];
};
struct SigaltstackT {
byte *ss_sp;
int32 ss_flags;
byte Pad_cgo_0[4];
uint64 ss_size;
};
struct Sigcontext {
uint64 _unused[4];
int32 signal;
int32 _pad0;
uint64 handler;
uint64 oldmask;
Ptregs *regs;
uint64 gp_regs[48];
float64 fp_regs[33];
Vreg *v_regs;
int64 vmx_reserve[101];
};
struct Ucontext {
uint64 uc_flags;
Ucontext *uc_link;
SigaltstackT uc_stack;
Usigset uc_sigmask;
Usigset __unused[15];
Sigcontext uc_mcontext;
};
#pragma pack off
|