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