mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-08 08:26:14 +00:00
1115 lines
30 KiB
C
1115 lines
30 KiB
C
|
|
/*--------------------------------------------------------------------*/
|
|
/*--- Darwin-specific kernel interface. vki-darwin.h ---*/
|
|
/*--------------------------------------------------------------------*/
|
|
|
|
/*
|
|
This file is part of Valgrind, a dynamic binary instrumentation
|
|
framework.
|
|
|
|
Copyright (C) 2007-2015 Apple Inc.
|
|
Greg Parker gparker@apple.com
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of the
|
|
License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
02111-1307, USA.
|
|
|
|
The GNU General Public License is contained in the file COPYING.
|
|
*/
|
|
|
|
/* Unlike vki-linux, this Darwin kernel interface includes system headers
|
|
directly, to avoid copyright complexity. */
|
|
|
|
#ifndef __VKI_DARWIN_H
|
|
#define __VKI_DARWIN_H
|
|
|
|
/* struct __darwin_ucontext isn't fully declared without
|
|
* this definition. It's crazy but there it is. */
|
|
#ifndef _XOPEN_SOURCE
|
|
#define _XOPEN_SOURCE 0500
|
|
#endif
|
|
|
|
#include <stdint.h>
|
|
|
|
#define vki_int8_t int8_t
|
|
#define vki_uint8_t uint8_t
|
|
#define vki_int16_t int16_t
|
|
#define vki_uint16_t uint16_t
|
|
#define vki_int32_t int32_t
|
|
#define vki_uint32_t uint32_t
|
|
#define vki_int64_t int64_t
|
|
#define vki_uint64_t uint64_t
|
|
#define vki_intptr_t intptr_t
|
|
#define vki_uintptr_t uintptr_t
|
|
|
|
#include <sys/types.h>
|
|
|
|
#define vki_dev_t dev_t
|
|
#define vki_mode_t mode_t
|
|
#define vki_ino_t ino_t
|
|
#define vki_ino64_t ino64_t
|
|
#define vki_nlink_t nlink_t
|
|
#define vki_uid_t uid_t
|
|
#define vki_gid_t gid_t
|
|
#define vki_time_t time_t
|
|
#define vki_off_t off_t
|
|
#define vki_blkcnt_t blkcnt_t
|
|
#define vki_blksize_t blksize_t
|
|
#define vki_size_t size_t
|
|
#define vki_ssize_t ssize_t
|
|
#define vki_pid_t pid_t
|
|
#define vki_socklen_t socklen_t
|
|
#define vki_suseconds_t suseconds_t
|
|
#define vki_caddr_t caddr_t
|
|
#define vki_u_long u_long
|
|
#define vki_u_short u_short
|
|
#define vki_clock_t clock_t
|
|
#define vki_u_int32_t u_int32_t
|
|
#define vki_u_int16_t u_int16_t
|
|
#define vki_pthread_t pthread_t
|
|
|
|
|
|
// valgrind special
|
|
|
|
// magic mmap() flags
|
|
#define VKI_MAP_ANONYMOUS MAP_ANON // linux synonym
|
|
|
|
// fds for mmap(MAP_ANON), displayed by vmmap
|
|
#define VM_TAG_VALGRIND VM_MAKE_TAG(239) // SkAnonV
|
|
|
|
// page sizes
|
|
#define VKI_MAX_PAGE_SHIFT VKI_PAGE_SHIFT
|
|
#define VKI_MAX_PAGE_SIZE VKI_PAGE_SIZE
|
|
|
|
// types
|
|
typedef uint32_t vki_u32;
|
|
|
|
// linux-like ioctl flags
|
|
#define _VKI_IOC_DIR(x) ((x) & IOC_DIRMASK)
|
|
#define _VKI_IOC_SIZE(x) IOCPARM_LEN(x)
|
|
#define _VKI_IOC_NONE IOC_VOID /* GrP fixme correct? */
|
|
#define _VKI_IOC_READ IOC_OUT
|
|
#define _VKI_IOC_WRITE IOC_IN
|
|
|
|
|
|
#include <malloc/malloc.h>
|
|
|
|
#define vki_malloc_zone_t malloc_zone_t
|
|
|
|
|
|
#include <sys/time.h>
|
|
|
|
#define vki_timeval timeval
|
|
#define vki_timeval32 timeval32
|
|
#define vki_tv_sec tv_sec
|
|
#define vki_tv_usec tv_usec
|
|
#define vki_timespec timespec
|
|
#define vki_itimerval itimerval
|
|
#define vki_timezone timezone
|
|
|
|
|
|
#include <sys/stat.h>
|
|
|
|
#define VKI_S_ISBLK(m) S_ISBLK(m)
|
|
#define VKI_S_ISCHR(m) S_ISCHR(m)
|
|
#define VKI_S_ISDIR(m) S_ISDIR(m)
|
|
#define VKI_S_ISFIFO(m) S_ISFIFO(m)
|
|
#define VKI_S_ISREG(m) S_ISREG(m)
|
|
#define VKI_S_ISLNK(m) S_ISLNK(m)
|
|
#define VKI_S_ISSOCK(m) S_ISSOCK(m)
|
|
#define VKI_S_ISWHT(m) S_ISWHT(m)
|
|
#define VKI_S_ISXATTR(m) S_ISXATTR(m)
|
|
|
|
#define VKI_S_IRWXU S_IRWXU
|
|
#define VKI_S_IRUSR S_IRUSR
|
|
#define VKI_S_IWUSR S_IWUSR
|
|
#define VKI_S_IXUSR S_IXUSR
|
|
#define VKI_S_IRWXG S_IRWXG
|
|
#define VKI_S_IRGRP S_IRGRP
|
|
#define VKI_S_IWGRP S_IWGRP
|
|
#define VKI_S_IXGRP S_IXGRP
|
|
#define VKI_S_IRWXO S_IRWXO
|
|
#define VKI_S_IROTH S_IROTH
|
|
#define VKI_S_IWOTH S_IWOTH
|
|
#define VKI_S_IXOTH S_IXOTH
|
|
#define VKI_S_ISUID S_ISUID
|
|
#define VKI_S_ISGID S_ISGID
|
|
#define VKI_S_ISVTX S_ISVTX
|
|
|
|
#define vki_stat stat
|
|
#define vki_stat64 stat64
|
|
|
|
#define st_atime st_atimespec.tv_sec
|
|
#define st_atime_nsec st_atimespec.tv_nsec
|
|
#define st_mtime st_mtimespec.tv_sec
|
|
#define st_mtime_nsec st_mtimespec.tv_nsec
|
|
#define st_ctime st_ctimespec.tv_sec
|
|
#define st_ctime_nsec st_ctimespec.tv_nsec
|
|
|
|
|
|
#include <sys/dirent.h>
|
|
|
|
#define VKI_MAXNAMLEN MAXNAMLEN
|
|
#define vki_dirent dirent
|
|
|
|
|
|
#include <sys/socket.h>
|
|
#define VKI_SOCK_STREAM SOCK_STREAM
|
|
#define VKI_SOCK_DGRAM SOCK_DGRAM
|
|
#define VKI_SOCK_RAW SOCK_RAW
|
|
|
|
#define VKI_AF_UNIX AF_UNIX
|
|
#define VKI_AF_INET AF_INET
|
|
#define VKI_AF_INET6 AF_INET6
|
|
|
|
#define VKI_SOL_SOCKET SOL_SOCKET
|
|
|
|
#define VKI_SO_REUSEADDR SO_REUSEADDR
|
|
|
|
#define VKI_SO_SNDBUF SO_SNDBUF
|
|
#define VKI_SO_RCVBUF SO_RCVBUF
|
|
#define VKI_SO_SNDLOWAT SO_SNDLOWAT
|
|
#define VKI_SO_RCVLOWAT SO_RCVLOWAT
|
|
#define VKI_SO_SNDTIMEO SO_SNDTIMEO
|
|
#define VKI_SO_RCVTIMEO SO_RCVTIMEO
|
|
#define VKI_SO_ERROR SO_ERROR
|
|
#define VKI_SO_TYPE SO_TYPE
|
|
#define VKI_SO_NREAD SO_NREAD
|
|
#define VKI_SO_NKE SO_NKE
|
|
#define VKI_SO_NOSIGPIPE SO_NOSIGPIPE
|
|
#define VKI_SO_NOADDRERR SO_NOADDRERR
|
|
#define VKI_SO_NWRITE SO_NWRITE
|
|
#define VKI_SO_LINGER_SEC SO_LINGER_SEC
|
|
|
|
#define vki_sa_family_t sa_family_t
|
|
#define vki_sockaddr sockaddr
|
|
#define vki_iovec iovec
|
|
#define vki_msghdr msghdr
|
|
#define vki_cmsghdr cmsghdr
|
|
|
|
|
|
#define VKI_CMSG_ALIGN(a) ALIGN(a)
|
|
#define VKI_CMSG_DATA(cmsg) CMSG_DATA(cmsg)
|
|
#define VKI_CMSG_FIRSTHDR(mhdr) CMSG_FIRSTHDR(mhdr)
|
|
#define VKI_CMSG_NXTHDR(mhdr, cmsg) CMSG_NXTHDR(mhdr, cmsg)
|
|
|
|
#define VKI_SCM_RIGHTS SCM_RIGHTS
|
|
#define VKI_SCM_TIMESTAMP SCM_TIMESTAMP
|
|
#define VKI_SCM_CREDS SCM_CREDS
|
|
|
|
|
|
#include <sys/un.h>
|
|
|
|
#define vki_sockaddr_un sockaddr_un
|
|
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#define vki_in_addr_t in_addr_t
|
|
#define vki_in_port_t in_port_t
|
|
#define vki_in_addr in_addr
|
|
#define vki_sockaddr_in sockaddr_in
|
|
|
|
#define VKI_INADDR_LOOPBACK INADDR_LOOPBACK
|
|
|
|
|
|
// #include <netinet6/in6.h>
|
|
|
|
#define vki_in6_addr in6_addr
|
|
#define vki_sockaddr_in6 sockaddr_in6
|
|
|
|
|
|
#include <net/if.h>
|
|
|
|
#define VKI_IFNAMSIZ IFNAMSIZ
|
|
|
|
#define vki_ifdevmtu ifdevmtu
|
|
#define vki_ifreq ifreq
|
|
#define vki_ifr_name ifr_name
|
|
#define vki_ifr_addr ifr_addr
|
|
#define vki_ifr_dstaddr ifr_dstaddr
|
|
#define vki_ifr_broadaddr ifr_broadaddr
|
|
#define vki_ifr_flags ifr_flags
|
|
#define vki_ifr_metric ifr_metric
|
|
#define vki_ifr_mtu ifr_mtu
|
|
#define vki_ifr_phys ifr_phys
|
|
#define vki_ifr_media ifr_media
|
|
#define vki_ifr_data ifr_data
|
|
#define vki_ifr_devmtu ifr_devmtu
|
|
#define vki_ifr_intval ifr_intval
|
|
|
|
#define vki_ifconf ifconf
|
|
#define vki_ifc_buf ifc_buf
|
|
#define vki_ifc_req ifc_req
|
|
|
|
|
|
#include <sys/fcntl.h>
|
|
|
|
#define VKI_SEEK_SET SEEK_SET
|
|
#define VKI_SEEK_CUR SEEK_CUR
|
|
#define VKI_SEEK_END SEEK_END
|
|
|
|
#define VKI_O_RDONLY O_RDONLY
|
|
#define VKI_O_WRONLY O_WRONLY
|
|
#define VKI_O_RDWR O_RDWR
|
|
#define VKI_O_ACCMODE O_ACCMODE
|
|
#define VKI_O_NONBLOCK O_NONBLOCK
|
|
#define VKI_O_APPEND O_APPEND
|
|
#define VKI_O_SYNC O_SYN
|
|
#define VKI_O_SHLOCK O_SHLOCK
|
|
#define VKI_O_EXLOCK O_EXLOCK
|
|
#define VKI_O_ASYNC O_ASYNC
|
|
#define VKI_O_NOFOLLOW O_NOFOLLOW
|
|
#define VKI_O_CREAT O_CREAT
|
|
#define VKI_O_TRUNC O_TRUNC
|
|
#define VKI_O_EXCL O_EXCL
|
|
#define VKI_O_EVTONLY O_EVTONLY
|
|
|
|
#define VKI_F_DUPFD F_DUPFD
|
|
#define VKI_F_GETFD F_GETFD
|
|
#define VKI_F_SETFD F_SETFD
|
|
#define VKI_F_GETFL F_GETFL
|
|
#define VKI_F_SETFL F_SETFL
|
|
#define VKI_F_GETOWN F_GETOWN
|
|
#define VKI_F_SETOWN F_SETOWN
|
|
#define VKI_F_GETLK F_GETLK
|
|
#define VKI_F_SETLK F_SETLK
|
|
#define VKI_F_SETLKW F_SETLKW
|
|
#if DARWIN_VERS >= DARWIN_10_10
|
|
#define VKI_F_SETLKWTIMEOUT F_SETLKWTIMEOUT
|
|
#endif
|
|
|
|
#define VKI_F_CHKCLEAN F_CHKCLEAN
|
|
#define VKI_F_PREALLOCATE F_PREALLOCATE
|
|
#define VKI_F_SETSIZE F_SETSIZE
|
|
#define VKI_F_RDADVISE F_RDADVISE
|
|
#define VKI_F_RDAHEAD F_RDAHEAD
|
|
#define VKI_F_READBOOTSTRAP F_READBOOTSTRAP
|
|
#define VKI_F_WRITEBOOTSTRAP F_WRITEBOOTSTRAP
|
|
#define VKI_F_NOCACHE F_NOCACHE
|
|
#define VKI_F_LOG2PHYS F_LOG2PHYS
|
|
#define VKI_F_GETPATH F_GETPATH
|
|
#define VKI_F_ADDSIGS F_ADDSIGS
|
|
#if DARWIN_VERS >= DARWIN_10_9
|
|
# define VKI_F_ADDFILESIGS F_ADDFILESIGS
|
|
#endif
|
|
#if DARWIN_VERS >= DARWIN_10_11
|
|
# define VKI_F_ADDFILESIGS_FOR_DYLD_SIM F_ADDFILESIGS_FOR_DYLD_SIM
|
|
# define VKI_F_BARRIERFSYNC F_BARRIERFSYNC
|
|
# define VKI_F_ADDFILESIGS_RETURN F_ADDFILESIGS_RETURN
|
|
#endif
|
|
#define VKI_F_FULLFSYNC F_FULLFSYNC
|
|
#define VKI_F_PATHPKG_CHECK F_PATHPKG_CHECK
|
|
#define VKI_F_FREEZE_FS F_FREEZE_FS
|
|
#define VKI_F_THAW_FS F_THAW_FS
|
|
#define VKI_F_GLOBAL_NOCACHE F_GLOBAL_NOCACHE
|
|
|
|
#define VKI_FD_CLOEXEC FD_CLOEXEC
|
|
|
|
#define vki_radvisory radvisory
|
|
#define vki_fstore fstore
|
|
#define vki_fbootstraptransfer fbootstraptransfer
|
|
#define vki_log2phys log2phys
|
|
#define vki_fsignatures_t fsignatures_t
|
|
|
|
// These constants aren't in a standard header, they are from the kernel code:
|
|
// xnu-1228.3.13/bsd/sys/codesign.h
|
|
// Mac OS X 10.5.6 - Darwin 9.6
|
|
#define VKI_CS_OPS_STATUS 0 /* return status */
|
|
#define VKI_CS_OPS_MARKINVALID 1 /* invalidate process */
|
|
#define VKI_CS_OPS_MARKHARD 2 /* set HARD flag */
|
|
#define VKI_CS_OPS_MARKKILL 3 /* set KILL flag (sticky) */
|
|
#define VKI_CS_OPS_PIDPATH 4 /* get executable's pathname */
|
|
#define VKI_CS_OPS_CDHASH 5 /* get code directory hash */
|
|
|
|
#include <sys/mman.h>
|
|
|
|
#define VKI_PROT_NONE PROT_NONE
|
|
#define VKI_PROT_READ PROT_READ
|
|
#define VKI_PROT_WRITE PROT_WRITE
|
|
#define VKI_PROT_EXEC PROT_EXEC
|
|
|
|
#define VKI_MAP_SHARED MAP_SHARED
|
|
#define VKI_MAP_PRIVATE MAP_PRIVATE
|
|
#define VKI_MAP_FIXED MAP_FIXED
|
|
#define VKI_MAP_RENAME MAP_RENAME
|
|
#define VKI_MAP_NORESERVE MAP_NORESERVE
|
|
#define VKI_MAP_RESERVED0080 MAP_RESERVED0080
|
|
#define VKI_MAP_NOEXTEND MAP_NOEXTEND
|
|
#define VKI_MAP_HASSEMAPHORE MAP_HASSEMAPHORE
|
|
#define VKI_MAP_FILE MAP_FILE
|
|
#define VKI_MAP_ANON MAP_ANON
|
|
#define VKI_MAP_FAILED MAP_FAILED
|
|
|
|
|
|
#include <mach/vm_param.h>
|
|
|
|
#define VKI_PAGE_SHIFT PAGE_SHIFT
|
|
#define VKI_PAGE_SIZE PAGE_SIZE
|
|
#define VKI_PAGE_MASK PAGE_MASK
|
|
|
|
|
|
#include <sys/vmparam.h>
|
|
|
|
#define VKI_USRSTACK USRSTACK
|
|
#define VKI_USRSTACK64 USRSTACK64
|
|
|
|
|
|
#include <mach/mach_time.h>
|
|
|
|
#define vki_mach_timebase_info mach_timebase_info
|
|
|
|
|
|
#include <sys/syslimits.h>
|
|
|
|
#define VKI_PATH_MAX PATH_MAX
|
|
|
|
|
|
#include <sys/param.h>
|
|
|
|
#define VKI_MAXPATHLEN MAXPATHLEN
|
|
|
|
|
|
#include <sys/signal.h>
|
|
|
|
/* While we fully intend to make 'vki_sigset_t' match the native
|
|
Darwin 'sigset_t', we can't just clone the Darwin sigset_t type,
|
|
because it isn't an array, and the VG_(sigfillset) etc functions
|
|
assume it is. So instead define another isomorphic type, and check
|
|
in VG_(vki_do_initial_consistency_checks) that it really is
|
|
correct. */
|
|
/* #define vki_sigset_t sigset_t */
|
|
#define _VKI_NSIG_BPW 32
|
|
#define _VKI_NSIG 32
|
|
#define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW)
|
|
typedef struct {
|
|
UInt sig[_VKI_NSIG_WORDS];
|
|
} vki_sigset_t;
|
|
/* and now let VG_(vki_do_initial_consistency_checks) make sure it
|
|
matches 'sigset_t'. */
|
|
|
|
|
|
#define VKI_SS_ONSTACK SS_ONSTACK
|
|
#define VKI_SS_DISABLE SS_DISABLE
|
|
#define VKI_MINSIGSTKSZ MINSIGSTKSZ
|
|
#define VKI_SIGSTKSZ SIGSTKSZ
|
|
|
|
#define vki_stack_t stack_t
|
|
#define vki_siginfo_t siginfo_t
|
|
|
|
/* There are two versions of this. 'struct __sigaction' is used for
|
|
passing sigactions to the kernel interface, and has the added
|
|
complexity of requiring an extra pointer to a new demultiplexing
|
|
function to be run in user space. 'struct sigaction' is used for
|
|
receiving old sigactions from the kernel, and lacks this
|
|
demux-function pointer. So the type of the second and third
|
|
parameters in Darwin's sys_sigaction appear to be different,
|
|
respectively 'struct __sigaction*' and 'struct sigaction*'.
|
|
*/
|
|
//#define vki_sigaction __sigaction
|
|
//#define vki_user_sigaction sigaction
|
|
//#define vki_sigaltstack sigaltstack
|
|
//#define vki_sigval sigval
|
|
//#define vki_sigaction_u sigaction_u
|
|
//#define vki_sigaction sigaction
|
|
|
|
//typedef struct __sigaction vki_sigaction_toK_t;
|
|
//typedef struct sigaction vki_sigaction_fromK_t;
|
|
|
|
typedef
|
|
struct {
|
|
void* ksa_handler;
|
|
void (*sa_tramp)(void*,UWord,UWord,void*,void*);
|
|
vki_sigset_t sa_mask;
|
|
int sa_flags;
|
|
}
|
|
vki_sigaction_toK_t;
|
|
|
|
typedef
|
|
struct {
|
|
void* ksa_handler;
|
|
vki_sigset_t sa_mask;
|
|
int sa_flags;
|
|
}
|
|
vki_sigaction_fromK_t;
|
|
|
|
|
|
|
|
/* and /usr/include/sys/signal.c in turn defines 'sa_handler' to
|
|
be '__sigaction_u.__sa_handler' */
|
|
//#define ksa_handler sa_handler
|
|
|
|
//#define vki_sa_sigaction sa_sigaction
|
|
|
|
#define VKI_SA_ONSTACK SA_ONSTACK
|
|
#define VKI_SA_RESTART SA_RESTART
|
|
#define VKI_SA_DISABLE SA_DISABLE
|
|
#define VKI_SA_RESETHAND SA_RESETHAND
|
|
#define VKI_SA_NOCLDSTOP SA_NOCLDSTOP
|
|
#define VKI_SA_NODEFER SA_NODEFER
|
|
#define VKI_SA_NOCLDWAIT SA_NOCLDWAIT
|
|
#define VKI_SA_SIGINFO SA_SIGINFO
|
|
#define VKI_SA_USERTRAMP SA_USERTRAMP
|
|
#define VKI_SA_64REGSET SA_64REGSET
|
|
#define VKI_SA_RESTORER 0 /* Darwin doesn't have this */
|
|
|
|
#define VKI_SIG_BLOCK SIG_BLOCK
|
|
#define VKI_SIG_UNBLOCK SIG_UNBLOCK
|
|
#define VKI_SIG_SETMASK SIG_SETMASK
|
|
|
|
#define VKI_SIGHUP SIGHUP
|
|
#define VKI_SIGINT SIGINT
|
|
#define VKI_SIGQUIT SIGQUIT
|
|
#define VKI_SIGILL SIGILL
|
|
#define VKI_SIGTRAP SIGTRAP
|
|
#define VKI_SIGABRT SIGABRT
|
|
#define VKI_SIGPOLL SIGPOLL
|
|
#define VKI_SIGFPE SIGFPE
|
|
#define VKI_SIGKILL SIGKILL
|
|
#define VKI_SIGBUS SIGBUS
|
|
#define VKI_SIGSEGV SIGSEGV
|
|
#define VKI_SIGSYS SIGSYS
|
|
#define VKI_SIGPIPE SIGPIPE
|
|
#define VKI_SIGALRM SIGALRM
|
|
#define VKI_SIGTERM SIGTERM
|
|
#define VKI_SIGURG SIGURG
|
|
#define VKI_SIGSTOP SIGSTOP
|
|
#define VKI_SIGTSTP SIGTSTP
|
|
#define VKI_SIGCONT SIGCONT
|
|
#define VKI_SIGCHLD SIGCHLD
|
|
#define VKI_SIGTTIN SIGTTIN
|
|
#define VKI_SIGTTOU SIGTTOU
|
|
#define VKI_SIGIO SIGIO
|
|
#define VKI_SIGXCPU SIGXCPU
|
|
#define VKI_SIGXFSZ SIGXFSZ
|
|
#define VKI_SIGVTALRM SIGVTALRM
|
|
#define VKI_SIGPROF SIGPROF
|
|
#define VKI_SIGWINCH SIGWINCH
|
|
#define VKI_SIGINFO SIGINFO
|
|
#define VKI_SIGUSR1 SIGUSR1
|
|
#define VKI_SIGUSR2 SIGUSR2
|
|
|
|
#define VKI_SIG_DFL SIG_DFL
|
|
#define VKI_SIG_IGN SIG_IGN
|
|
|
|
|
|
#define VKI_SI_USER SI_USER
|
|
#define VKI_SEGV_MAPERR SEGV_MAPERR
|
|
#define VKI_SEGV_ACCERR SEGV_ACCERR
|
|
#define VKI_ILL_ILLOPC ILL_ILLOPC
|
|
#define VKI_ILL_ILLOPN ILL_ILLOPN
|
|
#define VKI_ILL_ILLADR ILL_ILLADR
|
|
#define VKI_ILL_ILLTRP ILL_ILLTRP
|
|
#define VKI_ILL_PRVOPC ILL_PRVOPC
|
|
#define VKI_ILL_PRVREG ILL_PRVREG
|
|
#define VKI_ILL_COPROC ILL_COPROC
|
|
#define VKI_ILL_BADSTK ILL_BADSTK
|
|
#define VKI_FPE_INTDIV FPE_INTDIV
|
|
#define VKI_FPE_INTOVF FPE_INTOVF
|
|
#define VKI_FPE_FLTDIV FPE_FLTDIV
|
|
#define VKI_FPE_FLTOVF FPE_FLTOVF
|
|
#define VKI_FPE_FLTUND FPE_FLTUND
|
|
#define VKI_FPE_FLTRES FPE_FLTRES
|
|
#define VKI_FPE_FLTINV FPE_FLTINV
|
|
#define VKI_FPE_FLTSUB FPE_FLTSUB
|
|
#define VKI_BUS_ADRALN BUS_ADRALN
|
|
#define VKI_BUS_ADRERR BUS_ADRERR
|
|
#define VKI_BUS_OBJERR BUS_OBJERR
|
|
#define VKI_TRAP_BRKPT TRAP_BRKPT
|
|
|
|
/* JRS: not 100% sure, but I think these two are correct */
|
|
#define VKI_SA_ONESHOT SA_RESETHAND
|
|
#define VKI_SA_NOMASK SA_NODEFER
|
|
|
|
#define VKI_UC_SET_ALT_STACK 0x40000000
|
|
#define VKI_UC_RESET_ALT_STACK 0x80000000
|
|
|
|
|
|
#include <sys/errno.h>
|
|
|
|
#define VKI_EPERM EPERM
|
|
#define VKI_ENOENT ENOENT
|
|
#define VKI_ESRCH ESRCH
|
|
#define VKI_EINTR EINTR
|
|
#define VKI_EIO EIO
|
|
#define VKI_ENXIO ENXIO
|
|
#define VKI_E2BIG E2BIG
|
|
#define VKI_ENOEXEC ENOEXEC
|
|
#define VKI_EBADF EBADF
|
|
#define VKI_ECHILD ECHILD
|
|
#define VKI_EDEADLK EDEADLK
|
|
#define VKI_ENOMEM ENOMEM
|
|
#define VKI_EACCES EACCES
|
|
#define VKI_EFAULT EFAULT
|
|
#define VKI_ENOTBLK ENOTBLK
|
|
#define VKI_EBUSY EBUSY
|
|
#define VKI_EEXIST EEXIST
|
|
#define VKI_EXDEV EXDEV
|
|
#define VKI_ENODEV ENODEV
|
|
#define VKI_ENOTDIR ENOTDIR
|
|
#define VKI_EISDIR EISDIR
|
|
#define VKI_EINVAL EINVAL
|
|
#define VKI_ENFILE ENFILE
|
|
#define VKI_EMFILE EMFILE
|
|
#define VKI_ENOTTY ENOTTY
|
|
#define VKI_ETXTBSY ETXTBSY
|
|
#define VKI_EFBIG EFBIG
|
|
#define VKI_ENOSPC ENOSPC
|
|
#define VKI_ESPIPE ESPIPE
|
|
#define VKI_EROFS EROFS
|
|
#define VKI_EMLINK EMLINK
|
|
#define VKI_EPIPE EPIPE
|
|
#define VKI_EDOM EDOM
|
|
#define VKI_ERANGE ERANGE
|
|
#define VKI_EAGAIN EAGAIN
|
|
#define VKI_EWOULDBLOCK EAGAIN
|
|
#define VKI_EINPROGRESS EINPROGRESS
|
|
#define VKI_EALREADY EALREADY
|
|
#define VKI_ENOTSOCK ENOTSOCK
|
|
#define VKI_EDESTADDRREQ EDESTADDRREQ
|
|
#define VKI_EMSGSIZE EMSGSIZE
|
|
#define VKI_EPROTOTYPE EPROTOTYPE
|
|
#define VKI_ENOPROTOOPT ENOPROTOOPT
|
|
#define VKI_EPROTONOSUPPORT EPROTONOSUPPORT
|
|
#define VKI_ESOCKTNOSUPPORT ESOCKTNOSUPPORT
|
|
#define VKI_ENOTSUP ENOTSUP
|
|
#define VKI_EPFNOSUPPORT EPFNOSUPPORT
|
|
#define VKI_EAFNOSUPPORT EAFNOSUPPORT
|
|
#define VKI_EADDRINUSE EADDRINUSE
|
|
#define VKI_EADDRNOTAVAIL EADDRNOTAVAIL
|
|
#define VKI_ENETDOWN ENETDOWN
|
|
#define VKI_ENETUNREACH ENETUNREACH
|
|
#define VKI_ENETRESET ENETRESET
|
|
#define VKI_ECONNABORTED ECONNABORTED
|
|
#define VKI_ECONNRESET ECONNRESET
|
|
#define VKI_ENOBUFS ENOBUFS
|
|
#define VKI_EISCONN EISCONN
|
|
#define VKI_ENOTCONN ENOTCONN
|
|
#define VKI_ESHUTDOWN ESHUTDOWN
|
|
#define VKI_ETOOMANYREFS ETOOMANYREFS
|
|
#define VKI_ETIMEDOUT ETIMEDOUT
|
|
#define VKI_ECONNREFUSED ECONNREFUSED
|
|
#define VKI_ELOOP ELOOP
|
|
#define VKI_ENAMETOOLONG ENAMETOOLONG
|
|
#define VKI_EHOSTDOWN EHOSTDOWN
|
|
#define VKI_EHOSTUNREACH EHOSTUNREACH
|
|
#define VKI_ENOTEMPTY ENOTEMPTY
|
|
#define VKI_EPROCLIM EPROCLIM
|
|
#define VKI_EUSERS EUSERS
|
|
#define VKI_EDQUOT EDQUOT
|
|
#define VKI_ESTALE ESTALE
|
|
#define VKI_EREMOTE EREMOTE
|
|
#define VKI_EBADRPC EBADRPC
|
|
#define VKI_ERPCMISMATCH ERPCMISMATCH
|
|
#define VKI_EPROGUNAVAIL EPROGUNAVAIL
|
|
#define VKI_EPROGMISMATCH EPROGMISMATCH
|
|
#define VKI_EPROCUNAVAIL EPROCUNAVAIL
|
|
#define VKI_ENOLCK ENOLCK
|
|
#define VKI_ENOSYS ENOSYS
|
|
#define VKI_EFTYPE EFTYPE
|
|
#define VKI_EAUTH EAUTH
|
|
#define VKI_ENEEDAUTH ENEEDAUTH
|
|
#define VKI_EPWROFF EPWROFF
|
|
#define VKI_EDEVERR EDEVERR
|
|
#define VKI_EOVERFLOW EOVERFLOW
|
|
#define VKI_EBADEXEC EBADEXEC
|
|
#define VKI_EBADARCH EBADARCH
|
|
#define VKI_ESHLIBVERS ESHLIBVERS
|
|
#define VKI_EBADMACHO EBADMACHO
|
|
#define VKI_ECANCELED ECANCELED
|
|
#define VKI_EIDRM EIDRM
|
|
#define VKI_ENOMSG ENOMSG
|
|
#define VKI_EILSEQ EILSEQ
|
|
#define VKI_ENOATTR ENOATTR
|
|
#define VKI_EBADMSG EBADMSG
|
|
#define VKI_EMULTIHOP EMULTIHOP
|
|
#define VKI_ENODATA ENODATA
|
|
#define VKI_ENOLINK ENOLINK
|
|
#define VKI_ENOSR ENOSR
|
|
#define VKI_ENOSTR ENOSTR
|
|
#define VKI_EPROTO EPROTO
|
|
#define VKI_ETIME ETIME
|
|
#define VKI_EOPNOTSUPP EOPNOTSUPP
|
|
#define VKI_ELAST ELAST
|
|
|
|
|
|
#include <sys/resource.h>
|
|
|
|
#define VKI_RLIMIT_CPU RLIMIT_CPU
|
|
#define VKI_RLIMIT_FSIZE RLIMIT_FSIZE
|
|
#define VKI_RLIMIT_DATA RLIMIT_DATA
|
|
#define VKI_RLIMIT_STACK RLIMIT_STACK
|
|
#define VKI_RLIMIT_CORE RLIMIT_CORE
|
|
#define VKI_RLIMIT_AS RLIMIT_AD
|
|
#define VKI_RLIMIT_RSS RLIMIT_AS
|
|
#define VKI_RLIMIT_MEMLOCK RLIMIT_MEMLOCK
|
|
#define VKI_RLIMIT_NPROC RLIMIT_NPROC
|
|
#define VKI_RLIMIT_NOFILE RLIMIT_NOFILE
|
|
#define VKI_RLIM_NLIMITS RLIM_NLIMITS
|
|
|
|
#define vki_rlim_t rlim_t
|
|
#define vki_rlimit rlimit
|
|
#define vki_rusage rusage
|
|
|
|
|
|
#include <sys/poll.h>
|
|
|
|
#define vki_pollfd pollfd
|
|
|
|
|
|
#include <sys/ipc.h>
|
|
|
|
#define VKI_IPC_RMID IPC_RMID
|
|
#define VKI_IPC_SET IPC_SET
|
|
#define VKI_IPC_STAT IPC_STAT
|
|
|
|
#define vki_key_t key_t
|
|
#define vki_ipc_perm ipc_perm
|
|
|
|
|
|
#include <sys/sem.h>
|
|
|
|
#define VKI_GETNCNT GETNCNT
|
|
#define VKI_GETPID GETPID
|
|
#define VKI_GETVAL GETVAL
|
|
#define VKI_GETALL GETALL
|
|
#define VKI_GETZCNT GETZCNT
|
|
#define VKI_SETVAL SETVAL
|
|
#define VKI_SETALL SETALL
|
|
|
|
#define vki_sembuf sembuf
|
|
#define vki_semid_ds semid_ds
|
|
#define vki_semun semun
|
|
|
|
|
|
#include <sys/semaphore.h>
|
|
|
|
#define vki_sem_t sem_t
|
|
|
|
|
|
#include <sys/mount.h>
|
|
|
|
#define VKI_MFSNAMELEN MFSNAMELEN
|
|
#define VKI_MNAMELEN MNAMELEN
|
|
|
|
#define vki_fsid fsid
|
|
#define vki_fsid_t fsid_t
|
|
#define vki_statfs statfs
|
|
#define vki_statfs64 statfs64
|
|
|
|
|
|
#include <sys/select.h>
|
|
|
|
#define vki_fd_set fd_set
|
|
|
|
|
|
#include <sys/msgbuf.h>
|
|
|
|
#define VKI_MSG_BSIZE MSG_BSIZE
|
|
#define VKI_MSG_MAGIC MSG_MAGIC
|
|
#define vki_msgbuf msgbuf
|
|
|
|
|
|
#include <sys/shm.h>
|
|
|
|
#define VKI_SHM_RDONLY SHM_RDONLY
|
|
#define VKI_SHM_RND SHM_RND
|
|
#define VKI_SHMLBA SHMLBA
|
|
|
|
#define vki_shmid_ds shmid_ds
|
|
|
|
|
|
#include <sys/times.h>
|
|
|
|
#define vki_tms tms
|
|
|
|
|
|
#include <sys/utsname.h>
|
|
|
|
#define _VKI_SYS_NAMELEN _SYS_NAMELEN
|
|
#define vki_new_utsname utsname
|
|
|
|
|
|
#include <sys/unistd.h>
|
|
|
|
#define VKI_F_OK F_OK
|
|
#define VKI_X_OK X_OK
|
|
#define VKI_W_OK W_OK
|
|
#define VKI_R_OK R_OK
|
|
|
|
#define vki_accessx_descriptor accessx_descriptor
|
|
#define VKI_ACCESSX_MAX_DESCRIPTORS ACCESSX_MAX_DESCRIPTORS
|
|
|
|
#include <sys/sysctl.h>
|
|
|
|
#define VKI_CTL_MAXNAME CTL_MAXNAME
|
|
|
|
#define VKI_CTL_UNSPEC CTL_UNSPEC
|
|
#define VKI_CTL_KERN CTL_KERN
|
|
#define VKI_CTL_VM CTL_VM
|
|
#define VKI_CTL_VFS CTL_VFS
|
|
#define VKI_CTL_NET CTL_NET
|
|
#define VKI_CTL_DEBUG CTL_DEBUG
|
|
#define VKI_CTL_HW CTL_HW
|
|
#define VKI_CTL_MACHDEP CTL_MACHDEP
|
|
#define VKI_CTL_USER CTL_USER
|
|
#define VKI_CTL_MAXID CTL_MAXID
|
|
|
|
#define VKI_HW_MACHINE HW_MACHINE
|
|
#define VKI_HW_MODEL HW_MODEL
|
|
#define VKI_HW_NCPU HW_NCPU
|
|
#define VKI_HW_BYTEORDER HW_BYTEORDER
|
|
#define VKI_HW_PHYSMEM HW_PHYSMEM
|
|
#define VKI_HW_USERMEM HW_USERMEM
|
|
#define VKI_HW_PAGESIZE HW_PAGESIZE
|
|
#define VKI_HW_DISKNAMES HW_DISKNAMES
|
|
#define VKI_HW_DISKSTATS HW_DISKSTATS
|
|
#define VKI_HW_EPOCH HW_EPOCH
|
|
#define VKI_HW_FLOATINGPT HW_FLOATINGPT
|
|
#define VKI_HW_MACHINE_ARCH HW_MACHINE_ARCH
|
|
#define VKI_HW_VECTORUNIT HW_VECTORUNIT
|
|
#define VKI_HW_BUS_FREQ HW_BUS_FREQ
|
|
#define VKI_HW_CPU_FREQ HW_CPU_FREQ
|
|
#define VKI_HW_CACHELINE HW_CACHELINE
|
|
#define VKI_HW_L1ICACHESIZE HW_L1ICACHESIZE
|
|
#define VKI_HW_L1DCACHESIZE HW_L1DCACHESIZE
|
|
#define VKI_HW_L2SETTINGS HW_L2SETTINGS
|
|
#define VKI_HW_L2CACHESIZE HW_L2CACHESIZE
|
|
#define VKI_HW_L3SETTINGS HW_L3SETTINGS
|
|
#define VKI_HW_L3CACHESIZE HW_L3CACHESIZE
|
|
#define VKI_HW_TB_FREQ HW_TB_FREQ
|
|
#define VKI_HW_MEMSIZE HW_MEMSIZE
|
|
#define VKI_HW_AVAILCPU MW_AVAILCPU
|
|
#define VKI_HW_MAXID MW_MAXID
|
|
|
|
#define VKI_KERN_USRSTACK32 KERN_USRSTACK32
|
|
#define VKI_KERN_USRSTACK64 KERN_USRSTACK64
|
|
|
|
|
|
#include <sys/attr.h>
|
|
|
|
#define vki_attrlist attrlist
|
|
|
|
|
|
#include <sys/event.h>
|
|
|
|
#define vki_kevent kevent
|
|
#define vki_kevent64 kevent64_s
|
|
|
|
|
|
#include <sys/ev.h>
|
|
|
|
typedef struct eventreq vki_eventreq;
|
|
|
|
|
|
#include <sys/acl.h>
|
|
|
|
#define vki_kauth_filesec kauth_filesec
|
|
|
|
|
|
#include <sys/ptrace.h>
|
|
|
|
#define VKI_PTRACE_TRACEME PT_TRACE_ME
|
|
#define VKI_PTRACE_DETACH PT_DETACH
|
|
|
|
|
|
// sqlite/src/os_unix.c
|
|
|
|
struct ByteRangeLockPB2
|
|
{
|
|
unsigned long long offset; /* offset to first byte to lock */
|
|
unsigned long long length; /* nbr of bytes to lock */
|
|
unsigned long long retRangeStart; /* nbr of 1st byte locked if successful */
|
|
unsigned char unLockFlag; /* 1 = unlock, 0 = lock */
|
|
unsigned char startEndFlag; /* 1=rel to end of fork, 0=rel to start */
|
|
int fd; /* file desc to assoc this lock with */
|
|
};
|
|
|
|
#define afpfsByteRangeLock2FSCTL _IOWR('z', 23, struct ByteRangeLockPB2)
|
|
|
|
#define vki_ByteRangeLockPB2 ByteRangeLockPB2
|
|
#define VKI_afpfsByteRangeLock2FSCTL afpfsByteRangeLock2FSCTL
|
|
|
|
|
|
// xnu/bsd/sys/fsctl.h
|
|
|
|
#define VKI_FSIOC_SYNC_VOLUME _IOW('A', 1, uint32_t)
|
|
|
|
|
|
// Libc/pthreads/pthread.c
|
|
|
|
#define VKI_WQOPS_QUEUE_ADD 1
|
|
#define VKI_WQOPS_QUEUE_REMOVE 2
|
|
#define VKI_WQOPS_THREAD_RETURN 4
|
|
#define VKI_WQOPS_THREAD_SETCONC 8
|
|
#define VKI_WQOPS_QUEUE_NEWSPISUPP 16 /* check for newer SPI support */
|
|
#define VKI_WQOPS_QUEUE_REQTHREADS 32 /* request number of threads of a prio */
|
|
|
|
|
|
#include <sys/ttycom.h>
|
|
|
|
#define vki_winsize winsize
|
|
|
|
#define VKI_TIOCMODG TIOCMODG
|
|
#define VKI_TIOCMODS TIOCMODS
|
|
#define VKI_TIOCEXCL TIOCEXCL
|
|
#define VKI_TIOCNXCL TIOCNXCL
|
|
#define VKI_TIOCFLUSH TIOCFLUSH
|
|
#define VKI_TIOCGETA TIOCGETA
|
|
#define VKI_TIOCSETA TIOCSETA
|
|
#define VKI_TIOCSETAW TIOCSETAW
|
|
#define VKI_TIOCSETAF TIOCSETAF
|
|
#define VKI_TIOCGETD TIOCGETD
|
|
#define VKI_TIOCSETD TIOCSETD
|
|
#define VKI_TIOCSBRK TIOCSBRK
|
|
#define VKI_TIOCCBRK TIOCCBRK
|
|
#define VKI_TIOCSDTR TIOCSDTR
|
|
#define VKI_TIOCCDTR TIOCCDTR
|
|
#define VKI_TIOCGPGRP TIOCGPGRP
|
|
#define VKI_TIOCSPGRP TIOCSPGRP
|
|
#define VKI_TIOCOUTQ TIOCOUTQ
|
|
#define VKI_TIOCSTI TIOCSTI
|
|
#define VKI_TIOCNOTTY TIOCNOTTY
|
|
#define VKI_TIOCPKT TIOCPKT
|
|
#define VKI_TIOCSTOP TIOCSTOP
|
|
#define VKI_TIOCSTART TIOCSTART
|
|
#define VKI_TIOCMSET TIOCMSET
|
|
#define VKI_TIOCMBIS TIOCMBIS
|
|
#define VKI_TIOCMBIC TIOCMBIC
|
|
#define VKI_TIOCMGET TIOCMGET
|
|
#define VKI_TIOCREMOTE TIOCREMOTE
|
|
#define VKI_TIOCGWINSZ TIOCGWINSZ
|
|
#define VKI_TIOCSWINSZ TIOCSWINSZ
|
|
#define VKI_TIOCUCNTL TIOCUCNTL
|
|
#define VKI_TIOCSTAT TIOCSTAT
|
|
#define VKI_UIOCCMD(n) UIOCCMD(n)
|
|
#define VKI_TIOCSCONS TIOCSCONS
|
|
#define VKI_TIOCCONS TIOCCONS
|
|
#define VKI_TIOCSCTTY TIOCSCTTY
|
|
#define VKI_TIOCEXT TIOCEXT
|
|
#define VKI_TIOCSIG TIOCSIG
|
|
#define VKI_TIOCDRAIN TIOCDRAIN
|
|
#define VKI_TIOCMSDTRWAIT TIOCMSDTRWAIT
|
|
#define VKI_TIOCMGDTRWAIT TIOCMGDTRWAIT
|
|
#define VKI_TIOCTIMESTAMP TIOCTIMESTAMP
|
|
#define VKI_TIOCDCDTIMESTAMP TIOCDCDTIMESTAMP
|
|
#define VKI_TIOCSDRAINWAIT TIOCSDRAINWAIT
|
|
#define VKI_TIOCGDRAINWAIT TIOCGDRAINWAIT
|
|
#define VKI_TIOCDSIMICROCODE TIOCDSIMICROCODE
|
|
#define VKI_TIOCPTYGRANT TIOCPTYGRANT
|
|
#define VKI_TIOCPTYGNAME TIOCPTYGNAME
|
|
#define VKI_TIOCPTYUNLK TIOCPTYUNLK
|
|
|
|
|
|
#include <sys/filio.h>
|
|
|
|
#define VKI_FIOCLEX FIOCLEX
|
|
#define VKI_FIONCLEX FIONCLEX
|
|
#define VKI_FIONREAD FIONREAD
|
|
#define VKI_FIONBIO FIONBIO
|
|
#define VKI_FIOASYNC FIOASYNC
|
|
#define VKI_FIOSETOWN FIOSETOWN
|
|
#define VKI_FIOGETOWN FIOGETOWN
|
|
#define VKI_FIODTYPE FIODTYPE
|
|
|
|
|
|
#include <sys/sockio.h>
|
|
|
|
#define VKI_SIOCSHIWAT SIOCSHIWAT
|
|
#define VKI_SIOCGHIWAT SIOCGHIWAT
|
|
#define VKI_SIOCSLOWAT SIOCSLOWAT
|
|
#define VKI_SIOCGLOWAT SIOCGLOWAT
|
|
#define VKI_SIOCATMARK SIOCATMARK
|
|
#define VKI_SIOCSPGRP SIOCSPGRP
|
|
#define VKI_SIOCGPGRP SIOCGPGRP
|
|
|
|
#define VKI_SIOCSIFADDR SIOCSIFADDR
|
|
#define VKI_OSIOCGIFADDR OSIOCGIFADDR
|
|
#define VKI_SIOCSIFDSTADDR SIOCSIFDSTADDR
|
|
#define VKI_OSIOCGIFDSTADDR OSIOCGIFDSTADDR
|
|
#define VKI_SIOCSIFFLAGS SIOCSIFFLAGS
|
|
#define VKI_SIOCGIFFLAGS SIOCGIFFLAGS
|
|
#define VKI_OSIOCGIFBRDADDR OSIOCGIFBRDADDR
|
|
#define VKI_SIOCSIFBRDADDR SIOCSIFBRDADDR
|
|
#define VKI_OSIOCGIFCONF OSIOCGIFCONF
|
|
#define VKI_OSIOCGIFNETMASK OSIOCGIFNETMASK
|
|
#define VKI_SIOCSIFNETMASK SIOCSIFNETMASK
|
|
#define VKI_SIOCGIFMETRIC SIOCGIFMETRIC
|
|
#define VKI_SIOCSIFMETRIC SIOCSIFMETRIC
|
|
#define VKI_SIOCDIFADDR SIOCDIFADDR
|
|
#define VKI_SIOCAIFADDR SIOCAIFADDR
|
|
#define VKI_SIOCGETVIFCNT SIOCGETVIFCNT
|
|
#define VKI_SIOCGETSGCNT SIOCGETSGCNT
|
|
#define VKI_SIOCALIFADDR SIOCALIFADDR
|
|
#define VKI_SIOCGLIFADDR SIOCGLIFADDR
|
|
#define VKI_SIOCDLIFADDR SIOCDLIFADDR
|
|
|
|
#define VKI_SIOCGIFADDR SIOCGIFADDR
|
|
#define VKI_SIOCGIFDSTADDR SIOCGIFDSTADDR
|
|
#define VKI_SIOCGIFBRDADDR SIOCGIFBRDADDR
|
|
#define VKI_SIOCGIFCONF SIOCGIFCONF
|
|
#define VKI_SIOCGIFNETMASK SIOCGIFNETMASK
|
|
#define VKI_SIOCAUTOADDR SIOCAUTOADDR
|
|
#define VKI_SIOCAUTONETMASK SIOCAUTONETMASK
|
|
#define VKI_SIOCARPIPLL SIOCARPIPLL
|
|
|
|
#define VKI_SIOCADDMULTI SIOCADDMULTI
|
|
#define VKI_SIOCDELMULTI SIOCDELMULTI
|
|
#define VKI_SIOCGIFMTU SIOCGIFMTU
|
|
#define VKI_SIOCSIFMTU SIOCSIFMTU
|
|
#define VKI_SIOCGIFPHYS SIOCGIFPHYS
|
|
#define VKI_SIOCSIFPHYS SIOCSIFPHYS
|
|
#define VKI_SIOCSIFMEDIA SIOCSIFMEDIA
|
|
#define VKI_SIOCGIFMEDIA SIOCGIFMEDIA
|
|
#define VKI_SIOCSIFGENERIC SIOCSIFGENERIC
|
|
#define VKI_SIOCGIFGENERIC SIOCGIFGENERIC
|
|
#define VKI_SIOCRSLVMULTI SIOCRSLVMULTI
|
|
|
|
#define VKI_SIOCSIFLLADDR SIOCSIFLLADDR
|
|
#define VKI_SIOCGIFSTATUS SIOCGIFSTATUS
|
|
#define VKI_SIOCSIFPHYADDR SIOCSIFPHYADDR
|
|
#define VKI_SIOCGIFPSRCADDR SIOCGIFPSRCADDR
|
|
#define VKI_SIOCGIFPDSTADDR SIOCGIFPDSTADDR
|
|
#define VKI_SIOCDIFPHYADDR SIOCDIFPHYADDR
|
|
#define VKI_SIOCSLIFPHYADDR SIOCSLIFPHYADDR
|
|
#define VKI_SIOCGLIFPHYADDR SIOCGLIFPHYADDR
|
|
|
|
#define VKI_SIOCGIFDEVMTU SIOCGIFDEVMTU
|
|
#define VKI_SIOCSIFALTMTU SIOCSIFALTMTU
|
|
#define VKI_SIOCGIFALTMTU SIOCGIFALTMTU
|
|
#define VKI_SIOCSIFBOND SIOCSIFBOND
|
|
#define VKI_SIOCGIFBOND SIOCGIFBOND
|
|
#define VKI_SIOCIFCREATE SIOCIFCREATE
|
|
#define VKI_SIOCIFDESTROY SIOCIFDESTROY
|
|
#define VKI_SIOCSIFVLAN SIOCSIFVLAN
|
|
#define VKI_SIOCGIFVLAN SIOCGIFVLAN
|
|
|
|
#define VKI_SIOCSETVLAN SIOCSIFVLAN
|
|
#define VKI_SIOCGETVLAN SIOCGIFVLAN
|
|
|
|
#define VKI_SIOCGIFASYNCMAP SIOCGIFASYNCMAP
|
|
#define VKI_SIOCSIFASYNCMAP SIOCSIGASYNCMAP
|
|
|
|
|
|
#include <sys/dtrace.h>
|
|
|
|
#define VKI_DTRACEHIOC_REMOVE DTRACEHIOC_REMOVE
|
|
#define VKI_DTRACEHIOC_ADDDOF DTRACEHIOC_ADDDOF
|
|
|
|
|
|
#include <net/bpf.h>
|
|
|
|
#define vki_bpf_program bpf_program
|
|
#define vki_bf_len bf_len
|
|
#define vki_bf_insns bf_insns
|
|
#define vki_bpf_dltlist bpf_dltlist
|
|
#define vki_bfl_len bfl_len
|
|
#define vki_bfl_list bfl_list
|
|
|
|
#define VKI_BIOCSETF BIOCSETF
|
|
#define VKI_BIOCFLUSH BIOCFLUSH
|
|
#define VKI_BIOCPROMISC BIOCPROMISC
|
|
#define VKI_BIOCSETIF BIOCSETIF
|
|
#define VKI_BIOCSRTIMEOUT BIOCSRTIMEOUT
|
|
#define VKI_BIOCGDLTLIST BIOCGDLTLIST
|
|
|
|
|
|
#include <sys/ucontext.h>
|
|
|
|
/* quite why sys/ucontext.h provides a 'struct __darwin_ucontext'
|
|
but no 'struct ucontext' beats me. -- JRS */
|
|
#define vki_ucontext __darwin_ucontext
|
|
|
|
|
|
#include <sys/termios.h>
|
|
|
|
#define vki_termios termios
|
|
|
|
|
|
#include <uuid/uuid.h>
|
|
|
|
#define vki_uuid_t uuid_t
|
|
|
|
|
|
#include <bsm/audit.h>
|
|
|
|
#define VKI_A_GETPOLICY A_GETPOLICY
|
|
#define VKI_A_SETPOLICY A_SETPOLICY
|
|
#define VKI_A_GETKMASK A_GETKMASK
|
|
#define VKI_A_SETKMASK A_SETKMASK
|
|
#define VKI_A_GETQCTRL A_GETQCTRL
|
|
#define VKI_A_SETQCTRL A_SETQCTRL
|
|
#define VKI_A_GETCWD A_GETCWD
|
|
#define VKI_A_GETCAR A_GETCAR
|
|
#define VKI_A_GETSTAT A_GETSTAT
|
|
#define VKI_A_SETSTAT A_SETSTAT
|
|
#define VKI_A_SETUMASK A_SETUMASK
|
|
#define VKI_A_SETSMASK A_SETSMASK
|
|
#define VKI_A_GETCOND A_GETCOND
|
|
#define VKI_A_SETCOND A_SETCOND
|
|
#define VKI_A_GETCLASS A_GETCLASS
|
|
#define VKI_A_SETCLASS A_SETCLASS
|
|
#define VKI_A_GETPINFO A_GETPINFO
|
|
#define VKI_A_SETPMASK A_SETPMASK
|
|
#define VKI_A_SETFSIZE A_SETFSIZE
|
|
#define VKI_A_GETFSIZE A_GETFSIZE
|
|
#define VKI_A_GETPINFO_ADDR A_GETPINFO_ADDR
|
|
#define VKI_A_GETKAUDIT A_GETKAUDIT
|
|
#define VKI_A_SETKAUDIT A_SETKAUDIT
|
|
#if DARWIN_VERS >= DARWIN_10_6
|
|
#define VKI_A_SENDTRIGGER A_SENDTRIGGER
|
|
#define VKI_A_GETSINFO_ADDR A_GETSINFO_ADDR
|
|
#endif
|
|
|
|
|
|
#include <sys/aio.h>
|
|
|
|
#define vki_aiocb aiocb
|
|
|
|
|
|
#include <netinet/tcp.h>
|
|
|
|
#define VKI_TCP_NODELAY TCP_NODELAY
|
|
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#define VKI_IPPROTO_TCP IPPROTO_TCP
|
|
|
|
|
|
// XXX: for some reason when I #include <sys/kernel_types.h> I get a syntax
|
|
// error. Hmm. So just define things ourselves.
|
|
//#include <sys/kernel_types.h>
|
|
|
|
//#define vki_errno_t
|
|
typedef int vki_errno_t;
|
|
|
|
|
|
/* necp stuff. This doesn't appear to exist in any user space include
|
|
file. */
|
|
#if DARWIN_VERS == DARWIN_10_10
|
|
struct vki_necp_aggregate_result {
|
|
vki_u_int32_t field1;
|
|
unsigned int field2;
|
|
vki_u_int32_t field3;
|
|
vki_u_int32_t field4;
|
|
vki_uuid_t field5;
|
|
u_int32_t field6;
|
|
u_int32_t field7;
|
|
};
|
|
#endif /* DARWIN_VERS == DARWIN_10_10 */
|
|
|
|
|
|
#endif
|