]> git.saurik.com Git - apple/dyld.git/blame - launch-cache/dyld_cache_format.h
dyld-195.6.tar.gz
[apple/dyld.git] / launch-cache / dyld_cache_format.h
CommitLineData
bac542e6 1/* -*- mode: C++; c-basic-offset: 4; tab-width: 4 -*-
0959b6d4 2 *
412ebb8e 3 * Copyright (c) 2006-2009 Apple Inc. All rights reserved.
0959b6d4
A
4 *
5 * @APPLE_LICENSE_HEADER_START@
6 *
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
12 * file.
13 *
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.
21 *
22 * @APPLE_LICENSE_HEADER_END@
23 */
bac542e6
A
24#ifndef __DYLD_CACHE_FORMAT__
25#define __DYLD_CACHE_FORMAT__
0959b6d4 26
bac542e6 27#include <sys/types.h>
0959b6d4 28#include <stdint.h>
39a8cd10 29#include <mach/shared_region.h>
0959b6d4
A
30
31
412ebb8e 32struct dyld_cache_header
bac542e6
A
33{
34 char magic[16]; // e.g. "dyld_v0 ppc"
412ebb8e
A
35 uint32_t mappingOffset; // file offset to first dyld_cache_mapping_info
36 uint32_t mappingCount; // number of dyld_cache_mapping_info entries
bac542e6
A
37 uint32_t imagesOffset; // file offset to first dyld_cache_image_info
38 uint32_t imagesCount; // number of dyld_cache_image_info entries
39 uint64_t dyldBaseAddress; // base address of dyld when cache was built
412ebb8e
A
40 uint64_t codeSignatureOffset; // file offset of code signature blob
41 uint64_t codeSignatureSize; // size of code signature blob (zero means to end of file)
42 uint64_t slideInfoOffset; // file offset of kernel slid info
43 uint64_t slideInfoSize; // size of kernel slid info
44};
45
46struct dyld_cache_mapping_info {
47 uint64_t address;
48 uint64_t size;
49 uint64_t fileOffset;
50 uint32_t maxProt;
51 uint32_t initProt;
bac542e6
A
52};
53
54struct dyld_cache_image_info
55{
56 uint64_t address;
57 uint64_t modTime;
58 uint64_t inode;
59 uint32_t pathFileOffset;
60 uint32_t pad;
0959b6d4
A
61};
62
412ebb8e
A
63struct dyld_cache_slide_info
64{
65 uint32_t version; // currently 1
66 uint32_t toc_offset;
67 uint32_t toc_count;
68 uint32_t entries_offset;
69 uint32_t entries_count;
70 uint32_t entries_size; // currently 128
71 // uint16_t toc[toc_count];
72 // entrybitmap entries[entries_count];
73};
74
75
76
77#define MACOSX_DYLD_SHARED_CACHE_DIR "/var/db/dyld/"
78#define IPHONE_DYLD_SHARED_CACHE_DIR "/System/Library/Caches/com.apple.dyld/"
bac542e6 79#define DYLD_SHARED_CACHE_BASE_NAME "dyld_shared_cache_"
0959b6d4
A
80
81
82
bac542e6 83#endif // __DYLD_CACHE_FORMAT__
0959b6d4 84
0959b6d4 85