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