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