]> git.saurik.com Git - apple/security.git/blobdiff - Security/libsecurity_utilities/lib/dyld_cache_format.h
Security-57031.1.35.tar.gz
[apple/security.git] / Security / libsecurity_utilities / lib / dyld_cache_format.h
diff --git a/Security/libsecurity_utilities/lib/dyld_cache_format.h b/Security/libsecurity_utilities/lib/dyld_cache_format.h
new file mode 100644 (file)
index 0000000..0456197
--- /dev/null
@@ -0,0 +1,69 @@
+/* -*- mode: C++; c-basic-offset: 4; tab-width: 4 -*- 
+ *
+ * Copyright (c) 2006-2009,2011 Apple Inc. All Rights Reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#ifndef __DYLD_CACHE_FORMAT__
+#define __DYLD_CACHE_FORMAT__
+
+#include <sys/types.h>
+#include <stdint.h>
+#include <mach/shared_region.h>
+
+
+ struct dyld_cache_header
+{
+       char            magic[16];                              // e.g. "dyld_v0     ppc"
+       uint32_t        mappingOffset;                  // file offset to first dyld_cache_mapping_info
+       uint32_t        mappingCount;                   // number of dyld_cache_mapping_info entries
+       uint32_t        imagesOffset;                   // file offset to first dyld_cache_image_info
+       uint32_t        imagesCount;                    // number of dyld_cache_image_info entries
+       uint64_t        dyldBaseAddress;                // base address of dyld when cache was built
+       uint64_t        codeSignatureOffset;    // file offset in of code signature blob
+       uint64_t        codeSignatureSize;              // size of code signature blob (zero means to end of file)
+};
+
+struct dyld_cache_mapping_info {
+       uint64_t        address;
+       uint64_t        size;
+       uint64_t        fileOffset;
+       uint32_t        maxProt;
+       uint32_t        initProt;
+};
+
+struct dyld_cache_image_info
+{
+       uint64_t        address;
+       uint64_t        modTime;
+       uint64_t        inode;
+       uint32_t        pathFileOffset;
+       uint32_t        pad;
+};
+
+
+#define DYLD_SHARED_CACHE_DIR                  "/var/db/dyld/"
+#define DYLD_SHARED_CACHE_BASE_NAME            "dyld_shared_cache_"
+
+
+
+#endif // __DYLD_CACHE_FORMAT__
+
+