summaryrefslogtreecommitdiff
path: root/src/runtime/defs_linux_386.h
blob: 24a05d862af0b2f22d21427048eed11c12d9b365 (plain)
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 defs2_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_RESTORER	= 0x4000000,
	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,

	O_RDONLY	= 0x0,
	O_CLOEXEC	= 0x80000,

	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 Fpreg Fpreg;
typedef struct Fpxreg Fpxreg;
typedef struct Xmmreg Xmmreg;
typedef struct Fpstate Fpstate;
typedef struct Timespec Timespec;
typedef struct Timeval Timeval;
typedef struct SigactionT SigactionT;
typedef struct Siginfo Siginfo;
typedef struct SigaltstackT SigaltstackT;
typedef struct Sigcontext Sigcontext;
typedef struct Ucontext Ucontext;
typedef struct Itimerval Itimerval;
typedef struct EpollEvent EpollEvent;

#pragma pack on

struct Fpreg {
	uint16	significand[4];
	uint16	exponent;
};
struct Fpxreg {
	uint16	significand[4];
	uint16	exponent;
	uint16	padding[3];
};
struct Xmmreg {
	uint32	element[4];
};
struct Fpstate {
	uint32	cw;
	uint32	sw;
	uint32	tag;
	uint32	ipoff;
	uint32	cssel;
	uint32	dataoff;
	uint32	datasel;
	Fpreg	_st[8];
	uint16	status;
	uint16	magic;
	uint32	_fxsr_env[6];
	uint32	mxcsr;
	uint32	reserved;
	Fpxreg	_fxsr_st[8];
	Xmmreg	_xmm[8];
	uint32	padding1[44];
	byte	anon0[48];
};
struct Timespec {
	int32	tv_sec;
	int32	tv_nsec;
};
struct Timeval {
	int32	tv_sec;
	int32	tv_usec;
};
struct SigactionT {
	void	*k_sa_handler;
	uint32	sa_flags;
	void	*sa_restorer;
	uint64	sa_mask;
};
struct Siginfo {
	int32	si_signo;
	int32	si_errno;
	int32	si_code;
	byte	_sifields[116];
};
struct SigaltstackT {
	byte	*ss_sp;
	int32	ss_flags;
	uint32	ss_size;
};
struct Sigcontext {
	uint16	gs;
	uint16	__gsh;
	uint16	fs;
	uint16	__fsh;
	uint16	es;
	uint16	__esh;
	uint16	ds;
	uint16	__dsh;
	uint32	edi;
	uint32	esi;
	uint32	ebp;
	uint32	esp;
	uint32	ebx;
	uint32	edx;
	uint32	ecx;
	uint32	eax;
	uint32	trapno;
	uint32	err;
	uint32	eip;
	uint16	cs;
	uint16	__csh;
	uint32	eflags;
	uint32	esp_at_signal;
	uint16	ss;
	uint16	__ssh;
	Fpstate	*fpstate;
	uint32	oldmask;
	uint32	cr2;
};
struct Ucontext {
	uint32	uc_flags;
	Ucontext	*uc_link;
	SigaltstackT	uc_stack;
	Sigcontext	uc_mcontext;
	uint32	uc_sigmask;
};
struct Itimerval {
	Timeval	it_interval;
	Timeval	it_value;
};
struct EpollEvent {
	uint32	events;
	byte	data[8]; // to match amd64
};


#pragma pack off