vki-darwin.h revision 0f157ddb404bcde7815a1c5bf2d7e41c114f3d73
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
293f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_F_FULLFSYNC	F_FULLFSYNC
294f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_F_PATHPKG_CHECK	F_PATHPKG_CHECK
295f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_F_FREEZE_FS	F_FREEZE_FS
296f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_F_THAW_FS	F_THAW_FS
297f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_F_GLOBAL_NOCACHE	F_GLOBAL_NOCACHE
298f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
299f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FD_CLOEXEC	FD_CLOEXEC
300f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
301f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_radvisory radvisory
302f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_fstore fstore
303f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_fbootstraptransfer fbootstraptransfer
304f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_log2phys log2phys
305f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_fsignatures_t fsignatures_t
306f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
307f76d27a697a7b0bf3b84490baf60623fc96a23afnjn// These constants aren't in a standard header, they are from the kernel code:
308f76d27a697a7b0bf3b84490baf60623fc96a23afnjn// xnu-1228.3.13/bsd/sys/codesign.h
309f76d27a697a7b0bf3b84490baf60623fc96a23afnjn// Mac OS X 10.5.6 - Darwin 9.6
310f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_CS_OPS_STATUS           0       /* return status */
311f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_CS_OPS_MARKINVALID      1       /* invalidate process */
312f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_CS_OPS_MARKHARD         2       /* set HARD flag */
313f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_CS_OPS_MARKKILL         3       /* set KILL flag (sticky) */
314f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_CS_OPS_PIDPATH          4       /* get executable's pathname */
315f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_CS_OPS_CDHASH           5       /* get code directory hash */
316f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
317f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/mman.h>
318f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
319f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_PROT_NONE	PROT_NONE
320f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_PROT_READ	PROT_READ
321f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_PROT_WRITE	PROT_WRITE
322f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_PROT_EXEC	PROT_EXEC
323f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
324f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_SHARED	MAP_SHARED
325f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_PRIVATE	MAP_PRIVATE
326f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_FIXED	MAP_FIXED
327f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_RENAME	MAP_RENAME
328f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_NORESERVE	MAP_NORESERVE
329f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_RESERVED0080	MAP_RESERVED0080
330f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_NOEXTEND	MAP_NOEXTEND
331f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_HASSEMAPHORE	MAP_HASSEMAPHORE
332f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_FILE	MAP_FILE
333f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MAP_ANON	MAP_ANON
334f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_MAP_FAILED	MAP_FAILED
335f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
336f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
337f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <mach/vm_param.h>
338f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
339f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_PAGE_SHIFT PAGE_SHIFT
340f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_PAGE_SIZE PAGE_SIZE
341f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_PAGE_MASK PAGE_MASK
342f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
343f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
344f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/vmparam.h>
345f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
346f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_USRSTACK USRSTACK
347f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_USRSTACK64 USRSTACK64
348f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
349f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
350f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <mach/mach_time.h>
351f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
352f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_mach_timebase_info mach_timebase_info
353f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
354f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
355f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/syslimits.h>
356f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
357f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_PATH_MAX PATH_MAX
358f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
359f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
360f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/param.h>
361f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
362f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_MAXPATHLEN MAXPATHLEN
363f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
364f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
365f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/signal.h>
366f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
367f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/* While we fully intend to make 'vki_sigset_t' match the native
368f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   Darwin 'sigset_t', we can't just clone the Darwin sigset_t type,
369f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   because it isn't an array, and the VG_(sigfillset) etc functions
370f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   assume it is.  So instead define another isomorphic type, and check
371f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   in VG_(vki_do_initial_consistency_checks) that it really is
372f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   correct. */
373f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/* #define vki_sigset_t sigset_t */
374f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define _VKI_NSIG_BPW   32
375f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define _VKI_NSIG       32
376f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW)
377f76d27a697a7b0bf3b84490baf60623fc96a23afnjntypedef struct {
378f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   UInt sig[_VKI_NSIG_WORDS];
379f76d27a697a7b0bf3b84490baf60623fc96a23afnjn} vki_sigset_t;
380f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/* and now let VG_(vki_do_initial_consistency_checks) make sure it
381f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   matches 'sigset_t'. */
382f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
383f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
384f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SS_ONSTACK	SS_ONSTACK
385f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SS_DISABLE	SS_DISABLE
386f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MINSIGSTKSZ	MINSIGSTKSZ
387f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGSTKSZ	SIGSTKSZ
388f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
389f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_stack_t        stack_t
390f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_siginfo_t      siginfo_t
391f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
392f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/* There are two versions of this.  'struct __sigaction' is used for
393f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   passing sigactions to the kernel interface, and has the added
394f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   complexity of requiring an extra pointer to a new demultiplexing
395f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   function to be run in user space.  'struct sigaction' is used for
396f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   receiving old sigactions from the kernel, and lacks this
397f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   demux-function pointer.  So the type of the second and third
398f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   parameters in Darwin's sys_sigaction appear to be different,
399f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   respectively 'struct __sigaction*' and 'struct sigaction*'.
400f76d27a697a7b0bf3b84490baf60623fc96a23afnjn*/
401f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//#define vki_sigaction      __sigaction
402f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//#define vki_user_sigaction sigaction
403f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//#define vki_sigaltstack    sigaltstack
404f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//#define vki_sigval         sigval
405f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//#define vki_sigaction_u    sigaction_u
406f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//#define vki_sigaction     sigaction
407f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
408f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//typedef  struct __sigaction  vki_sigaction_toK_t;
409f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//typedef  struct sigaction    vki_sigaction_fromK_t;
410f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
411f76d27a697a7b0bf3b84490baf60623fc96a23afnjntypedef
412f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   struct {
413f76d27a697a7b0bf3b84490baf60623fc96a23afnjn      void* ksa_handler;
414f76d27a697a7b0bf3b84490baf60623fc96a23afnjn      void (*sa_tramp)(void*,UWord,UWord,void*,void*);
415f76d27a697a7b0bf3b84490baf60623fc96a23afnjn      vki_sigset_t sa_mask;
416f76d27a697a7b0bf3b84490baf60623fc96a23afnjn      int sa_flags;
417f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   }
418f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   vki_sigaction_toK_t;
419f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
420f76d27a697a7b0bf3b84490baf60623fc96a23afnjntypedef
421f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   struct {
422f76d27a697a7b0bf3b84490baf60623fc96a23afnjn      void* ksa_handler;
423f76d27a697a7b0bf3b84490baf60623fc96a23afnjn      vki_sigset_t sa_mask;
424f76d27a697a7b0bf3b84490baf60623fc96a23afnjn      int sa_flags;
425f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   }
426f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   vki_sigaction_fromK_t;
427f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
428f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
429f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
430f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/* and /usr/include/sys/signal.c in turn defines 'sa_handler' to
431f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   be '__sigaction_u.__sa_handler' */
432f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//#define	ksa_handler      sa_handler
433f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
434f76d27a697a7b0bf3b84490baf60623fc96a23afnjn//#define	vki_sa_sigaction sa_sigaction
435f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
436f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SA_ONSTACK	SA_ONSTACK
437f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SA_RESTART	SA_RESTART
438f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SA_DISABLE	SA_DISABLE
439f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SA_RESETHAND	SA_RESETHAND
440f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SA_NOCLDSTOP	SA_NOCLDSTOP
441f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SA_NODEFER	SA_NODEFER
442f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SA_NOCLDWAIT	SA_NOCLDWAIT
443f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SA_SIGINFO	SA_SIGINFO
444f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SA_USERTRAMP	SA_USERTRAMP
445f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SA_64REGSET	SA_64REGSET
446f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SA_RESTORER  0 /* Darwin doesn't have this */
447f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
448f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIG_BLOCK	SIG_BLOCK
449f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIG_UNBLOCK	SIG_UNBLOCK
450f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIG_SETMASK	SIG_SETMASK
451f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
452f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGHUP	SIGHUP
453f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGINT	SIGINT
454f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGQUIT	SIGQUIT
455f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGILL	SIGILL
456f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGTRAP	SIGTRAP
457f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGABRT	SIGABRT
458f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGPOLL	SIGPOLL
459f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGFPE	SIGFPE
460f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGKILL	SIGKILL
461f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGBUS	SIGBUS
462f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGSEGV	SIGSEGV
463f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGSYS	SIGSYS
464f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGPIPE	SIGPIPE
465f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGALRM	SIGALRM
466f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGTERM	SIGTERM
467f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGURG	SIGURG
468f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGSTOP	SIGSTOP
469f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGTSTP	SIGTSTP
470f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGCONT	SIGCONT
471f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGCHLD	SIGCHLD
472f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGTTIN	SIGTTIN
473f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGTTOU	SIGTTOU
474f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGIO	SIGIO
475f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGXCPU	SIGXCPU
476f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGXFSZ	SIGXFSZ
477f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGVTALRM	SIGVTALRM
478f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIGPROF	SIGPROF
479f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIGWINCH	SIGWINCH
480f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIGINFO	SIGINFO
481f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIGUSR1	SIGUSR1
482f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIGUSR2	SIGUSR2
483f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
484f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIG_DFL     SIG_DFL
485f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIG_IGN     SIG_IGN
486f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
487f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
488f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SI_USER      SI_USER
489f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SEGV_MAPERR  SEGV_MAPERR
490f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SEGV_ACCERR  SEGV_ACCERR
491f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ILL_ILLOPC   ILL_ILLOPC
492f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ILL_ILLOPN   ILL_ILLOPN
493f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ILL_ILLADR   ILL_ILLADR
494f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ILL_ILLTRP   ILL_ILLTRP
495f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ILL_PRVOPC   ILL_PRVOPC
496f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ILL_PRVREG   ILL_PRVREG
497f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ILL_COPROC   ILL_COPROC
498f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ILL_BADSTK   ILL_BADSTK
499f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FPE_INTDIV   FPE_INTDIV
500f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FPE_INTOVF   FPE_INTOVF
501f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FPE_FLTDIV   FPE_FLTDIV
502f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FPE_FLTOVF   FPE_FLTOVF
503f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FPE_FLTUND   FPE_FLTUND
504f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FPE_FLTRES   FPE_FLTRES
505f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FPE_FLTINV   FPE_FLTINV
506f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FPE_FLTSUB   FPE_FLTSUB
507f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_BUS_ADRALN   BUS_ADRALN
508f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_BUS_ADRERR   BUS_ADRERR
509f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_BUS_OBJERR   BUS_OBJERR
510f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_TRAP_BRKPT   TRAP_BRKPT
511f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
512f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/* JRS: not 100% sure, but I think these two are correct */
513f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SA_ONESHOT   SA_RESETHAND
514f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SA_NOMASK    SA_NODEFER
515f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
516f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_UC_SET_ALT_STACK   0x40000000
517f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_UC_RESET_ALT_STACK 0x80000000
518f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
519f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
520f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/errno.h>
521f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
522f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPERM		EPERM
523f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOENT		ENOENT
524f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ESRCH		ESRCH
525f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EINTR		EINTR
526f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EIO			EIO
527f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENXIO		ENXIO
528f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_E2BIG		E2BIG
529f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOEXEC		ENOEXEC
530f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EBADF		EBADF
531f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ECHILD		ECHILD
532f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EDEADLK		EDEADLK
533f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOMEM		ENOMEM
534f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EACCES		EACCES
535f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EFAULT		EFAULT
536f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOTBLK		ENOTBLK
537f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EBUSY		EBUSY
538f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EEXIST		EEXIST
539f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EXDEV		EXDEV
540f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENODEV		ENODEV
541f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOTDIR		ENOTDIR
542f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EISDIR		EISDIR
543f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EINVAL		EINVAL
544f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENFILE		ENFILE
545f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EMFILE		EMFILE
546f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOTTY		ENOTTY
547f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ETXTBSY		ETXTBSY
548f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EFBIG		EFBIG
549f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOSPC		ENOSPC
550f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ESPIPE		ESPIPE
551f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EROFS		EROFS
552f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EMLINK		EMLINK
553f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPIPE		EPIPE
554f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EDOM		EDOM
555f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ERANGE		ERANGE
556f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EAGAIN		EAGAIN
557f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EWOULDBLOCK		EAGAIN
558f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EINPROGRESS		EINPROGRESS
559f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EALREADY		EALREADY
560f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOTSOCK		ENOTSOCK
561f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EDESTADDRREQ	EDESTADDRREQ
562f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EMSGSIZE		EMSGSIZE
563f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPROTOTYPE		EPROTOTYPE
564f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOPROTOOPT		ENOPROTOOPT
565f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPROTONOSUPPORT	EPROTONOSUPPORT
566f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ESOCKTNOSUPPORT	ESOCKTNOSUPPORT
567f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOTSUP		ENOTSUP
568f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPFNOSUPPORT	EPFNOSUPPORT
569f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EAFNOSUPPORT	EAFNOSUPPORT
570f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EADDRINUSE		EADDRINUSE
571f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EADDRNOTAVAIL	EADDRNOTAVAIL
572f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENETDOWN		ENETDOWN
573f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENETUNREACH		ENETUNREACH
574f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENETRESET		ENETRESET
575f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ECONNABORTED	ECONNABORTED
576f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ECONNRESET		ECONNRESET
577f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOBUFS		ENOBUFS
578f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EISCONN		EISCONN
579f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOTCONN		ENOTCONN
580f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ESHUTDOWN		ESHUTDOWN
581f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ETOOMANYREFS	ETOOMANYREFS
582f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ETIMEDOUT		ETIMEDOUT
583f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ECONNREFUSED	ECONNREFUSED
584f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ELOOP		ELOOP
585f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENAMETOOLONG	ENAMETOOLONG
586f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EHOSTDOWN		EHOSTDOWN
587f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EHOSTUNREACH	EHOSTUNREACH
588f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOTEMPTY		ENOTEMPTY
589f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPROCLIM		EPROCLIM
590f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EUSERS		EUSERS
591f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EDQUOT		EDQUOT
592f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ESTALE		ESTALE
593f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EREMOTE		EREMOTE
594f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EBADRPC		EBADRPC
595f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ERPCMISMATCH	ERPCMISMATCH
596f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPROGUNAVAIL	EPROGUNAVAIL
597f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPROGMISMATCH	EPROGMISMATCH
598f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPROCUNAVAIL	EPROCUNAVAIL
599f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOLCK		ENOLCK
600f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOSYS		ENOSYS
601f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EFTYPE		EFTYPE
602f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EAUTH		EAUTH
603f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENEEDAUTH		ENEEDAUTH
604f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPWROFF		EPWROFF
605f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EDEVERR		EDEVERR
606f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EOVERFLOW		EOVERFLOW
607f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EBADEXEC		EBADEXEC
608f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EBADARCH		EBADARCH
609f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ESHLIBVERS		ESHLIBVERS
610f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EBADMACHO		EBADMACHO
611f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ECANCELED		ECANCELED
612f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EIDRM		EIDRM
613f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOMSG		ENOMSG
614f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EILSEQ		EILSEQ
615f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOATTR		ENOATTR
616f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EBADMSG		EBADMSG
617f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EMULTIHOP		EMULTIHOP
618f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENODATA		ENODATA
619f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOLINK		ENOLINK
620f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOSR		ENOSR
621f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ENOSTR		ENOSTR
622f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EPROTO		EPROTO
623f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ETIME		ETIME
624f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_EOPNOTSUPP		EOPNOTSUPP
625f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_ELAST		ELAST
626f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
627f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
628f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/resource.h>
629f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
630f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_CPU		RLIMIT_CPU
631f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_FSIZE	RLIMIT_FSIZE
632f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_DATA		RLIMIT_DATA
633f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_STACK	RLIMIT_STACK
634f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_CORE		RLIMIT_CORE
635f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_AS		RLIMIT_AD
636f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_RSS		RLIMIT_AS
637f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_MEMLOCK	RLIMIT_MEMLOCK
638f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_NPROC	RLIMIT_NPROC
639f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIMIT_NOFILE	RLIMIT_NOFILE
640f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_RLIM_NLIMITS	RLIM_NLIMITS
641f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
642f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_rlim_t rlim_t
643f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_rlimit rlimit
644f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_rusage rusage
645f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
646f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
647f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/poll.h>
648f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
649f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_pollfd pollfd
650f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
651f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
652f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/ipc.h>
653f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
654f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_IPC_RMID	IPC_RMID
655f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_IPC_SET	IPC_SET
656f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_IPC_STAT	IPC_STAT
657f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
658f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_key_t key_t
659f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_ipc_perm ipc_perm
660f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
661f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
662f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/sem.h>
663f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
664f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_GETNCNT	GETNCNT
665f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_GETPID	GETPID
666f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_GETVAL	GETVAL
667f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_GETALL	GETALL
668f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_GETZCNT	GETZCNT
669f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SETVAL	SETVAL
670f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SETALL	SETALL
671f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
672f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_sembuf sembuf
673f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_semid_ds semid_ds
674f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_semun semun
675f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
676f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
677f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/semaphore.h>
678f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
679f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_sem_t sem_t
680f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
681f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
682f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/mount.h>
683f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
684f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MFSNAMELEN	MFSNAMELEN
685f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MNAMELEN	MNAMELEN
686f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
687f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_fsid fsid
688f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_fsid_t fsid_t
689f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_statfs statfs
690f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_statfs64 statfs64
691f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
692f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
693f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/select.h>
694f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
695f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_fd_set fd_set
696f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
697f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
698f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/msgbuf.h>
699f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
700f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_MSG_BSIZE	MSG_BSIZE
701f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_MSG_MAGIC	MSG_MAGIC
702f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_msgbuf msgbuf
703f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
704f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
705f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/shm.h>
706f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
707f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SHM_RDONLY	SHM_RDONLY
708f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SHM_RND	SHM_RND
70919a00d30550202ee92dc6db9feb8051e25b43b13sewardj#define VKI_SHMLBA	SHMLBA
710f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
711f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_shmid_ds shmid_ds
712f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
713f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
714f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/times.h>
715f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
716f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_tms tms
717f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
718f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
719f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/utsname.h>
720f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
721f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	_VKI_SYS_NAMELEN	_SYS_NAMELEN
722f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_new_utsname utsname
723f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
724f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
725f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/unistd.h>
726f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
727f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_F_OK	F_OK
728f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_X_OK	X_OK
729f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_W_OK	W_OK
730f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_R_OK	R_OK
731f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
7323a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njn#define vki_accessx_descriptor         accessx_descriptor
7333a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njn#define VKI_ACCESSX_MAX_DESCRIPTORS    ACCESSX_MAX_DESCRIPTORS
734f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
735f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/sysctl.h>
736f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
737f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_CTL_MAXNAME		CTL_MAXNAME
738f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
739f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_UNSPEC		CTL_UNSPEC
740f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_KERN		CTL_KERN
741f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_VM		CTL_VM
742f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_VFS		CTL_VFS
743f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_NET		CTL_NET
744f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_DEBUG		CTL_DEBUG
745f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_HW		CTL_HW
746f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_MACHDEP		CTL_MACHDEP
747f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_USER		CTL_USER
748f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_CTL_MAXID		CTL_MAXID
749f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
750f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_MACHINE		HW_MACHINE
751f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_MODEL		HW_MODEL
752f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_NCPU		HW_NCPU
753f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_BYTEORDER	HW_BYTEORDER
754f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_PHYSMEM		HW_PHYSMEM
755f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_USERMEM		HW_USERMEM
756f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_PAGESIZE		HW_PAGESIZE
757f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_DISKNAMES	HW_DISKNAMES
758f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_DISKSTATS	HW_DISKSTATS
759f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_EPOCH  		HW_EPOCH
760f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_FLOATINGPT	HW_FLOATINGPT
761f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_MACHINE_ARCH	HW_MACHINE_ARCH
762f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_VECTORUNIT	HW_VECTORUNIT
763f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_BUS_FREQ		HW_BUS_FREQ
764f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_CPU_FREQ		HW_CPU_FREQ
765f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_CACHELINE	HW_CACHELINE
766f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_L1ICACHESIZE	HW_L1ICACHESIZE
767f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_L1DCACHESIZE	HW_L1DCACHESIZE
768f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_L2SETTINGS	HW_L2SETTINGS
769f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_L2CACHESIZE	HW_L2CACHESIZE
770f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_L3SETTINGS	HW_L3SETTINGS
771f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_L3CACHESIZE	HW_L3CACHESIZE
772f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_TB_FREQ		HW_TB_FREQ
773f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_MEMSIZE		HW_MEMSIZE
774f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_HW_AVAILCPU		MW_AVAILCPU
775f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_HW_MAXID		MW_MAXID
776f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
777f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_KERN_USRSTACK32	KERN_USRSTACK32
778f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_KERN_USRSTACK64	KERN_USRSTACK64
779f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
780f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
781f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/attr.h>
782f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
783f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_attrlist attrlist
784f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
785f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
786f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/event.h>
787f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
788f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_kevent kevent
789f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
790f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
791f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/ev.h>
792f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
793f76d27a697a7b0bf3b84490baf60623fc96a23afnjntypedef struct eventreq vki_eventreq;
794f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
795f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
796ea2d6fd6aaf98d261df9fdf580542ebf01b7fba4njn#include <sys/acl.h>
797ea2d6fd6aaf98d261df9fdf580542ebf01b7fba4njn
798ea2d6fd6aaf98d261df9fdf580542ebf01b7fba4njn#define vki_kauth_filesec kauth_filesec
799ea2d6fd6aaf98d261df9fdf580542ebf01b7fba4njn
800ea2d6fd6aaf98d261df9fdf580542ebf01b7fba4njn
801f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/ptrace.h>
802f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
803f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_PTRACE_TRACEME   PT_TRACE_ME
804f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_PTRACE_DETACH    PT_DETACH
805f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
806f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
807f76d27a697a7b0bf3b84490baf60623fc96a23afnjn// sqlite/src/os_unix.c
808f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
809f76d27a697a7b0bf3b84490baf60623fc96a23afnjnstruct ByteRangeLockPB2
810f76d27a697a7b0bf3b84490baf60623fc96a23afnjn{
811f76d27a697a7b0bf3b84490baf60623fc96a23afnjn    unsigned long long offset;        /* offset to first byte to lock */
812f76d27a697a7b0bf3b84490baf60623fc96a23afnjn    unsigned long long length;        /* nbr of bytes to lock */
813f76d27a697a7b0bf3b84490baf60623fc96a23afnjn    unsigned long long retRangeStart; /* nbr of 1st byte locked if successful */
814f76d27a697a7b0bf3b84490baf60623fc96a23afnjn    unsigned char unLockFlag;         /* 1 = unlock, 0 = lock */
815f76d27a697a7b0bf3b84490baf60623fc96a23afnjn    unsigned char startEndFlag;       /* 1=rel to end of fork, 0=rel to start */
816f76d27a697a7b0bf3b84490baf60623fc96a23afnjn    int fd;                           /* file desc to assoc this lock with */
817f76d27a697a7b0bf3b84490baf60623fc96a23afnjn};
818f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
819f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define afpfsByteRangeLock2FSCTL _IOWR('z', 23, struct ByteRangeLockPB2)
820f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
821f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_ByteRangeLockPB2 ByteRangeLockPB2
822f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_afpfsByteRangeLock2FSCTL afpfsByteRangeLock2FSCTL
823f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
824f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
825f76d27a697a7b0bf3b84490baf60623fc96a23afnjn// xnu/bsd/sys/fsctl.h
826f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
827f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_FSIOC_SYNC_VOLUME        _IOW('A', 1, uint32_t)
828f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
829f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
830f76d27a697a7b0bf3b84490baf60623fc96a23afnjn// Libc/pthreads/pthread.c
831f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
832ae284e5cc0830afcdec7b436564ea9f18bbedff8sewardj#define VKI_WQOPS_QUEUE_ADD          1
833ae284e5cc0830afcdec7b436564ea9f18bbedff8sewardj#define VKI_WQOPS_QUEUE_REMOVE       2
834ae284e5cc0830afcdec7b436564ea9f18bbedff8sewardj#define VKI_WQOPS_THREAD_RETURN      4
835ae284e5cc0830afcdec7b436564ea9f18bbedff8sewardj#define VKI_WQOPS_THREAD_SETCONC     8
836ae284e5cc0830afcdec7b436564ea9f18bbedff8sewardj#define VKI_WQOPS_QUEUE_NEWSPISUPP  16  /* check for newer SPI support */
837ae284e5cc0830afcdec7b436564ea9f18bbedff8sewardj#define VKI_WQOPS_QUEUE_REQTHREADS  32  /* request number of threads of a prio */
838f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
839f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
840f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/ttycom.h>
841f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
842f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_winsize winsize
843f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
844f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCMODG	TIOCMODG
845f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCMODS	TIOCMODS
846f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCEXCL	TIOCEXCL
847f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCNXCL	TIOCNXCL
848f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCFLUSH	TIOCFLUSH
849f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCGETA	TIOCGETA
850f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSETA	TIOCSETA
851f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSETAW	TIOCSETAW
852f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSETAF	TIOCSETAF
853f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCGETD	TIOCGETD
854f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSETD	TIOCSETD
855f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSBRK	TIOCSBRK
856f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCCBRK	TIOCCBRK
857f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSDTR	TIOCSDTR
858f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCCDTR	TIOCCDTR
859f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCGPGRP	TIOCGPGRP
860f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSPGRP	TIOCSPGRP
861f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCOUTQ	TIOCOUTQ
862f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSTI	TIOCSTI
863f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCNOTTY	TIOCNOTTY
864f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCPKT	TIOCPKT
865f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSTOP	TIOCSTOP
866f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSTART	TIOCSTART
867f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCMSET	TIOCMSET
868f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCMBIS	TIOCMBIS
869f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCMBIC	TIOCMBIC
870f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCMGET	TIOCMGET
871f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCREMOTE	TIOCREMOTE
872f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCGWINSZ	TIOCGWINSZ
873f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSWINSZ	TIOCSWINSZ
874f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCUCNTL	TIOCUCNTL
875f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSTAT	TIOCSTAT
876f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_UIOCCMD(n)	UIOCCMD(n)
877f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSCONS	TIOCSCONS
878f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCCONS	TIOCCONS
879f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSCTTY	TIOCSCTTY
880f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCEXT	TIOCEXT
881f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSIG	TIOCSIG
882f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCDRAIN	TIOCDRAIN
883f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCMSDTRWAIT	TIOCMSDTRWAIT
884f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCMGDTRWAIT	TIOCMGDTRWAIT
885f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCTIMESTAMP	TIOCTIMESTAMP
886f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCDCDTIMESTAMP	TIOCDCDTIMESTAMP
887f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCSDRAINWAIT	TIOCSDRAINWAIT
888f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCGDRAINWAIT	TIOCGDRAINWAIT
889f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_TIOCDSIMICROCODE	TIOCDSIMICROCODE
890f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_TIOCPTYGRANT	TIOCPTYGRANT
891f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_TIOCPTYGNAME	TIOCPTYGNAME
892f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_TIOCPTYUNLK	TIOCPTYUNLK
893f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
894f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
895f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/filio.h>
896f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
897f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_FIOCLEX	FIOCLEX
898f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_FIONCLEX	FIONCLEX
899f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_FIONREAD	FIONREAD
900f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_FIONBIO	FIONBIO
901f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_FIOASYNC	FIOASYNC
902f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_FIOSETOWN	FIOSETOWN
903f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_FIOGETOWN	FIOGETOWN
904f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_FIODTYPE	FIODTYPE
905f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
906f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
907f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/sockio.h>
908f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
909f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSHIWAT	SIOCSHIWAT
910f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGHIWAT	SIOCGHIWAT
911f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSLOWAT	SIOCSLOWAT
912f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGLOWAT	SIOCGLOWAT
913f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCATMARK	SIOCATMARK
914f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSPGRP	SIOCSPGRP
915f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGPGRP	SIOCGPGRP
916f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
917f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFADDR		SIOCSIFADDR
918f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_OSIOCGIFADDR	OSIOCGIFADDR
919f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFDSTADDR	SIOCSIFDSTADDR
920f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_OSIOCGIFDSTADDR	OSIOCGIFDSTADDR
921f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFFLAGS	SIOCSIFFLAGS
922f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFFLAGS	SIOCGIFFLAGS
923f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_OSIOCGIFBRDADDR	OSIOCGIFBRDADDR
924f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFBRDADDR	SIOCSIFBRDADDR
925f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_OSIOCGIFCONF	OSIOCGIFCONF
926f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_OSIOCGIFNETMASK	OSIOCGIFNETMASK
927f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFNETMASK	SIOCSIFNETMASK
928f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFMETRIC	SIOCGIFMETRIC
929f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFMETRIC	SIOCSIFMETRIC
930f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCDIFADDR		SIOCDIFADDR
931f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCAIFADDR		SIOCAIFADDR
932f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGETVIFCNT	SIOCGETVIFCNT
933f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGETSGCNT	SIOCGETSGCNT
934f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCALIFADDR	SIOCALIFADDR
935f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCGLIFADDR	SIOCGLIFADDR
936f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCDLIFADDR	SIOCDLIFADDR
937f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
938f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFADDR		SIOCGIFADDR
939f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFDSTADDR	SIOCGIFDSTADDR
940f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFBRDADDR	SIOCGIFBRDADDR
941f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFCONF		SIOCGIFCONF
942f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFNETMASK	SIOCGIFNETMASK
943f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCAUTOADDR	SIOCAUTOADDR
944f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCAUTONETMASK	SIOCAUTONETMASK
945f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCARPIPLL		SIOCARPIPLL
946f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
947f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCADDMULTI	SIOCADDMULTI
948f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCDELMULTI	SIOCDELMULTI
949f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFMTU		SIOCGIFMTU
950f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFMTU	 	SIOCSIFMTU
951f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFPHYS		SIOCGIFPHYS
952f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFPHYS	 	SIOCSIFPHYS
953f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFMEDIA	SIOCSIFMEDIA
954f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFMEDIA	SIOCGIFMEDIA
955f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFGENERIC	SIOCSIFGENERIC
956f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFGENERIC	SIOCGIFGENERIC
957f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCRSLVMULTI   	SIOCRSLVMULTI
958f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
959f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFLLADDR	SIOCSIFLLADDR
960f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFSTATUS	SIOCGIFSTATUS
961f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFPHYADDR   	SIOCSIFPHYADDR
962f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFPSRCADDR	SIOCGIFPSRCADDR
963f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFPDSTADDR	SIOCGIFPDSTADDR
964f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCDIFPHYADDR	SIOCDIFPHYADDR
965f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSLIFPHYADDR	SIOCSLIFPHYADDR
966f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGLIFPHYADDR	SIOCGLIFPHYADDR
967f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
968f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFDEVMTU	SIOCGIFDEVMTU
969f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFALTMTU	SIOCSIFALTMTU
970f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCGIFALTMTU	SIOCGIFALTMTU
971f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCSIFBOND	 	SIOCSIFBOND
972f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_SIOCGIFBOND		SIOCGIFBOND
973f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCIFCREATE	SIOCIFCREATE
974f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCIFDESTROY	SIOCIFDESTROY
975f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFVLAN	 	SIOCSIFVLAN
976f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFVLAN		SIOCGIFVLAN
977f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
978f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSETVLAN		SIOCSIFVLAN
979f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGETVLAN		SIOCGIFVLAN
980f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
981f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCGIFASYNCMAP 	SIOCGIFASYNCMAP
982f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_SIOCSIFASYNCMAP 	SIOCSIGASYNCMAP
983f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
984f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
985f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/dtrace.h>
986f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
987f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_DTRACEHIOC_REMOVE   DTRACEHIOC_REMOVE
988f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define VKI_DTRACEHIOC_ADDDOF   DTRACEHIOC_ADDDOF
989f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
990f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
991f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/ucontext.h>
992f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
993f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/* quite why sys/ucontext.h provides a 'struct __darwin_ucontext'
994f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   but no 'struct ucontext' beats me. -- JRS */
995f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_ucontext __darwin_ucontext
996f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
997f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
998f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <sys/termios.h>
999f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
1000f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_termios termios
1001f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
1002f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
1003f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <uuid/uuid.h>
1004f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
1005f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define vki_uuid_t uuid_t
1006f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
1007f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
1008f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#include <bsm/audit.h>
1009f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
1010f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETPOLICY	A_GETPOLICY
1011f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETPOLICY	A_SETPOLICY
1012f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETKMASK	A_GETKMASK
1013f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETKMASK	A_SETKMASK
1014f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETQCTRL	A_GETQCTRL
1015f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETQCTRL	A_SETQCTRL
1016f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETCWD	A_GETCWD
1017f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETCAR	A_GETCAR
1018f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETSTAT	A_GETSTAT
1019f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETSTAT	A_SETSTAT
1020f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETUMASK	A_SETUMASK
1021f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETSMASK	A_SETSMASK
1022f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETCOND	A_GETCOND
1023f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETCOND	A_SETCOND
1024f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETCLASS	A_GETCLASS
1025f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETCLASS	A_SETCLASS
1026f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETPINFO	A_GETPINFO
1027f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETPMASK	A_SETPMASK
1028f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETFSIZE	A_SETFSIZE
1029f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETFSIZE	A_GETFSIZE
1030f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETPINFO_ADDR	A_GETPINFO_ADDR
1031f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_GETKAUDIT	A_GETKAUDIT
1032f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define	VKI_A_SETKAUDIT	A_SETKAUDIT
1033ea2d6fd6aaf98d261df9fdf580542ebf01b7fba4njn#if DARWIN_VERS >= DARWIN_10_6
1034ea2d6fd6aaf98d261df9fdf580542ebf01b7fba4njn#define VKI_A_SENDTRIGGER A_SENDTRIGGER
1035ea2d6fd6aaf98d261df9fdf580542ebf01b7fba4njn#define VKI_A_GETSINFO_ADDR A_GETSINFO_ADDR
1036ea2d6fd6aaf98d261df9fdf580542ebf01b7fba4njn#endif
1037f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
1038f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
10390111ec4bf791a113fa5b7ad908f8449fda8116cbnjn#include <sys/aio.h>
10400111ec4bf791a113fa5b7ad908f8449fda8116cbnjn
10410111ec4bf791a113fa5b7ad908f8449fda8116cbnjn#define vki_aiocb aiocb
10420111ec4bf791a113fa5b7ad908f8449fda8116cbnjn
10433a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njn
10445d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj#include <netinet/tcp.h>
10455d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj
10465d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj#define VKI_TCP_NODELAY  TCP_NODELAY
10475d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj
10485d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj
10495d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj#include <netinet/in.h>
10505d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj
10515d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj#define VKI_IPPROTO_TCP  IPPROTO_TCP
10525d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj
10535d616dfbb8439dfd51a40ddf1dba970938baa1ebsewardj
10543a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njn// XXX: for some reason when I #include <sys/kernel_types.h> I get a syntax
10553a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njn// error.  Hmm.  So just define things ourselves.
10563a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njn//#include <sys/kernel_types.h>
10573a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njn
10583a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njn//#define vki_errno_t
10593a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njntypedef int vki_errno_t;
10603a1b9a2b4f5af1684e4eb0ad7c157ee154295f30njn
1061f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#endif
1062