]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/valgrind/src/valgrind-3.6.0-svn/include/vki/vki-darwin.h
06d9118082d5cca01ceb4a3875de541353836b02
[l4.git] / l4 / pkg / valgrind / src / valgrind-3.6.0-svn / include / vki / vki-darwin.h
1
2 /*--------------------------------------------------------------------*/
3 /*--- Darwin-specific kernel interface.               vki-darwin.h ---*/
4 /*--------------------------------------------------------------------*/
5
6 /*
7    This file is part of Valgrind, a dynamic binary instrumentation
8    framework.
9
10    Copyright (C) 2007-2010 Apple Inc.
11       Greg Parker  gparker@apple.com
12
13    This program is free software; you can redistribute it and/or
14    modify it under the terms of the GNU General Public License as
15    published by the Free Software Foundation; either version 2 of the
16    License, or (at your option) any later version.
17
18    This program is distributed in the hope that it will be useful, but
19    WITHOUT ANY WARRANTY; without even the implied warranty of
20    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21    General Public License for more details.
22
23    You should have received a copy of the GNU General Public License
24    along with this program; if not, write to the Free Software
25    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
26    02111-1307, USA.
27
28    The GNU General Public License is contained in the file COPYING.
29 */
30
31 /* Unlike vki-linux, this Darwin kernel interface includes system headers
32    directly, to avoid copyright complexity. */
33
34 #ifndef __VKI_DARWIN_H
35 #define __VKI_DARWIN_H
36
37 #include <stdint.h>
38
39 #define vki_int8_t int8_t
40 #define vki_uint8_t uint8_t
41 #define vki_int16_t int16_t
42 #define vki_uint16_t uint16_t
43 #define vki_int32_t int32_t
44 #define vki_uint32_t uint32_t
45 #define vki_int64_t int64_t
46 #define vki_uint64_t uint64_t
47 #define vki_intptr_t intptr_t
48 #define vki_uintptr_t uintptr_t
49
50 #include <sys/types.h>
51
52 #define vki_dev_t dev_t
53 #define vki_mode_t mode_t
54 #define vki_ino_t ino_t
55 #define vki_ino64_t ino64_t
56 #define vki_nlink_t nlink_t
57 #define vki_uid_t uid_t
58 #define vki_gid_t gid_t
59 #define vki_time_t time_t
60 #define vki_off_t off_t
61 #define vki_blkcnt_t blkcnt_t
62 #define vki_blksize_t blksize_t
63 #define vki_size_t size_t
64 #define vki_ssize_t ssize_t
65 #define vki_pid_t pid_t
66 #define vki_socklen_t socklen_t
67 #define vki_suseconds_t suseconds_t
68 #define vki_caddr_t caddr_t
69 #define vki_u_long u_long
70 #define vki_u_short u_short
71 #define vki_clock_t clock_t
72 #define vki_u_int32_t u_int32_t
73 #define vki_u_int16_t u_int16_t
74 #define vki_pthread_t pthread_t
75
76
77 // valgrind special
78
79 // magic mmap() flags
80 #define VKI_MAP_ANONYMOUS MAP_ANON      // linux synonym
81
82 // fds for mmap(MAP_ANON), displayed by vmmap
83 #define VM_TAG_VALGRIND VM_MAKE_TAG(239)  // SkAnonV
84
85 // page sizes
86 #define VKI_MAX_PAGE_SHIFT VKI_PAGE_SHIFT
87 #define VKI_MAX_PAGE_SIZE VKI_PAGE_SIZE
88
89 // types
90 typedef uint32_t vki_u32;
91
92 // linux-like ioctl flags
93 #define _VKI_IOC_DIR(x)         ((x) & IOC_DIRMASK)
94 #define _VKI_IOC_SIZE(x)        IOCPARM_LEN(x)
95 #define _VKI_IOC_NONE           IOC_VOID  /* GrP fixme correct? */
96 #define _VKI_IOC_READ           IOC_OUT
97 #define _VKI_IOC_WRITE          IOC_IN
98
99
100 #include <malloc/malloc.h>
101
102 #define vki_malloc_zone_t malloc_zone_t
103
104
105 #include <sys/time.h>
106
107 #define vki_timeval timeval
108 #define vki_timeval32 timeval32
109 #define vki_timespec timespec
110 #define vki_itimerval itimerval
111 #define vki_timezone timezone
112
113
114 #include <sys/stat.h>
115
116 #define VKI_S_ISBLK(m)  S_ISBLK(m)
117 #define VKI_S_ISCHR(m)  S_ISCHR(m)
118 #define VKI_S_ISDIR(m)  S_ISDIR(m)
119 #define VKI_S_ISFIFO(m) S_ISFIFO(m)
120 #define VKI_S_ISREG(m)  S_ISREG(m)
121 #define VKI_S_ISLNK(m)  S_ISLNK(m)
122 #define VKI_S_ISSOCK(m) S_ISSOCK(m)
123 #define VKI_S_ISWHT(m)  S_ISWHT(m)
124 #define VKI_S_ISXATTR(m) S_ISXATTR(m)
125
126 #define VKI_S_IRWXU     S_IRWXU
127 #define VKI_S_IRUSR     S_IRUSR
128 #define VKI_S_IWUSR     S_IWUSR
129 #define VKI_S_IXUSR     S_IXUSR
130 #define VKI_S_IRWXG     S_IRWXG
131 #define VKI_S_IRGRP     S_IRGRP
132 #define VKI_S_IWGRP     S_IWGRP
133 #define VKI_S_IXGRP     S_IXGRP
134 #define VKI_S_IRWXO     S_IRWXO
135 #define VKI_S_IROTH     S_IROTH
136 #define VKI_S_IWOTH     S_IWOTH
137 #define VKI_S_IXOTH     S_IXOTH
138 #define VKI_S_ISUID     S_ISUID
139 #define VKI_S_ISGID     S_ISGID
140 #define VKI_S_ISVTX     S_ISVTX
141
142 #define vki_stat stat
143 #define vki_stat64 stat64
144
145 #define st_atime      st_atimespec.tv_sec
146 #define st_atime_nsec st_atimespec.tv_nsec
147 #define st_mtime      st_mtimespec.tv_sec
148 #define st_mtime_nsec st_mtimespec.tv_nsec
149 #define st_ctime      st_ctimespec.tv_sec
150 #define st_ctime_nsec st_ctimespec.tv_nsec
151
152
153 #include <sys/dirent.h>
154
155 #define VKI_MAXNAMLEN MAXNAMLEN
156 #define vki_dirent dirent
157
158
159 #include <sys/socket.h>
160 #define VKI_SOCK_STREAM SOCK_STREAM
161 #define VKI_SOCK_DGRAM  SOCK_DGRAM
162 #define VKI_SOCK_RAW    SOCK_RAW
163
164 #define VKI_AF_UNIX     AF_UNIX
165 #define VKI_AF_INET     AF_INET
166 #define VKI_AF_INET6    AF_INET6
167
168 #define VKI_SOL_SOCKET  SOL_SOCKET
169
170 #define VKI_SO_REUSEADDR SO_REUSEADDR
171
172 #define VKI_SO_SNDBUF   SO_SNDBUF
173 #define VKI_SO_RCVBUF   SO_RCVBUF
174 #define VKI_SO_SNDLOWAT SO_SNDLOWAT
175 #define VKI_SO_RCVLOWAT SO_RCVLOWAT
176 #define VKI_SO_SNDTIMEO SO_SNDTIMEO
177 #define VKI_SO_RCVTIMEO SO_RCVTIMEO
178 #define VKI_SO_ERROR    SO_ERROR
179 #define VKI_SO_TYPE     SO_TYPE
180 #define VKI_SO_NREAD    SO_NREAD
181 #define VKI_SO_NKE      SO_NKE
182 #define VKI_SO_NOSIGPIPE        SO_NOSIGPIPE
183 #define VKI_SO_NOADDRERR        SO_NOADDRERR
184 #define VKI_SO_NWRITE   SO_NWRITE
185 #define VKI_SO_LINGER_SEC       SO_LINGER_SEC
186
187 #define vki_sa_family_t sa_family_t
188 #define vki_sockaddr sockaddr
189 #define vki_iovec iovec
190 #define vki_msghdr msghdr
191 #define vki_cmsghdr cmsghdr
192
193
194 #define VKI_CMSG_ALIGN(a)       ALIGN(a)
195 #define VKI_CMSG_DATA(cmsg)     CMSG_DATA(cmsg)
196 #define VKI_CMSG_FIRSTHDR(mhdr) CMSG_FIRSTHDR(mhdr)
197 #define VKI_CMSG_NXTHDR(mhdr, cmsg)     CMSG_NXTHDR(mhdr, cmsg)
198
199 #define VKI_SCM_RIGHTS          SCM_RIGHTS
200 #define VKI_SCM_TIMESTAMP       SCM_TIMESTAMP
201 #define VKI_SCM_CREDS           SCM_CREDS
202
203
204 #include <sys/un.h>
205
206 #define vki_sockaddr_un sockaddr_un
207
208
209 #include <netinet/in.h>
210
211 #define vki_in_addr_t in_addr_t
212 #define vki_in_port_t in_port_t
213 #define vki_in_addr in_addr
214 #define vki_sockaddr_in sockaddr_in
215
216 #define VKI_INADDR_LOOPBACK     INADDR_LOOPBACK
217
218
219 // #include <netinet6/in6.h>
220
221 #define vki_in6_addr in6_addr
222 #define vki_sockaddr_in6 sockaddr_in6
223
224
225 #include <net/if.h>
226
227 #define VKI_IFNAMSIZ    IFNAMSIZ
228
229 #define vki_ifdevmtu ifdevmtu
230 #define vki_ifreq ifreq
231 #define vki_ifr_name    ifr_name
232 #define vki_ifr_addr    ifr_addr
233 #define vki_ifr_dstaddr ifr_dstaddr
234 #define vki_ifr_broadaddr       ifr_broadaddr
235 #define vki_ifr_flags   ifr_flags
236 #define vki_ifr_metric  ifr_metric
237 #define vki_ifr_mtu     ifr_mtu
238 #define vki_ifr_phys    ifr_phys
239 #define vki_ifr_media   ifr_media
240 #define vki_ifr_data    ifr_data
241 #define vki_ifr_devmtu  ifr_devmtu
242 #define vki_ifr_intval  ifr_intval
243
244 #define vki_ifconf ifconf
245 #define vki_ifc_buf     ifc_buf
246 #define vki_ifc_req     ifc_req
247
248
249 #include <sys/fcntl.h>
250
251 #define VKI_SEEK_SET    SEEK_SET
252 #define VKI_SEEK_CUR    SEEK_CUR
253 #define VKI_SEEK_END    SEEK_END
254
255 #define VKI_O_RDONLY    O_RDONLY
256 #define VKI_O_WRONLY    O_WRONLY
257 #define VKI_O_RDWR      O_RDWR
258 #define VKI_O_ACCMODE   O_ACCMODE
259 #define VKI_O_NONBLOCK  O_NONBLOCK
260 #define VKI_O_APPEND    O_APPEND
261 #define VKI_O_SYNC      O_SYN
262 #define VKI_O_SHLOCK    O_SHLOCK
263 #define VKI_O_EXLOCK    O_EXLOCK
264 #define VKI_O_ASYNC     O_ASYNC
265 #define VKI_O_NOFOLLOW  O_NOFOLLOW
266 #define VKI_O_CREAT     O_CREAT
267 #define VKI_O_TRUNC     O_TRUNC
268 #define VKI_O_EXCL      O_EXCL
269 #define VKI_O_EVTONLY   O_EVTONLY
270
271 #define VKI_F_DUPFD     F_DUPFD
272 #define VKI_F_GETFD     F_GETFD
273 #define VKI_F_SETFD     F_SETFD
274 #define VKI_F_GETFL     F_GETFL
275 #define VKI_F_SETFL     F_SETFL
276 #define VKI_F_GETOWN    F_GETOWN
277 #define VKI_F_SETOWN    F_SETOWN
278 #define VKI_F_GETLK     F_GETLK
279 #define VKI_F_SETLK     F_SETLK
280 #define VKI_F_SETLKW    F_SETLKW
281
282 #define VKI_F_CHKCLEAN  F_CHKCLEAN
283 #define VKI_F_PREALLOCATE       F_PREALLOCATE
284 #define VKI_F_SETSIZE   F_SETSIZE
285 #define VKI_F_RDADVISE  F_RDADVISE
286 #define VKI_F_RDAHEAD   F_RDAHEAD
287 #define VKI_F_READBOOTSTRAP     F_READBOOTSTRAP
288 #define VKI_F_WRITEBOOTSTRAP    F_WRITEBOOTSTRAP
289 #define VKI_F_NOCACHE   F_NOCACHE
290 #define VKI_F_LOG2PHYS  F_LOG2PHYS
291 #define VKI_F_GETPATH   F_GETPATH
292 #define VKI_F_ADDSIGS   F_ADDSIGS
293 #define VKI_F_FULLFSYNC F_FULLFSYNC
294 #define VKI_F_PATHPKG_CHECK     F_PATHPKG_CHECK
295 #define VKI_F_FREEZE_FS F_FREEZE_FS
296 #define VKI_F_THAW_FS   F_THAW_FS
297 #define VKI_F_GLOBAL_NOCACHE    F_GLOBAL_NOCACHE
298
299 #define VKI_FD_CLOEXEC  FD_CLOEXEC
300
301 #define vki_radvisory radvisory
302 #define vki_fstore fstore
303 #define vki_fbootstraptransfer fbootstraptransfer
304 #define vki_log2phys log2phys
305 #define vki_fsignatures_t fsignatures_t
306
307 // These constants aren't in a standard header, they are from the kernel code:
308 // xnu-1228.3.13/bsd/sys/codesign.h
309 // Mac OS X 10.5.6 - Darwin 9.6
310 #define VKI_CS_OPS_STATUS           0       /* return status */
311 #define VKI_CS_OPS_MARKINVALID      1       /* invalidate process */
312 #define VKI_CS_OPS_MARKHARD         2       /* set HARD flag */
313 #define VKI_CS_OPS_MARKKILL         3       /* set KILL flag (sticky) */
314 #define VKI_CS_OPS_PIDPATH          4       /* get executable's pathname */
315 #define VKI_CS_OPS_CDHASH           5       /* get code directory hash */
316
317 #include <sys/mman.h>
318
319 #define VKI_PROT_NONE   PROT_NONE
320 #define VKI_PROT_READ   PROT_READ
321 #define VKI_PROT_WRITE  PROT_WRITE
322 #define VKI_PROT_EXEC   PROT_EXEC
323
324 #define VKI_MAP_SHARED  MAP_SHARED
325 #define VKI_MAP_PRIVATE MAP_PRIVATE
326 #define VKI_MAP_FIXED   MAP_FIXED
327 #define VKI_MAP_RENAME  MAP_RENAME
328 #define VKI_MAP_NORESERVE       MAP_NORESERVE
329 #define VKI_MAP_RESERVED0080    MAP_RESERVED0080
330 #define VKI_MAP_NOEXTEND        MAP_NOEXTEND
331 #define VKI_MAP_HASSEMAPHORE    MAP_HASSEMAPHORE
332 #define VKI_MAP_FILE    MAP_FILE
333 #define VKI_MAP_ANON    MAP_ANON
334 #define VKI_MAP_FAILED  MAP_FAILED
335
336
337 #include <mach/vm_param.h>
338
339 #define VKI_PAGE_SHIFT PAGE_SHIFT
340 #define VKI_PAGE_SIZE PAGE_SIZE
341 #define VKI_PAGE_MASK PAGE_MASK
342
343
344 #include <sys/vmparam.h>
345
346 #define VKI_USRSTACK USRSTACK
347 #define VKI_USRSTACK64 USRSTACK64
348
349
350 #include <mach/mach_time.h>
351
352 #define vki_mach_timebase_info mach_timebase_info
353
354
355 #include <sys/syslimits.h>
356
357 #define VKI_PATH_MAX PATH_MAX
358
359
360 #include <sys/param.h>
361
362 #define VKI_MAXPATHLEN MAXPATHLEN
363
364
365 #include <sys/signal.h>
366
367 /* While we fully intend to make 'vki_sigset_t' match the native
368    Darwin 'sigset_t', we can't just clone the Darwin sigset_t type,
369    because it isn't an array, and the VG_(sigfillset) etc functions
370    assume it is.  So instead define another isomorphic type, and check
371    in VG_(vki_do_initial_consistency_checks) that it really is
372    correct. */
373 /* #define vki_sigset_t sigset_t */
374 #define _VKI_NSIG_BPW   32
375 #define _VKI_NSIG       32
376 #define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW)
377 typedef struct {
378    UInt sig[_VKI_NSIG_WORDS];
379 } vki_sigset_t;
380 /* and now let VG_(vki_do_initial_consistency_checks) make sure it
381    matches 'sigset_t'. */
382
383
384 #define VKI_SS_ONSTACK  SS_ONSTACK
385 #define VKI_SS_DISABLE  SS_DISABLE
386 #define VKI_MINSIGSTKSZ MINSIGSTKSZ
387 #define VKI_SIGSTKSZ    SIGSTKSZ
388
389 #define vki_stack_t        stack_t
390 #define vki_siginfo_t      siginfo_t
391
392 /* There are two versions of this.  'struct __sigaction' is used for
393    passing sigactions to the kernel interface, and has the added
394    complexity of requiring an extra pointer to a new demultiplexing
395    function to be run in user space.  'struct sigaction' is used for
396    receiving old sigactions from the kernel, and lacks this
397    demux-function pointer.  So the type of the second and third
398    parameters in Darwin's sys_sigaction appear to be different,
399    respectively 'struct __sigaction*' and 'struct sigaction*'.
400 */
401 //#define vki_sigaction      __sigaction
402 //#define vki_user_sigaction sigaction
403 //#define vki_sigaltstack    sigaltstack
404 //#define vki_sigval         sigval
405 //#define vki_sigaction_u    sigaction_u
406 //#define vki_sigaction     sigaction
407
408 //typedef  struct __sigaction  vki_sigaction_toK_t;
409 //typedef  struct sigaction    vki_sigaction_fromK_t;
410
411 typedef
412    struct {
413       void* ksa_handler;
414       void (*sa_tramp)(void*,UWord,UWord,void*,void*);
415       vki_sigset_t sa_mask;
416       int sa_flags;
417    }
418    vki_sigaction_toK_t;
419
420 typedef
421    struct {
422       void* ksa_handler;
423       vki_sigset_t sa_mask;
424       int sa_flags;
425    }
426    vki_sigaction_fromK_t;
427
428
429
430 /* and /usr/include/sys/signal.c in turn defines 'sa_handler' to
431    be '__sigaction_u.__sa_handler' */
432 //#define       ksa_handler      sa_handler
433
434 //#define       vki_sa_sigaction sa_sigaction
435
436 #define VKI_SA_ONSTACK  SA_ONSTACK
437 #define VKI_SA_RESTART  SA_RESTART
438 #define VKI_SA_DISABLE  SA_DISABLE
439 #define VKI_SA_RESETHAND        SA_RESETHAND
440 #define VKI_SA_NOCLDSTOP        SA_NOCLDSTOP
441 #define VKI_SA_NODEFER  SA_NODEFER
442 #define VKI_SA_NOCLDWAIT        SA_NOCLDWAIT
443 #define VKI_SA_SIGINFO  SA_SIGINFO
444 #define VKI_SA_USERTRAMP        SA_USERTRAMP
445 #define VKI_SA_64REGSET SA_64REGSET
446 #define VKI_SA_RESTORER  0 /* Darwin doesn't have this */
447
448 #define VKI_SIG_BLOCK   SIG_BLOCK
449 #define VKI_SIG_UNBLOCK SIG_UNBLOCK
450 #define VKI_SIG_SETMASK SIG_SETMASK
451
452 #define VKI_SIGHUP      SIGHUP
453 #define VKI_SIGINT      SIGINT
454 #define VKI_SIGQUIT     SIGQUIT
455 #define VKI_SIGILL      SIGILL
456 #define VKI_SIGTRAP     SIGTRAP
457 #define VKI_SIGABRT     SIGABRT
458 #define VKI_SIGPOLL     SIGPOLL
459 #define VKI_SIGFPE      SIGFPE
460 #define VKI_SIGKILL     SIGKILL
461 #define VKI_SIGBUS      SIGBUS
462 #define VKI_SIGSEGV     SIGSEGV
463 #define VKI_SIGSYS      SIGSYS
464 #define VKI_SIGPIPE     SIGPIPE
465 #define VKI_SIGALRM     SIGALRM
466 #define VKI_SIGTERM     SIGTERM
467 #define VKI_SIGURG      SIGURG
468 #define VKI_SIGSTOP     SIGSTOP
469 #define VKI_SIGTSTP     SIGTSTP
470 #define VKI_SIGCONT     SIGCONT
471 #define VKI_SIGCHLD     SIGCHLD
472 #define VKI_SIGTTIN     SIGTTIN
473 #define VKI_SIGTTOU     SIGTTOU
474 #define VKI_SIGIO       SIGIO
475 #define VKI_SIGXCPU     SIGXCPU
476 #define VKI_SIGXFSZ     SIGXFSZ
477 #define VKI_SIGVTALRM   SIGVTALRM
478 #define VKI_SIGPROF     SIGPROF
479 #define VKI_SIGWINCH    SIGWINCH
480 #define VKI_SIGINFO     SIGINFO
481 #define VKI_SIGUSR1     SIGUSR1
482 #define VKI_SIGUSR2     SIGUSR2
483
484 #define VKI_SIG_DFL     SIG_DFL
485 #define VKI_SIG_IGN     SIG_IGN
486
487
488 #define VKI_SI_USER      SI_USER
489 #define VKI_SEGV_MAPERR  SEGV_MAPERR
490 #define VKI_SEGV_ACCERR  SEGV_ACCERR
491 #define VKI_ILL_ILLOPC   ILL_ILLOPC
492 #define VKI_ILL_ILLOPN   ILL_ILLOPN
493 #define VKI_ILL_ILLADR   ILL_ILLADR
494 #define VKI_ILL_ILLTRP   ILL_ILLTRP
495 #define VKI_ILL_PRVOPC   ILL_PRVOPC
496 #define VKI_ILL_PRVREG   ILL_PRVREG
497 #define VKI_ILL_COPROC   ILL_COPROC
498 #define VKI_ILL_BADSTK   ILL_BADSTK
499 #define VKI_FPE_INTDIV   FPE_INTDIV
500 #define VKI_FPE_INTOVF   FPE_INTOVF
501 #define VKI_FPE_FLTDIV   FPE_FLTDIV
502 #define VKI_FPE_FLTOVF   FPE_FLTOVF
503 #define VKI_FPE_FLTUND   FPE_FLTUND
504 #define VKI_FPE_FLTRES   FPE_FLTRES
505 #define VKI_FPE_FLTINV   FPE_FLTINV
506 #define VKI_FPE_FLTSUB   FPE_FLTSUB
507 #define VKI_BUS_ADRALN   BUS_ADRALN
508 #define VKI_BUS_ADRERR   BUS_ADRERR
509 #define VKI_BUS_OBJERR   BUS_OBJERR
510 #define VKI_TRAP_BRKPT   TRAP_BRKPT
511
512 /* JRS: not 100% sure, but I think these two are correct */
513 #define VKI_SA_ONESHOT   SA_RESETHAND
514 #define VKI_SA_NOMASK    SA_NODEFER
515
516 #define VKI_UC_SET_ALT_STACK   0x40000000
517 #define VKI_UC_RESET_ALT_STACK 0x80000000
518
519
520 #include <sys/errno.h>
521
522 #define VKI_EPERM               EPERM
523 #define VKI_ENOENT              ENOENT
524 #define VKI_ESRCH               ESRCH
525 #define VKI_EINTR               EINTR
526 #define VKI_EIO                 EIO
527 #define VKI_ENXIO               ENXIO
528 #define VKI_E2BIG               E2BIG
529 #define VKI_ENOEXEC             ENOEXEC
530 #define VKI_EBADF               EBADF
531 #define VKI_ECHILD              ECHILD
532 #define VKI_EDEADLK             EDEADLK
533 #define VKI_ENOMEM              ENOMEM
534 #define VKI_EACCES              EACCES
535 #define VKI_EFAULT              EFAULT
536 #define VKI_ENOTBLK             ENOTBLK
537 #define VKI_EBUSY               EBUSY
538 #define VKI_EEXIST              EEXIST
539 #define VKI_EXDEV               EXDEV
540 #define VKI_ENODEV              ENODEV
541 #define VKI_ENOTDIR             ENOTDIR
542 #define VKI_EISDIR              EISDIR
543 #define VKI_EINVAL              EINVAL
544 #define VKI_ENFILE              ENFILE
545 #define VKI_EMFILE              EMFILE
546 #define VKI_ENOTTY              ENOTTY
547 #define VKI_ETXTBSY             ETXTBSY
548 #define VKI_EFBIG               EFBIG
549 #define VKI_ENOSPC              ENOSPC
550 #define VKI_ESPIPE              ESPIPE
551 #define VKI_EROFS               EROFS
552 #define VKI_EMLINK              EMLINK
553 #define VKI_EPIPE               EPIPE
554 #define VKI_EDOM                EDOM
555 #define VKI_ERANGE              ERANGE
556 #define VKI_EAGAIN              EAGAIN
557 #define VKI_EWOULDBLOCK         EAGAIN
558 #define VKI_EINPROGRESS         EINPROGRESS
559 #define VKI_EALREADY            EALREADY
560 #define VKI_ENOTSOCK            ENOTSOCK
561 #define VKI_EDESTADDRREQ        EDESTADDRREQ
562 #define VKI_EMSGSIZE            EMSGSIZE
563 #define VKI_EPROTOTYPE          EPROTOTYPE
564 #define VKI_ENOPROTOOPT         ENOPROTOOPT
565 #define VKI_EPROTONOSUPPORT     EPROTONOSUPPORT
566 #define VKI_ESOCKTNOSUPPORT     ESOCKTNOSUPPORT
567 #define VKI_ENOTSUP             ENOTSUP
568 #define VKI_EPFNOSUPPORT        EPFNOSUPPORT
569 #define VKI_EAFNOSUPPORT        EAFNOSUPPORT
570 #define VKI_EADDRINUSE          EADDRINUSE
571 #define VKI_EADDRNOTAVAIL       EADDRNOTAVAIL
572 #define VKI_ENETDOWN            ENETDOWN
573 #define VKI_ENETUNREACH         ENETUNREACH
574 #define VKI_ENETRESET           ENETRESET
575 #define VKI_ECONNABORTED        ECONNABORTED
576 #define VKI_ECONNRESET          ECONNRESET
577 #define VKI_ENOBUFS             ENOBUFS
578 #define VKI_EISCONN             EISCONN
579 #define VKI_ENOTCONN            ENOTCONN
580 #define VKI_ESHUTDOWN           ESHUTDOWN
581 #define VKI_ETOOMANYREFS        ETOOMANYREFS
582 #define VKI_ETIMEDOUT           ETIMEDOUT
583 #define VKI_ECONNREFUSED        ECONNREFUSED
584 #define VKI_ELOOP               ELOOP
585 #define VKI_ENAMETOOLONG        ENAMETOOLONG
586 #define VKI_EHOSTDOWN           EHOSTDOWN
587 #define VKI_EHOSTUNREACH        EHOSTUNREACH
588 #define VKI_ENOTEMPTY           ENOTEMPTY
589 #define VKI_EPROCLIM            EPROCLIM
590 #define VKI_EUSERS              EUSERS
591 #define VKI_EDQUOT              EDQUOT
592 #define VKI_ESTALE              ESTALE
593 #define VKI_EREMOTE             EREMOTE
594 #define VKI_EBADRPC             EBADRPC
595 #define VKI_ERPCMISMATCH        ERPCMISMATCH
596 #define VKI_EPROGUNAVAIL        EPROGUNAVAIL
597 #define VKI_EPROGMISMATCH       EPROGMISMATCH
598 #define VKI_EPROCUNAVAIL        EPROCUNAVAIL
599 #define VKI_ENOLCK              ENOLCK
600 #define VKI_ENOSYS              ENOSYS
601 #define VKI_EFTYPE              EFTYPE
602 #define VKI_EAUTH               EAUTH
603 #define VKI_ENEEDAUTH           ENEEDAUTH
604 #define VKI_EPWROFF             EPWROFF
605 #define VKI_EDEVERR             EDEVERR
606 #define VKI_EOVERFLOW           EOVERFLOW
607 #define VKI_EBADEXEC            EBADEXEC
608 #define VKI_EBADARCH            EBADARCH
609 #define VKI_ESHLIBVERS          ESHLIBVERS
610 #define VKI_EBADMACHO           EBADMACHO
611 #define VKI_ECANCELED           ECANCELED
612 #define VKI_EIDRM               EIDRM
613 #define VKI_ENOMSG              ENOMSG
614 #define VKI_EILSEQ              EILSEQ
615 #define VKI_ENOATTR             ENOATTR
616 #define VKI_EBADMSG             EBADMSG
617 #define VKI_EMULTIHOP           EMULTIHOP
618 #define VKI_ENODATA             ENODATA
619 #define VKI_ENOLINK             ENOLINK
620 #define VKI_ENOSR               ENOSR
621 #define VKI_ENOSTR              ENOSTR
622 #define VKI_EPROTO              EPROTO
623 #define VKI_ETIME               ETIME
624 #define VKI_EOPNOTSUPP          EOPNOTSUPP
625 #define VKI_ELAST               ELAST
626
627
628 #include <sys/resource.h>
629
630 #define VKI_RLIMIT_CPU          RLIMIT_CPU
631 #define VKI_RLIMIT_FSIZE        RLIMIT_FSIZE
632 #define VKI_RLIMIT_DATA         RLIMIT_DATA
633 #define VKI_RLIMIT_STACK        RLIMIT_STACK
634 #define VKI_RLIMIT_CORE         RLIMIT_CORE
635 #define VKI_RLIMIT_AS           RLIMIT_AD
636 #define VKI_RLIMIT_RSS          RLIMIT_AS
637 #define VKI_RLIMIT_MEMLOCK      RLIMIT_MEMLOCK
638 #define VKI_RLIMIT_NPROC        RLIMIT_NPROC
639 #define VKI_RLIMIT_NOFILE       RLIMIT_NOFILE
640 #define VKI_RLIM_NLIMITS        RLIM_NLIMITS
641
642 #define vki_rlim_t rlim_t
643 #define vki_rlimit rlimit
644 #define vki_rusage rusage
645
646
647 #include <sys/poll.h>
648
649 #define vki_pollfd pollfd
650
651
652 #include <sys/ipc.h>
653
654 #define VKI_IPC_RMID    IPC_RMID
655 #define VKI_IPC_SET     IPC_SET
656 #define VKI_IPC_STAT    IPC_STAT
657
658 #define vki_key_t key_t
659 #define vki_ipc_perm ipc_perm
660
661
662 #include <sys/sem.h>
663
664 #define VKI_GETNCNT     GETNCNT
665 #define VKI_GETPID      GETPID
666 #define VKI_GETVAL      GETVAL
667 #define VKI_GETALL      GETALL
668 #define VKI_GETZCNT     GETZCNT
669 #define VKI_SETVAL      SETVAL
670 #define VKI_SETALL      SETALL
671
672 #define vki_sembuf sembuf
673 #define vki_semid_ds semid_ds
674 #define vki_semun semun
675
676
677 #include <sys/semaphore.h>
678
679 #define vki_sem_t sem_t
680
681
682 #include <sys/mount.h>
683
684 #define VKI_MFSNAMELEN  MFSNAMELEN
685 #define VKI_MNAMELEN    MNAMELEN
686
687 #define vki_fsid fsid
688 #define vki_fsid_t fsid_t
689 #define vki_statfs statfs
690 #define vki_statfs64 statfs64
691
692
693 #include <sys/select.h>
694
695 #define vki_fd_set fd_set
696
697
698 #include <sys/msgbuf.h>
699
700 #define VKI_MSG_BSIZE   MSG_BSIZE
701 #define VKI_MSG_MAGIC   MSG_MAGIC
702 #define vki_msgbuf msgbuf
703
704
705 #include <sys/shm.h>
706
707 #define VKI_SHM_RDONLY  SHM_RDONLY
708 #define VKI_SHM_RND     SHM_RND
709
710 #define vki_shmid_ds shmid_ds
711
712
713 #include <sys/times.h>
714
715 #define vki_tms tms
716
717
718 #include <sys/utsname.h>
719
720 #define _VKI_SYS_NAMELEN        _SYS_NAMELEN
721 #define vki_new_utsname utsname
722
723
724 #include <sys/unistd.h>
725
726 #define VKI_F_OK        F_OK
727 #define VKI_X_OK        X_OK
728 #define VKI_W_OK        W_OK
729 #define VKI_R_OK        R_OK
730
731 #define vki_accessx_descriptor         accessx_descriptor
732 #define VKI_ACCESSX_MAX_DESCRIPTORS    ACCESSX_MAX_DESCRIPTORS
733
734 #include <sys/sysctl.h>
735
736 #define VKI_CTL_MAXNAME         CTL_MAXNAME
737
738 #define VKI_CTL_UNSPEC          CTL_UNSPEC
739 #define VKI_CTL_KERN            CTL_KERN
740 #define VKI_CTL_VM              CTL_VM
741 #define VKI_CTL_VFS             CTL_VFS
742 #define VKI_CTL_NET             CTL_NET
743 #define VKI_CTL_DEBUG           CTL_DEBUG
744 #define VKI_CTL_HW              CTL_HW
745 #define VKI_CTL_MACHDEP         CTL_MACHDEP
746 #define VKI_CTL_USER            CTL_USER
747 #define VKI_CTL_MAXID           CTL_MAXID
748
749 #define VKI_HW_MACHINE          HW_MACHINE
750 #define VKI_HW_MODEL            HW_MODEL
751 #define VKI_HW_NCPU             HW_NCPU
752 #define VKI_HW_BYTEORDER        HW_BYTEORDER
753 #define VKI_HW_PHYSMEM          HW_PHYSMEM
754 #define VKI_HW_USERMEM          HW_USERMEM
755 #define VKI_HW_PAGESIZE         HW_PAGESIZE
756 #define VKI_HW_DISKNAMES        HW_DISKNAMES
757 #define VKI_HW_DISKSTATS        HW_DISKSTATS
758 #define VKI_HW_EPOCH            HW_EPOCH
759 #define VKI_HW_FLOATINGPT       HW_FLOATINGPT
760 #define VKI_HW_MACHINE_ARCH     HW_MACHINE_ARCH
761 #define VKI_HW_VECTORUNIT       HW_VECTORUNIT
762 #define VKI_HW_BUS_FREQ         HW_BUS_FREQ
763 #define VKI_HW_CPU_FREQ         HW_CPU_FREQ
764 #define VKI_HW_CACHELINE        HW_CACHELINE
765 #define VKI_HW_L1ICACHESIZE     HW_L1ICACHESIZE
766 #define VKI_HW_L1DCACHESIZE     HW_L1DCACHESIZE
767 #define VKI_HW_L2SETTINGS       HW_L2SETTINGS
768 #define VKI_HW_L2CACHESIZE      HW_L2CACHESIZE
769 #define VKI_HW_L3SETTINGS       HW_L3SETTINGS
770 #define VKI_HW_L3CACHESIZE      HW_L3CACHESIZE
771 #define VKI_HW_TB_FREQ          HW_TB_FREQ
772 #define VKI_HW_MEMSIZE          HW_MEMSIZE
773 #define VKI_HW_AVAILCPU         MW_AVAILCPU
774 #define VKI_HW_MAXID            MW_MAXID
775
776 #define VKI_KERN_USRSTACK32     KERN_USRSTACK32
777 #define VKI_KERN_USRSTACK64     KERN_USRSTACK64
778
779
780 #include <sys/attr.h>
781
782 #define vki_attrlist attrlist
783
784
785 #include <sys/event.h>
786
787 #define vki_kevent kevent
788
789
790 #include <sys/ev.h>
791
792 typedef struct eventreq vki_eventreq;
793
794
795 #include <sys/ptrace.h>
796
797 #define VKI_PTRACE_TRACEME   PT_TRACE_ME
798 #define VKI_PTRACE_DETACH    PT_DETACH
799
800
801 // sqlite/src/os_unix.c
802
803 struct ByteRangeLockPB2
804 {
805     unsigned long long offset;        /* offset to first byte to lock */
806     unsigned long long length;        /* nbr of bytes to lock */
807     unsigned long long retRangeStart; /* nbr of 1st byte locked if successful */
808     unsigned char unLockFlag;         /* 1 = unlock, 0 = lock */
809     unsigned char startEndFlag;       /* 1=rel to end of fork, 0=rel to start */
810     int fd;                           /* file desc to assoc this lock with */
811 };
812
813 #define afpfsByteRangeLock2FSCTL _IOWR('z', 23, struct ByteRangeLockPB2)
814
815 #define vki_ByteRangeLockPB2 ByteRangeLockPB2
816 #define VKI_afpfsByteRangeLock2FSCTL afpfsByteRangeLock2FSCTL
817
818
819 // xnu/bsd/sys/fsctl.h
820
821 #define VKI_FSIOC_SYNC_VOLUME        _IOW('A', 1, uint32_t)
822
823
824 // Libc/pthreads/pthread.c
825
826 #define VKI_WQOPS_QUEUE_ADD      1
827 #define VKI_WQOPS_QUEUE_REMOVE   2
828 #define VKI_WQOPS_THREAD_RETURN  4
829
830
831 #include <sys/ttycom.h>
832
833 #define vki_winsize winsize
834
835 #define VKI_TIOCMODG    TIOCMODG
836 #define VKI_TIOCMODS    TIOCMODS
837 #define VKI_TIOCEXCL    TIOCEXCL
838 #define VKI_TIOCNXCL    TIOCNXCL
839 #define VKI_TIOCFLUSH   TIOCFLUSH
840 #define VKI_TIOCGETA    TIOCGETA
841 #define VKI_TIOCSETA    TIOCSETA
842 #define VKI_TIOCSETAW   TIOCSETAW
843 #define VKI_TIOCSETAF   TIOCSETAF
844 #define VKI_TIOCGETD    TIOCGETD
845 #define VKI_TIOCSETD    TIOCSETD
846 #define VKI_TIOCSBRK    TIOCSBRK
847 #define VKI_TIOCCBRK    TIOCCBRK
848 #define VKI_TIOCSDTR    TIOCSDTR
849 #define VKI_TIOCCDTR    TIOCCDTR
850 #define VKI_TIOCGPGRP   TIOCGPGRP
851 #define VKI_TIOCSPGRP   TIOCSPGRP
852 #define VKI_TIOCOUTQ    TIOCOUTQ
853 #define VKI_TIOCSTI     TIOCSTI
854 #define VKI_TIOCNOTTY   TIOCNOTTY
855 #define VKI_TIOCPKT     TIOCPKT
856 #define VKI_TIOCSTOP    TIOCSTOP
857 #define VKI_TIOCSTART   TIOCSTART
858 #define VKI_TIOCMSET    TIOCMSET
859 #define VKI_TIOCMBIS    TIOCMBIS
860 #define VKI_TIOCMBIC    TIOCMBIC
861 #define VKI_TIOCMGET    TIOCMGET
862 #define VKI_TIOCREMOTE  TIOCREMOTE
863 #define VKI_TIOCGWINSZ  TIOCGWINSZ
864 #define VKI_TIOCSWINSZ  TIOCSWINSZ
865 #define VKI_TIOCUCNTL   TIOCUCNTL
866 #define VKI_TIOCSTAT    TIOCSTAT
867 #define VKI_UIOCCMD(n)  UIOCCMD(n)
868 #define VKI_TIOCSCONS   TIOCSCONS
869 #define VKI_TIOCCONS    TIOCCONS
870 #define VKI_TIOCSCTTY   TIOCSCTTY
871 #define VKI_TIOCEXT     TIOCEXT
872 #define VKI_TIOCSIG     TIOCSIG
873 #define VKI_TIOCDRAIN   TIOCDRAIN
874 #define VKI_TIOCMSDTRWAIT       TIOCMSDTRWAIT
875 #define VKI_TIOCMGDTRWAIT       TIOCMGDTRWAIT
876 #define VKI_TIOCTIMESTAMP       TIOCTIMESTAMP
877 #define VKI_TIOCDCDTIMESTAMP    TIOCDCDTIMESTAMP
878 #define VKI_TIOCSDRAINWAIT      TIOCSDRAINWAIT
879 #define VKI_TIOCGDRAINWAIT      TIOCGDRAINWAIT
880 #define VKI_TIOCDSIMICROCODE    TIOCDSIMICROCODE
881 #define VKI_TIOCPTYGRANT        TIOCPTYGRANT
882 #define VKI_TIOCPTYGNAME        TIOCPTYGNAME
883 #define VKI_TIOCPTYUNLK TIOCPTYUNLK
884
885
886 #include <sys/filio.h>
887
888 #define VKI_FIOCLEX     FIOCLEX
889 #define VKI_FIONCLEX    FIONCLEX
890 #define VKI_FIONREAD    FIONREAD
891 #define VKI_FIONBIO     FIONBIO
892 #define VKI_FIOASYNC    FIOASYNC
893 #define VKI_FIOSETOWN   FIOSETOWN
894 #define VKI_FIOGETOWN   FIOGETOWN
895 #define VKI_FIODTYPE    FIODTYPE
896
897
898 #include <sys/sockio.h>
899
900 #define VKI_SIOCSHIWAT  SIOCSHIWAT
901 #define VKI_SIOCGHIWAT  SIOCGHIWAT
902 #define VKI_SIOCSLOWAT  SIOCSLOWAT
903 #define VKI_SIOCGLOWAT  SIOCGLOWAT
904 #define VKI_SIOCATMARK  SIOCATMARK
905 #define VKI_SIOCSPGRP   SIOCSPGRP
906 #define VKI_SIOCGPGRP   SIOCGPGRP
907
908 #define VKI_SIOCSIFADDR         SIOCSIFADDR
909 #define VKI_OSIOCGIFADDR        OSIOCGIFADDR
910 #define VKI_SIOCSIFDSTADDR      SIOCSIFDSTADDR
911 #define VKI_OSIOCGIFDSTADDR     OSIOCGIFDSTADDR
912 #define VKI_SIOCSIFFLAGS        SIOCSIFFLAGS
913 #define VKI_SIOCGIFFLAGS        SIOCGIFFLAGS
914 #define VKI_OSIOCGIFBRDADDR     OSIOCGIFBRDADDR
915 #define VKI_SIOCSIFBRDADDR      SIOCSIFBRDADDR
916 #define VKI_OSIOCGIFCONF        OSIOCGIFCONF
917 #define VKI_OSIOCGIFNETMASK     OSIOCGIFNETMASK
918 #define VKI_SIOCSIFNETMASK      SIOCSIFNETMASK
919 #define VKI_SIOCGIFMETRIC       SIOCGIFMETRIC
920 #define VKI_SIOCSIFMETRIC       SIOCSIFMETRIC
921 #define VKI_SIOCDIFADDR         SIOCDIFADDR
922 #define VKI_SIOCAIFADDR         SIOCAIFADDR
923 #define VKI_SIOCGETVIFCNT       SIOCGETVIFCNT
924 #define VKI_SIOCGETSGCNT        SIOCGETSGCNT
925 #define VKI_SIOCALIFADDR        SIOCALIFADDR
926 #define VKI_SIOCGLIFADDR        SIOCGLIFADDR
927 #define VKI_SIOCDLIFADDR        SIOCDLIFADDR
928
929 #define VKI_SIOCGIFADDR         SIOCGIFADDR
930 #define VKI_SIOCGIFDSTADDR      SIOCGIFDSTADDR
931 #define VKI_SIOCGIFBRDADDR      SIOCGIFBRDADDR
932 #define VKI_SIOCGIFCONF         SIOCGIFCONF
933 #define VKI_SIOCGIFNETMASK      SIOCGIFNETMASK
934 #define VKI_SIOCAUTOADDR        SIOCAUTOADDR
935 #define VKI_SIOCAUTONETMASK     SIOCAUTONETMASK
936 #define VKI_SIOCARPIPLL         SIOCARPIPLL
937
938 #define VKI_SIOCADDMULTI        SIOCADDMULTI
939 #define VKI_SIOCDELMULTI        SIOCDELMULTI
940 #define VKI_SIOCGIFMTU          SIOCGIFMTU
941 #define VKI_SIOCSIFMTU          SIOCSIFMTU
942 #define VKI_SIOCGIFPHYS         SIOCGIFPHYS
943 #define VKI_SIOCSIFPHYS         SIOCSIFPHYS
944 #define VKI_SIOCSIFMEDIA        SIOCSIFMEDIA
945 #define VKI_SIOCGIFMEDIA        SIOCGIFMEDIA
946 #define VKI_SIOCSIFGENERIC      SIOCSIFGENERIC
947 #define VKI_SIOCGIFGENERIC      SIOCGIFGENERIC
948 #define VKI_SIOCRSLVMULTI       SIOCRSLVMULTI
949
950 #define VKI_SIOCSIFLLADDR       SIOCSIFLLADDR
951 #define VKI_SIOCGIFSTATUS       SIOCGIFSTATUS
952 #define VKI_SIOCSIFPHYADDR      SIOCSIFPHYADDR
953 #define VKI_SIOCGIFPSRCADDR     SIOCGIFPSRCADDR
954 #define VKI_SIOCGIFPDSTADDR     SIOCGIFPDSTADDR
955 #define VKI_SIOCDIFPHYADDR      SIOCDIFPHYADDR
956 #define VKI_SIOCSLIFPHYADDR     SIOCSLIFPHYADDR
957 #define VKI_SIOCGLIFPHYADDR     SIOCGLIFPHYADDR
958
959 #define VKI_SIOCGIFDEVMTU       SIOCGIFDEVMTU
960 #define VKI_SIOCSIFALTMTU       SIOCSIFALTMTU
961 #define VKI_SIOCGIFALTMTU       SIOCGIFALTMTU
962 #define VKI_SIOCSIFBOND         SIOCSIFBOND
963 #define VKI_SIOCGIFBOND         SIOCGIFBOND
964 #define VKI_SIOCIFCREATE        SIOCIFCREATE
965 #define VKI_SIOCIFDESTROY       SIOCIFDESTROY
966 #define VKI_SIOCSIFVLAN         SIOCSIFVLAN
967 #define VKI_SIOCGIFVLAN         SIOCGIFVLAN
968
969 #define VKI_SIOCSETVLAN         SIOCSIFVLAN
970 #define VKI_SIOCGETVLAN         SIOCGIFVLAN
971
972 #define VKI_SIOCGIFASYNCMAP     SIOCGIFASYNCMAP
973 #define VKI_SIOCSIFASYNCMAP     SIOCSIGASYNCMAP
974
975
976 #include <sys/dtrace.h>
977
978 #define VKI_DTRACEHIOC_REMOVE   DTRACEHIOC_REMOVE
979 #define VKI_DTRACEHIOC_ADDDOF   DTRACEHIOC_ADDDOF
980
981
982 #include <sys/ucontext.h>
983
984 /* quite why sys/ucontext.h provides a 'struct __darwin_ucontext'
985    but no 'struct ucontext' beats me. -- JRS */
986 #define vki_ucontext __darwin_ucontext
987
988
989 #include <sys/termios.h>
990
991 #define vki_termios termios
992
993
994 #include <uuid/uuid.h>
995
996 #define vki_uuid_t uuid_t
997
998
999 #include <bsm/audit.h>
1000
1001 #define VKI_A_GETPOLICY A_GETPOLICY     
1002 #define VKI_A_SETPOLICY A_SETPOLICY     
1003 #define VKI_A_GETKMASK  A_GETKMASK      
1004 #define VKI_A_SETKMASK  A_SETKMASK      
1005 #define VKI_A_GETQCTRL  A_GETQCTRL      
1006 #define VKI_A_SETQCTRL  A_SETQCTRL      
1007 #define VKI_A_GETCWD    A_GETCWD        
1008 #define VKI_A_GETCAR    A_GETCAR        
1009 #define VKI_A_GETSTAT   A_GETSTAT       
1010 #define VKI_A_SETSTAT   A_SETSTAT       
1011 #define VKI_A_SETUMASK  A_SETUMASK      
1012 #define VKI_A_SETSMASK  A_SETSMASK      
1013 #define VKI_A_GETCOND   A_GETCOND       
1014 #define VKI_A_SETCOND   A_SETCOND       
1015 #define VKI_A_GETCLASS  A_GETCLASS      
1016 #define VKI_A_SETCLASS  A_SETCLASS      
1017 #define VKI_A_GETPINFO  A_GETPINFO      
1018 #define VKI_A_SETPMASK  A_SETPMASK      
1019 #define VKI_A_SETFSIZE  A_SETFSIZE      
1020 #define VKI_A_GETFSIZE  A_GETFSIZE      
1021 #define VKI_A_GETPINFO_ADDR     A_GETPINFO_ADDR 
1022 #define VKI_A_GETKAUDIT A_GETKAUDIT     
1023 #define VKI_A_SETKAUDIT A_SETKAUDIT     
1024
1025
1026 #include <sys/aio.h>
1027
1028 #define vki_aiocb aiocb
1029
1030
1031 // XXX: for some reason when I #include <sys/kernel_types.h> I get a syntax
1032 // error.  Hmm.  So just define things ourselves.
1033 //#include <sys/kernel_types.h>
1034
1035 //#define vki_errno_t
1036 typedef int vki_errno_t;
1037
1038 #endif