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