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