Root/
Source at commit 1548 created 12 years 10 months ago. By blackosx, Added detection for FAT format created by Lion's Disk Utility. Enhanced install log. | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.␊ |
3 | *␊ |
4 | * @APPLE_LICENSE_HEADER_START@␊ |
5 | * ␊ |
6 | * This file contains Original Code and/or Modifications of Original Code␊ |
7 | * as defined in and that are subject to the Apple Public Source License␊ |
8 | * Version 2.0 (the 'License'). You may not use this file except in␊ |
9 | * compliance with the License. Please obtain a copy of the License at␊ |
10 | * http://www.opensource.apple.com/apsl/ and read it before using this␊ |
11 | * file.␊ |
12 | * ␊ |
13 | * The Original Code and all software distributed under the License are␊ |
14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.␊ |
18 | * Please see the License for the specific language governing rights and␊ |
19 | * limitations under the License.␊ |
20 | * ␊ |
21 | * @APPLE_LICENSE_HEADER_END@␊ |
22 | */␊ |
23 | #ifndef _MACH_O_SWAP_H_␊ |
24 | #define _MACH_O_SWAP_H_␊ |
25 | ␊ |
26 | #include <stdint.h>␊ |
27 | #include <architecture/byte_order.h>␊ |
28 | #include <mach-o/fat.h>␊ |
29 | #include <mach-o/loader.h>␊ |
30 | #include <mach-o/nlist.h>␊ |
31 | #include <mach-o/reloc.h>␊ |
32 | #include <mach-o/ranlib.h>␊ |
33 | ␊ |
34 | #if __cplusplus␊ |
35 | extern "C" {␊ |
36 | #endif /* __cplusplus */␊ |
37 | ␊ |
38 | extern void swap_fat_header(␊ |
39 | struct fat_header *fat_header,␊ |
40 | enum NXByteOrder target_byte_order);␊ |
41 | ␊ |
42 | extern void swap_fat_arch(␊ |
43 | struct fat_arch *fat_archs,␊ |
44 | uint32_t nfat_arch,␊ |
45 | enum NXByteOrder target_byte_order);␊ |
46 | ␊ |
47 | extern void swap_mach_header(␊ |
48 | struct mach_header *mh,␊ |
49 | enum NXByteOrder target_byte_order);␊ |
50 | ␊ |
51 | extern void swap_mach_header_64(␊ |
52 | struct mach_header_64 *mh,␊ |
53 | enum NXByteOrder target_byte_order);␊ |
54 | ␊ |
55 | extern void swap_load_command(␊ |
56 | struct load_command *lc,␊ |
57 | enum NXByteOrder target_byte_order);␊ |
58 | ␊ |
59 | extern void swap_segment_command(␊ |
60 | struct segment_command *sg,␊ |
61 | enum NXByteOrder target_byte_order);␊ |
62 | ␊ |
63 | extern void swap_segment_command_64(␊ |
64 | struct segment_command_64 *sg,␊ |
65 | enum NXByteOrder target_byte_order);␊ |
66 | ␊ |
67 | extern void swap_section(␊ |
68 | struct section *s,␊ |
69 | uint32_t nsects,␊ |
70 | enum NXByteOrder target_byte_order);␊ |
71 | ␊ |
72 | extern void swap_section_64(␊ |
73 | struct section_64 *s,␊ |
74 | uint32_t nsects,␊ |
75 | enum NXByteOrder target_byte_order);␊ |
76 | ␊ |
77 | extern void swap_symtab_command(␊ |
78 | struct symtab_command *st,␊ |
79 | enum NXByteOrder target_byte_order);␊ |
80 | ␊ |
81 | extern void swap_dysymtab_command(␊ |
82 | struct dysymtab_command *dyst,␊ |
83 | enum NXByteOrder target_byte_sex);␊ |
84 | ␊ |
85 | extern void swap_symseg_command(␊ |
86 | struct symseg_command *ss,␊ |
87 | enum NXByteOrder target_byte_order);␊ |
88 | ␊ |
89 | extern void swap_fvmlib_command(␊ |
90 | struct fvmlib_command *fl,␊ |
91 | enum NXByteOrder target_byte_order);␊ |
92 | ␊ |
93 | extern void swap_dylib_command(␊ |
94 | struct dylib_command *dl,␊ |
95 | enum NXByteOrder target_byte_sex);␊ |
96 | ␊ |
97 | extern void swap_sub_framework_command(␊ |
98 | struct sub_framework_command *sub,␊ |
99 | enum NXByteOrder target_byte_sex);␊ |
100 | ␊ |
101 | extern void swap_sub_umbrella_command(␊ |
102 | struct sub_umbrella_command *usub,␊ |
103 | enum NXByteOrder target_byte_sex);␊ |
104 | ␊ |
105 | extern void swap_sub_library_command(␊ |
106 | struct sub_library_command *lsub,␊ |
107 | enum NXByteOrder target_byte_sex);␊ |
108 | ␊ |
109 | extern void swap_sub_client_command(␊ |
110 | struct sub_client_command *csub,␊ |
111 | enum NXByteOrder target_byte_sex);␊ |
112 | ␊ |
113 | extern void swap_prebound_dylib_command(␊ |
114 | struct prebound_dylib_command *pbdylib,␊ |
115 | enum NXByteOrder target_byte_sex);␊ |
116 | ␊ |
117 | extern void swap_dylinker_command(␊ |
118 | struct dylinker_command *dyld,␊ |
119 | enum NXByteOrder target_byte_sex);␊ |
120 | ␊ |
121 | extern void swap_fvmfile_command(␊ |
122 | struct fvmfile_command *ff,␊ |
123 | enum NXByteOrder target_byte_order);␊ |
124 | ␊ |
125 | extern void swap_thread_command(␊ |
126 | struct thread_command *ut,␊ |
127 | enum NXByteOrder target_byte_order);␊ |
128 | ␊ |
129 | extern void swap_ident_command(␊ |
130 | struct ident_command *ident,␊ |
131 | enum NXByteOrder target_byte_order);␊ |
132 | ␊ |
133 | extern void swap_routines_command(␊ |
134 | struct routines_command *r_cmd,␊ |
135 | enum NXByteOrder target_byte_sex);␊ |
136 | ␊ |
137 | extern void swap_routines_command_64(␊ |
138 | struct routines_command_64 *r_cmd,␊ |
139 | enum NXByteOrder target_byte_sex);␊ |
140 | ␊ |
141 | extern void swap_twolevel_hints_command(␊ |
142 | struct twolevel_hints_command *hints_cmd,␊ |
143 | enum NXByteOrder target_byte_sex);␊ |
144 | ␊ |
145 | extern void swap_prebind_cksum_command(␊ |
146 | struct prebind_cksum_command *cksum_cmd,␊ |
147 | enum NXByteOrder target_byte_sex);␊ |
148 | ␊ |
149 | extern void swap_uuid_command(␊ |
150 | struct uuid_command *uuid_cmd,␊ |
151 | enum NXByteOrder target_byte_sex);␊ |
152 | ␊ |
153 | extern void swap_twolevel_hint(␊ |
154 | struct twolevel_hint *hints,␊ |
155 | uint32_t nhints,␊ |
156 | enum NXByteOrder target_byte_sex);␊ |
157 | ␊ |
158 | extern void swap_nlist(␊ |
159 | struct nlist *symbols,␊ |
160 | uint32_t nsymbols,␊ |
161 | enum NXByteOrder target_byte_order);␊ |
162 | ␊ |
163 | extern void swap_nlist_64(␊ |
164 | struct nlist_64 *symbols,␊ |
165 | uint32_t nsymbols,␊ |
166 | enum NXByteOrder target_byte_order);␊ |
167 | ␊ |
168 | extern void swap_ranlib(␊ |
169 | struct ranlib *ranlibs,␊ |
170 | uint32_t nranlibs,␊ |
171 | enum NXByteOrder target_byte_order);␊ |
172 | ␊ |
173 | extern void swap_relocation_info(␊ |
174 | struct relocation_info *relocs,␊ |
175 | uint32_t nrelocs,␊ |
176 | enum NXByteOrder target_byte_order);␊ |
177 | ␊ |
178 | extern void swap_indirect_symbols(␊ |
179 | uint32_t *indirect_symbols,␊ |
180 | uint32_t nindirect_symbols,␊ |
181 | enum NXByteOrder target_byte_sex);␊ |
182 | ␊ |
183 | extern void swap_dylib_reference(␊ |
184 | struct dylib_reference *refs, ␊ |
185 | uint32_t nrefs,␊ |
186 | enum NXByteOrder target_byte_sex);␊ |
187 | ␊ |
188 | extern void swap_dylib_module( ␊ |
189 | struct dylib_module *mods,␊ |
190 | uint32_t nmods, ␊ |
191 | enum NXByteOrder target_byte_sex);␊ |
192 | ␊ |
193 | extern void swap_dylib_module_64( ␊ |
194 | struct dylib_module_64 *mods,␊ |
195 | uint32_t nmods, ␊ |
196 | enum NXByteOrder target_byte_sex);␊ |
197 | ␊ |
198 | extern void swap_dylib_table_of_contents(␊ |
199 | struct dylib_table_of_contents *tocs,␊ |
200 | uint32_t ntocs,␊ |
201 | enum NXByteOrder target_byte_sex);␊ |
202 | ␊ |
203 | #if __cplusplus␊ |
204 | }␊ |
205 | #endif /* __cplusplus */␊ |
206 | ␊ |
207 | #endif /* _MACH_O_SWAP_H_ */␊ |
208 |