1 /* -*- mode: C++; c-basic-offset: 4; tab-width: 4 -*-
3 * Copyright (c) 2004-2013 Apple Inc. All rights reserved.
5 * @APPLE_LICENSE_HEADER_START@
7 * This file contains Original Code and/or Modifications of Original Code
8 * as defined in and that are subject to the Apple Public Source License
9 * Version 2.0 (the 'License'). You may not use this file except in
10 * compliance with the License. Please obtain a copy of the License at
11 * http://www.opensource.apple.com/apsl/ and read it before using this
14 * The Original Code and all software distributed under the License are
15 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
19 * Please see the License for the specific language governing rights and
20 * limitations under the License.
22 * @APPLE_LICENSE_HEADER_END@
26 #ifndef __DYLD_SYSCALL_HELPERS__
27 #define __DYLD_SYSCALL_HELPERS__
36 // This file contains the table of function pointers the host dyld supplies
37 // to the iOS simulator dyld.
42 int (*open
)(const char* path
, int oflag
, int extra
);
44 ssize_t (*pread
)(int fd
, void* buf
, size_t nbyte
, off_t offset
);
45 ssize_t (*write
)(int fd
, const void* buf
, size_t nbyte
);
46 void* (*mmap
)(void* addr
, size_t len
, int prot
, int flags
, int fd
, off_t offset
);
47 int (*munmap
)(void* addr
, size_t len
);
48 int (*madvise
)(void* addr
, size_t len
, int advice
);
49 int (*stat
)(const char* path
, struct stat
* buf
);
50 int (*fcntl
)(int fildes
, int cmd
, void* result
);
51 int (*ioctl
)(int fildes
, unsigned long request
, void* result
);
52 int (*issetugid
)(void);
53 char* (*getcwd
)(char* buf
, size_t size
);
54 char* (*realpath
)(const char* file_name
, char* resolved_name
);
55 kern_return_t (*vm_allocate
)(vm_map_t target_task
, vm_address_t
*address
, vm_size_t size
, int flags
);
56 kern_return_t (*vm_deallocate
)(vm_map_t target_task
, vm_address_t address
, vm_size_t size
);
57 kern_return_t (*vm_protect
)(vm_map_t target_task
, vm_address_t address
, vm_size_t size
, boolean_t max
, vm_prot_t prot
);
58 void (*vlog
)(const char* format
, va_list list
);
59 void (*vwarn
)(const char* format
, va_list list
);
60 int (*pthread_mutex_lock
)(pthread_mutex_t
* m
);
61 int (*pthread_mutex_unlock
)(pthread_mutex_t
* m
);
62 mach_port_t (*mach_thread_self
)(void);
63 kern_return_t (*mach_port_deallocate
)(ipc_space_t task
, mach_port_name_t name
);
64 mach_port_name_t(*task_self_trap
)(void);
65 kern_return_t (*mach_timebase_info
)(mach_timebase_info_t info
);
66 bool (*OSAtomicCompareAndSwapPtrBarrier
)(void* old
, void* nw
, void * volatile *value
);
67 void (*OSMemoryBarrier
)(void);
68 void* (*getProcessInfo
)(void); // returns dyld_all_image_infos*;
69 int* (*errnoAddress
)();
70 uint64_t (*mach_absolute_time
)();
72 kern_return_t (*thread_switch
)(mach_port_name_t
, int, mach_msg_timeout_t
);
74 DIR* (*opendir
)(const char* path
);
75 int (*readdir_r
)(DIR* dirp
, struct dirent
* entry
, struct dirent
**result
);
76 int (*closedir
)(DIR* dirp
);
79 extern const struct SyscallHelpers
* gSyscallHelpers
;