1// created by cgo -cdefs and then converted to Go
2// cgo -cdefs defs_darwin.go
3
4package runtime
5
6import "unsafe"
7
8const (
9	_EINTR     = 0x4
10	_EFAULT    = 0xe
11	_EAGAIN    = 0x23
12	_ETIMEDOUT = 0x3c
13
14	_PROT_NONE  = 0x0
15	_PROT_READ  = 0x1
16	_PROT_WRITE = 0x2
17	_PROT_EXEC  = 0x4
18
19	_MAP_ANON    = 0x1000
20	_MAP_PRIVATE = 0x2
21	_MAP_FIXED   = 0x10
22
23	_MADV_DONTNEED      = 0x4
24	_MADV_FREE          = 0x5
25	_MADV_FREE_REUSABLE = 0x7
26	_MADV_FREE_REUSE    = 0x8
27
28	_SA_SIGINFO   = 0x40
29	_SA_RESTART   = 0x2
30	_SA_ONSTACK   = 0x1
31	_SA_USERTRAMP = 0x100
32	_SA_64REGSET  = 0x200
33
34	_SIGHUP    = 0x1
35	_SIGINT    = 0x2
36	_SIGQUIT   = 0x3
37	_SIGILL    = 0x4
38	_SIGTRAP   = 0x5
39	_SIGABRT   = 0x6
40	_SIGEMT    = 0x7
41	_SIGFPE    = 0x8
42	_SIGKILL   = 0x9
43	_SIGBUS    = 0xa
44	_SIGSEGV   = 0xb
45	_SIGSYS    = 0xc
46	_SIGPIPE   = 0xd
47	_SIGALRM   = 0xe
48	_SIGTERM   = 0xf
49	_SIGURG    = 0x10
50	_SIGSTOP   = 0x11
51	_SIGTSTP   = 0x12
52	_SIGCONT   = 0x13
53	_SIGCHLD   = 0x14
54	_SIGTTIN   = 0x15
55	_SIGTTOU   = 0x16
56	_SIGIO     = 0x17
57	_SIGXCPU   = 0x18
58	_SIGXFSZ   = 0x19
59	_SIGVTALRM = 0x1a
60	_SIGPROF   = 0x1b
61	_SIGWINCH  = 0x1c
62	_SIGINFO   = 0x1d
63	_SIGUSR1   = 0x1e
64	_SIGUSR2   = 0x1f
65
66	_FPE_INTDIV = 0x7
67	_FPE_INTOVF = 0x8
68	_FPE_FLTDIV = 0x1
69	_FPE_FLTOVF = 0x2
70	_FPE_FLTUND = 0x3
71	_FPE_FLTRES = 0x4
72	_FPE_FLTINV = 0x5
73	_FPE_FLTSUB = 0x6
74
75	_BUS_ADRALN = 0x1
76	_BUS_ADRERR = 0x2
77	_BUS_OBJERR = 0x3
78
79	_SEGV_MAPERR = 0x1
80	_SEGV_ACCERR = 0x2
81
82	_ITIMER_REAL    = 0x0
83	_ITIMER_VIRTUAL = 0x1
84	_ITIMER_PROF    = 0x2
85
86	_EV_ADD       = 0x1
87	_EV_DELETE    = 0x2
88	_EV_CLEAR     = 0x20
89	_EV_RECEIPT   = 0x40
90	_EV_ERROR     = 0x4000
91	_EV_EOF       = 0x8000
92	_EVFILT_READ  = -0x1
93	_EVFILT_WRITE = -0x2
94
95	_PTHREAD_CREATE_DETACHED = 0x2
96
97	_F_SETFD    = 0x2
98	_F_GETFL    = 0x3
99	_F_SETFL    = 0x4
100	_FD_CLOEXEC = 0x1
101
102	_O_NONBLOCK = 4
103)
104
105type stackt struct {
106	ss_sp     *byte
107	ss_size   uintptr
108	ss_flags  int32
109	pad_cgo_0 [4]byte
110}
111
112type sigactiont struct {
113	__sigaction_u [8]byte
114	sa_tramp      unsafe.Pointer
115	sa_mask       uint32
116	sa_flags      int32
117}
118
119type usigactiont struct {
120	__sigaction_u [8]byte
121	sa_mask       uint32
122	sa_flags      int32
123}
124
125type siginfo struct {
126	si_signo  int32
127	si_errno  int32
128	si_code   int32
129	si_pid    int32
130	si_uid    uint32
131	si_status int32
132	si_addr   *byte
133	si_value  [8]byte
134	si_band   int64
135	__pad     [7]uint64
136}
137
138type timeval struct {
139	tv_sec    int64
140	tv_usec   int32
141	pad_cgo_0 [4]byte
142}
143
144func (tv *timeval) set_usec(x int32) {
145	tv.tv_usec = x
146}
147
148type itimerval struct {
149	it_interval timeval
150	it_value    timeval
151}
152
153type timespec struct {
154	tv_sec  int64
155	tv_nsec int64
156}
157
158//go:nosplit
159func (ts *timespec) setNsec(ns int64) {
160	ts.tv_sec = ns / 1e9
161	ts.tv_nsec = ns % 1e9
162}
163
164type exceptionstate64 struct {
165	far uint64 // virtual fault addr
166	esr uint32 // exception syndrome
167	exc uint32 // number of arm exception taken
168}
169
170type regs64 struct {
171	x     [29]uint64 // registers x0 to x28
172	fp    uint64     // frame register, x29
173	lr    uint64     // link register, x30
174	sp    uint64     // stack pointer, x31
175	pc    uint64     // program counter
176	cpsr  uint32     // current program status register
177	__pad uint32
178}
179
180type neonstate64 struct {
181	v    [64]uint64 // actually [32]uint128
182	fpsr uint32
183	fpcr uint32
184}
185
186type mcontext64 struct {
187	es exceptionstate64
188	ss regs64
189	ns neonstate64
190}
191
192type ucontext struct {
193	uc_onstack  int32
194	uc_sigmask  uint32
195	uc_stack    stackt
196	uc_link     *ucontext
197	uc_mcsize   uint64
198	uc_mcontext *mcontext64
199}
200
201type keventt struct {
202	ident  uint64
203	filter int16
204	flags  uint16
205	fflags uint32
206	data   int64
207	udata  *byte
208}
209
210type pthread uintptr
211type pthreadattr struct {
212	X__sig    int64
213	X__opaque [56]int8
214}
215type pthreadmutex struct {
216	X__sig    int64
217	X__opaque [56]int8
218}
219type pthreadmutexattr struct {
220	X__sig    int64
221	X__opaque [8]int8
222}
223type pthreadcond struct {
224	X__sig    int64
225	X__opaque [40]int8
226}
227type pthreadcondattr struct {
228	X__sig    int64
229	X__opaque [8]int8
230}
231
232type machTimebaseInfo struct {
233	numer uint32
234	denom uint32
235}
236