summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/freebsd/amd64/defs.h
blob: 2a295a4794412975f00bf7a3a78cc62dc072953f (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
// godefs -f -m64 defs.c

// MACHINE GENERATED - DO NOT EDIT.

// Constants
enum {
	PROT_NONE = 0,
	PROT_READ = 0x1,
	PROT_WRITE = 0x2,
	PROT_EXEC = 0x4,
	MAP_ANON = 0x1000,
	MAP_PRIVATE = 0x2,
	MAP_FIXED = 0x10,
	SA_SIGINFO = 0x40,
	SA_RESTART = 0x2,
	SA_ONSTACK = 0x1,
	UMTX_OP_WAIT = 0x2,
	UMTX_OP_WAKE = 0x3,
	EINTR = 0x4,
	SIGHUP = 0x1,
	SIGINT = 0x2,
	SIGQUIT = 0x3,
	SIGILL = 0x4,
	SIGTRAP = 0x5,
	SIGABRT = 0x6,
	SIGEMT = 0x7,
	SIGFPE = 0x8,
	SIGKILL = 0x9,
	SIGBUS = 0xa,
	SIGSEGV = 0xb,
	SIGSYS = 0xc,
	SIGPIPE = 0xd,
	SIGALRM = 0xe,
	SIGTERM = 0xf,
	SIGURG = 0x10,
	SIGSTOP = 0x11,
	SIGTSTP = 0x12,
	SIGCONT = 0x13,
	SIGCHLD = 0x14,
	SIGTTIN = 0x15,
	SIGTTOU = 0x16,
	SIGIO = 0x17,
	SIGXCPU = 0x18,
	SIGXFSZ = 0x19,
	SIGVTALRM = 0x1a,
	SIGPROF = 0x1b,
	SIGWINCH = 0x1c,
	SIGINFO = 0x1d,
	SIGUSR1 = 0x1e,
	SIGUSR2 = 0x1f,
	FPE_INTDIV = 0x2,
	FPE_INTOVF = 0x1,
	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,
};

// Types
#pragma pack on

typedef struct Rtprio Rtprio;
struct Rtprio {
	uint16 type;
	uint16 prio;
};

typedef struct ThrParam ThrParam;
struct ThrParam {
	void *start_func;
	void *arg;
	int8 *stack_base;
	uint64 stack_size;
	int8 *tls_base;
	uint64 tls_size;
	int64 *child_tid;
	int64 *parent_tid;
	int32 flags;
	byte pad0[4];
	Rtprio *rtp;
	void* spare[3];
};

typedef struct Sigaltstack Sigaltstack;
struct Sigaltstack {
	int8 *ss_sp;
	uint64 ss_size;
	int32 ss_flags;
	byte pad0[4];
};

typedef struct Sigset Sigset;
struct Sigset {
	uint32 __bits[4];
};

typedef union Sigval Sigval;
union Sigval {
	int32 sival_int;
	void *sival_ptr;
	int32 sigval_int;
	void *sigval_ptr;
};

typedef struct StackT StackT;
struct StackT {
	int8 *ss_sp;
	uint64 ss_size;
	int32 ss_flags;
	byte pad0[4];
};

typedef struct Siginfo Siginfo;
struct Siginfo {
	int32 si_signo;
	int32 si_errno;
	int32 si_code;
	int32 si_pid;
	uint32 si_uid;
	int32 si_status;
	void *si_addr;
	Sigval si_value;
	byte _reason[40];
};

typedef struct Mcontext Mcontext;
struct Mcontext {
	int64 mc_onstack;
	int64 mc_rdi;
	int64 mc_rsi;
	int64 mc_rdx;
	int64 mc_rcx;
	int64 mc_r8;
	int64 mc_r9;
	int64 mc_rax;
	int64 mc_rbx;
	int64 mc_rbp;
	int64 mc_r10;
	int64 mc_r11;
	int64 mc_r12;
	int64 mc_r13;
	int64 mc_r14;
	int64 mc_r15;
	uint32 mc_trapno;
	uint16 mc_fs;
	uint16 mc_gs;
	int64 mc_addr;
	uint32 mc_flags;
	uint16 mc_es;
	uint16 mc_ds;
	int64 mc_err;
	int64 mc_rip;
	int64 mc_cs;
	int64 mc_rflags;
	int64 mc_rsp;
	int64 mc_ss;
	int64 mc_len;
	int64 mc_fpformat;
	int64 mc_ownedfp;
	int64 mc_fpstate[64];
	int64 mc_fsbase;
	int64 mc_gsbase;
	int64 mc_spare[6];
};

typedef struct Ucontext Ucontext;
struct Ucontext {
	Sigset uc_sigmask;
	Mcontext uc_mcontext;
	Ucontext *uc_link;
	StackT uc_stack;
	int32 uc_flags;
	int32 __spare__[4];
	byte pad0[12];
};
#pragma pack off