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