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