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