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