]> git.saurik.com Git - apple/dyld.git/blobdiff - src/dyldLibSystemInterface.h
dyld-519.2.1.tar.gz
[apple/dyld.git] / src / dyldLibSystemInterface.h
index c110616e86be1671190945052b3e8ba4fd50db51..f39a275d3b453d14659662f43e834d718cee8c64 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- mode: C++; c-basic-offset: 4; tab-width: 4 -*-
  *
- * Copyright (c) 2004-2005 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2004-2009 Apple Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
 
 #include <stdint.h>
 
+struct __cxa_range_t { const void* addr; size_t length; };
 
+#if __cplusplus
 namespace dyld {
+#endif
        //
        // This file contains the synchronization utilities used by dyld to be thread safe.
        // This struct is implemented in in libSystem (where pthreads is available)
@@ -40,7 +43,7 @@ namespace dyld {
                uintptr_t       version;
                void            (*acquireGlobalDyldLock)();
                void            (*releaseGlobalDyldLock)();
-               char*           (*getThreadBufferFor_dlerror)(uint32_t sizeRequired);
+               char*           (*getThreadBufferFor_dlerror)(size_t sizeRequired);
                // addded in version 2
                void*           (*malloc)(size_t);
                void            (*free)(void*);
@@ -51,9 +54,30 @@ namespace dyld {
                // addded in version 4
                void            (*acquireDyldInitializerLock)();
                void            (*releaseDyldInitializerLock)();
+               // added in version 5
+               int                     (*pthread_key_create)(pthread_key_t*, void (*destructor)(void*));
+               int                     (*pthread_setspecific)(pthread_key_t, const void*);
+               // added in version 6
+               size_t          (*malloc_size)(const void *ptr);
+               // added in version 7
+               void*           (*pthread_getspecific)(pthread_key_t);
+               // added in version 8
+               void            (*cxa_finalize)(const void*);
+               // added in version 9
+               void*           startGlueToCallExit;
+               // added in version 10
+               bool            (*hasPerThreadBufferFor_dlerror)();
+               // added in version 11
+               bool            (*isLaunchdOwned)();
+               // added in version 12
+               kern_return_t (*vm_alloc)(vm_map_t task, vm_address_t* addr, vm_size_t size, int flags);
+               void*           (*mmap)(void* addr, size_t len, int prot, int flags, int fd, off_t offset);
+               // added in version 13
+               void            (*cxa_finalize_ranges)(const struct __cxa_range_t ranges[], int count);
        };
-};
-
+#if __cplusplus
+}
+#endif