Rizin
unix-like reverse engineering framework and cli tools
mach0_defines.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2003-2010 University of Illinois at Urbana-Champaign.
2 // SPDX-License-Identifier: NCSA
3 
4 //===-- llvm/Support/MachO.h - The MachO file format ------------*- C -*-===//
5 //
6 // The LLVM Compiler Infrastructure
7 //
8 // University of Illinois/NCSA
9 // Open Source License
10 //
11 // Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign.
12 // All rights reserved.
13 //
14 // Developed by:
15 //
16 // LLVM Team
17 //
18 // University of Illinois at Urbana-Champaign
19 //
20 // http://llvm.org
21 //
22 // Permission is hereby granted, free of charge, to any person obtaining a copy
23 // of this software and associated documentation files (the "Software"), to
24 // deal with the Software without restriction, including without limitation the
25 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
26 // sell copies of the Software, and to permit persons to whom the Software is
27 // furnished to do so, subject to the following conditions:
28 //
29 // Redistributions of source code must retain the above copyright notice, this
30 // list of conditions and the following disclaimers. Redistributions in binary
31 // form must reproduce the above copyright notice, this list of conditions and
32 // the following disclaimers in the documentation and/or other materials
33 // provided with the distribution. Neither the names of LLVM Team, Universitys
34 // of Illinois at Urbana-Champaign, nor the names of its contributors may be
35 // used to endorse or promote products derived from this Software without
36 // specific prior written permission.
37 //
38 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
39 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
40 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
41 // CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
42 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
44 // WITH THE SOFTWARE.
45 //
46 //===----------------------------------------------------------------------===//
47 //
48 // This file defines manifest constants for the MachO object file format.
49 //
50 //===----------------------------------------------------------------------===//
51 
52 #ifndef LLVM_SUPPORT_MACHO_H
53 #define LLVM_SUPPORT_MACHO_H
54 
55 #include <stdint.h>
56 
57 // Enums from <mach-o/loader.h>
58 enum {
59  // Constants for the "magic" field in llvm::MachO::mach_header and
60  // llvm::MachO::mach_header_64
61  MH_MAGIC = 0xFEEDFACEu,
62  MH_CIGAM = 0xCEFAEDFEu,
63  MH_MAGIC_64 = 0xFEEDFACFu,
64  MH_CIGAM_64 = 0xCFFAEDFEu,
65  FAT_MAGIC = 0xCAFEBABEu,
66  FAT_CIGAM = 0xBEBAFECAu
67 };
68 
70  // Constants for the "filetype" field in llvm::MachO::mach_header and
71  // llvm::MachO::mach_header_64
72  MH_OBJECT = 0x1u,
73  MH_EXECUTE = 0x2u,
74  MH_FVMLIB = 0x3u,
75  MH_CORE = 0x4u,
76  MH_PRELOAD = 0x5u,
77  MH_DYLIB = 0x6u,
78  MH_DYLINKER = 0x7u,
79  MH_BUNDLE = 0x8u,
80  MH_DYLIB_STUB = 0x9u,
81  MH_DSYM = 0xAu,
83  MH_FILESET = 0xCu
84 };
85 
86 enum {
87  // Constant bits for the "flags" field in llvm::MachO::mach_header and
88  // llvm::MachO::mach_header_64
89  MH_NOUNDEFS = 0x00000001u,
90  MH_INCRLINK = 0x00000002u,
91  MH_DYLDLINK = 0x00000004u,
92  MH_BINDATLOAD = 0x00000008u,
93  MH_PREBOUND = 0x00000010u,
94  MH_SPLIT_SEGS = 0x00000020u,
95  MH_LAZY_INIT = 0x00000040u,
96  MH_TWOLEVEL = 0x00000080u,
97  MH_FORCE_FLAT = 0x00000100u,
98  MH_NOMULTIDEFS = 0x00000200u,
99  MH_NOFIXPREBINDING = 0x00000400u,
100  MH_PREBINDABLE = 0x00000800u,
101  MH_ALLMODSBOUND = 0x00001000u,
103  MH_CANONICAL = 0x00004000u,
104  MH_WEAK_DEFINES = 0x00008000u,
105  MH_BINDS_TO_WEAK = 0x00010000u,
107  MH_ROOT_SAFE = 0x00040000u,
108  MH_SETUID_SAFE = 0x00080000u,
109  MH_NO_REEXPORTED_DYLIBS = 0x00100000u,
110  MH_PIE = 0x00200000u,
112  MH_HAS_TLV_DESCRIPTORS = 0x00800000u,
113  MH_NO_HEAP_EXECUTION = 0x01000000u,
114  MH_APP_EXTENSION_SAFE = 0x02000000u
115 };
116 
117 enum {
118  // Flags for the "cmd" field in llvm::MachO::load_command
119  LC_REQ_DYLD = 0x80000000u
120 };
121 
123  // Constants for the "cmd" field in llvm::MachO::load_command
124  LC_SEGMENT = 0x00000001u,
125  LC_SYMTAB = 0x00000002u,
126  LC_SYMSEG = 0x00000003u,
127  LC_THREAD = 0x00000004u,
128  LC_UNIXTHREAD = 0x00000005u,
129  LC_LOADFVMLIB = 0x00000006u,
130  LC_IDFVMLIB = 0x00000007u,
131  LC_IDENT = 0x00000008u,
132  LC_FVMFILE = 0x00000009u,
133  LC_PREPAGE = 0x0000000Au,
134  LC_DYSYMTAB = 0x0000000Bu,
135  LC_LOAD_DYLIB = 0x0000000Cu,
136  LC_ID_DYLIB = 0x0000000Du,
137  LC_LOAD_DYLINKER = 0x0000000Eu,
138  LC_ID_DYLINKER = 0x0000000Fu,
139  LC_PREBOUND_DYLIB = 0x00000010u,
140  LC_ROUTINES = 0x00000011u,
141  LC_SUB_FRAMEWORK = 0x00000012u,
142  LC_SUB_UMBRELLA = 0x00000013u,
143  LC_SUB_CLIENT = 0x00000014u,
144  LC_SUB_LIBRARY = 0x00000015u,
145  LC_TWOLEVEL_HINTS = 0x00000016u,
146  LC_PREBIND_CKSUM = 0x00000017u,
147  LC_LOAD_WEAK_DYLIB = 0x80000018u,
148  LC_SEGMENT_64 = 0x00000019u,
149  LC_ROUTINES_64 = 0x0000001Au,
150  LC_UUID = 0x0000001Bu,
151  LC_RPATH = 0x8000001Cu,
152  LC_CODE_SIGNATURE = 0x0000001Du,
153  LC_SEGMENT_SPLIT_INFO = 0x0000001Eu,
154  LC_REEXPORT_DYLIB = 0x8000001Fu,
155  LC_LAZY_LOAD_DYLIB = 0x00000020u,
156  LC_ENCRYPTION_INFO = 0x00000021u,
157  LC_DYLD_INFO = 0x00000022u,
158  LC_DYLD_INFO_ONLY = 0x80000022u,
159  LC_LOAD_UPWARD_DYLIB = 0x80000023u,
160  LC_VERSION_MIN_MACOSX = 0x00000024u,
161  LC_VERSION_MIN_IPHONEOS = 0x00000025u,
162  LC_FUNCTION_STARTS = 0x00000026u,
163  LC_DYLD_ENVIRONMENT = 0x00000027u,
164  LC_MAIN = 0x80000028u,
165  LC_DATA_IN_CODE = 0x00000029u,
166  LC_SOURCE_VERSION = 0x0000002Au,
167  LC_DYLIB_CODE_SIGN_DRS = 0x0000002Bu,
168  LC_ENCRYPTION_INFO_64 = 0x0000002Cu,
169  LC_LINKER_OPTION = 0x0000002Du,
171  LC_VERSION_MIN_TVOS = 0x0000002Fu,
172  LC_VERSION_MIN_WATCHOS = 0x00000030u,
173  LC_NOTE = 0x00000031u,
174  LC_BUILD_VERSION = 0x00000032u,
175  LC_DYLD_EXPORTS_TRIE = 0x80000033u,
176  LC_DYLD_CHAINED_FIXUPS = 0x80000034u,
177  LC_KEXT = 0x80000035u, /* TODO: get the right name */
178  /*
179 Load command 9
180  cmd LC_BUILD_VERSION
181  cmdsize 32
182  platform macos
183  sdk 10.14
184  minos 10.14
185  ntools 1
186  tool ld
187  version 409.11
188 */
189 };
190 
191 enum {
192  // Constant bits for the "flags" field in llvm::MachO::segment_command
193  SG_HIGHVM = 0x1u,
194  SG_FVMLIB = 0x2u,
195  SG_NORELOC = 0x4u,
197 
198  // Constant masks for the "flags" field in llvm::MachO::section and
199  // llvm::MachO::section_64
200  SECTION_TYPE = 0x000000ffu, // SECTION_TYPE
201  SECTION_ATTRIBUTES = 0xffffff00u, // SECTION_ATTRIBUTES
202  SECTION_ATTRIBUTES_USR = 0xff000000u, // SECTION_ATTRIBUTES_USR
203  SECTION_ATTRIBUTES_SYS = 0x00ffff00u // SECTION_ATTRIBUTES_SYS
204 };
205 
209  // Constant masks for the "flags[7:0]" field in llvm::MachO::section and
210  // llvm::MachO::section_64 (mask "flags" with SECTION_TYPE)
211 
213  S_REGULAR = 0x00u,
215  S_ZEROFILL = 0x01u,
230  S_SYMBOL_STUBS = 0x08u,
238  S_COALESCED = 0x0bu,
241  S_GB_ZEROFILL = 0x0cu,
244  S_INTERPOSING = 0x0du,
248  S_DTRACE_DOF = 0x0fu,
265 
267 };
268 
269 enum {
270  // Constant masks for the "flags[31:24]" field in llvm::MachO::section and
271  // llvm::MachO::section_64 (mask "flags" with SECTION_ATTRIBUTES_USR)
272 
278  S_ATTR_NO_TOC = 0x40000000u,
283  S_ATTR_NO_DEAD_STRIP = 0x10000000u,
285  S_ATTR_LIVE_SUPPORT = 0x08000000u,
290  S_ATTR_DEBUG = 0x02000000u,
291 
292  // Constant masks for the "flags[23:8]" field in llvm::MachO::section and
293  // llvm::MachO::section_64 (mask "flags" with SECTION_ATTRIBUTES_SYS)
294 
298  S_ATTR_EXT_RELOC = 0x00000200u,
300  S_ATTR_LOC_RELOC = 0x00000100u,
301 
302  // Constant masks for the value of an indirect symbol in an indirect
303  // symbol table
304  INDIRECT_SYMBOL_LOCAL = 0x80000000u,
305  INDIRECT_SYMBOL_ABS = 0x40000000u
306 };
307 
309  // Constants for the "kind" field in a data_in_code_entry structure
315 };
316 
321 };
322 
323 enum {
325  REBASE_IMMEDIATE_MASK = 0x0Fu
326 };
327 
338 };
339 
340 enum BindType {
344 };
345 
350 };
351 
352 enum {
355 
357  BIND_IMMEDIATE_MASK = 0x0Fu
358 };
359 
374  BIND_OPCODE_THREADED = 0xD0u
375 };
376 
380 };
381 
382 enum {
387 };
388 
393 };
394 
395 enum {
396  // Constant masks for the "n_type" field in llvm::MachO::nlist and
397  // llvm::MachO::nlist_64
398  N_STAB = 0xe0,
399  N_PEXT = 0x10,
400  N_TYPE = 0x0e,
401  N_EXT = 0x01
402 };
403 
404 enum NListType {
405  // Constants for the "n_type & N_TYPE" llvm::MachO::nlist and
406  // llvm::MachO::nlist_64
407  N_UNDF = 0x0u,
408  N_ABS = 0x2u,
409  N_SECT = 0xeu,
410  N_PBUD = 0xcu,
411  N_INDR = 0xau
412 };
413 
415  // Constants for the "n_sect" field in llvm::MachO::nlist and
416  // llvm::MachO::nlist_64
417  NO_SECT = 0u,
418  MAX_SECT = 0xffu
419 };
420 
421 enum {
422  // Constant masks for the "n_desc" field in llvm::MachO::nlist and
423  // llvm::MachO::nlist_64
424  // The low 3 bits are the for the REFERENCE_TYPE.
432  // Flag bits (some overlap with the library ordinal bits).
433  N_ARM_THUMB_DEF = 0x0008u,
435  N_NO_DEAD_STRIP = 0x0020u,
436  N_WEAK_REF = 0x0040u,
437  N_WEAK_DEF = 0x0080u,
438  N_SYMBOL_RESOLVER = 0x0100u,
439  N_ALT_ENTRY = 0x0200u,
440  // For undefined symbols coming from libraries, see GET_LIBRARY_ORDINAL()
441  // as these are in the top 8 bits.
445  EXECUTABLE_ORDINAL = 0xff
446 };
447 
448 enum StabType {
449  // Constant values for the "n_type" field in llvm::MachO::nlist and
450  // llvm::MachO::nlist_64 when "(n_type & N_STAB) != 0"
451  N_GSYM = 0x20u,
452  N_FNAME = 0x22u,
453  N_FUN = 0x24u,
454  N_STSYM = 0x26u,
455  N_LCSYM = 0x28u,
456  N_BNSYM = 0x2Eu,
457  N_PC = 0x30u,
458  N_AST = 0x32u,
459  N_OPT = 0x3Cu,
460  N_RSYM = 0x40u,
461  N_SLINE = 0x44u,
462  N_ENSYM = 0x4Eu,
463  N_SSYM = 0x60u,
464  N_SO = 0x64u,
465  N_OSO = 0x66u,
466  N_LSYM = 0x80u,
467  N_BINCL = 0x82u,
468  N_SOL = 0x84u,
469  N_PARAMS = 0x86u,
470  N_VERSION = 0x88u,
471  N_OLEVEL = 0x8Au,
472  N_PSYM = 0xA0u,
473  N_EINCL = 0xA2u,
474  N_ENTRY = 0xA4u,
475  N_LBRAC = 0xC0u,
476  N_EXCL = 0xC2u,
477  N_RBRAC = 0xE0u,
478  N_BCOMM = 0xE2u,
479  N_ECOMM = 0xE4u,
480  N_ECOML = 0xE8u,
481  N_LENG = 0xFEu
482 };
483 
484 enum {
485  // Constant values for the r_symbolnum field in an
486  // llvm::MachO::relocation_info structure when r_extern is 0.
487  RZ_ABS = 0,
488 
489  // Constant bits for the r_address field in an
490  // llvm::MachO::relocation_info structure.
491  RZ_SCATTERED = 0x80000000
492 };
493 
495  // Constant values for the r_type field in an
496  // llvm::MachO::relocation_info or llvm::MachO::scattered_relocation_info
497  // structure.
504 
505  // Constant values for the r_type field in a PowerPC architecture
506  // llvm::MachO::relocation_info or llvm::MachO::scattered_relocation_info
507  // structure.
524 
525  // Constant values for the r_type field in an ARM architecture
526  // llvm::MachO::relocation_info or llvm::MachO::scattered_relocation_info
527  // structure.
535  ARM_THUMB_32BIT_BRANCH = 7, // obsolete
538 
539  // Constant values for the r_type field in an ARM64 architecture
540  // llvm::MachO::relocation_info or llvm::MachO::scattered_relocation_info
541  // structure.
542 
543  // For pointers.
545  // Must be followed by an ARM64_RELOC_UNSIGNED
547  // A B/BL instruction with 26-bit displacement.
549  // PC-rel distance to page of target.
551  // Offset within page, scaled by r_length.
553  // PC-rel distance to page of GOT slot.
555  // Offset within page of GOT slot, scaled by r_length.
557  // For pointers to GOT slots.
559  // PC-rel distance to page of TLVP slot.
561  // Offset within page of TLVP slot, scaled by r_length.
563  // Must be followed by ARM64_RELOC_PAGE21 or ARM64_RELOC_PAGEOFF12.
565 
566  // Constant values for the r_type field in an x86_64 architecture
567  // llvm::MachO::relocation_info or llvm::MachO::scattered_relocation_info
568  // structure
578  X86_64_RELOC_TLV = 9
579 };
580 
581 // Values for segment_command.initprot.
582 // From <mach/vm_prot.h>
583 enum {
586  VM_PROT_EXECUTE = 0x4
587 };
588 
589 // Structs from <mach-o/loader.h>
590 
591 struct mach_header {
599 };
600 
610 };
611 
612 struct load_command {
615 };
616 
620  char segname[16];
629 };
630 
634  char segname[16];
643 };
644 
645 struct section {
646  char sectname[16];
647  char segname[16];
657 };
658 
659 struct section_64 {
660  char sectname[16];
661  char segname[16];
672 };
673 
674 struct fvmlib {
678 };
679 
683  struct fvmlib fvmlib;
684 };
685 
686 struct dylib {
691 };
692 
696  struct dylib dylib;
697 };
698 
703 };
704 
709 };
710 
715 };
716 
721 };
722 
729 };
730 
735 };
736 
740 };
741 
753 };
754 
766 };
767 
775 };
776 
798 };
799 
803 };
804 
805 struct dylib_module {
819 };
820 
835 };
836 
839  flags : 8;
840 };
841 
847 };
848 
851  itoc : 24;
852 };
853 
858 };
859 
860 struct uuid_command {
864 };
865 
870 };
871 
877 };
878 
883 };
884 
889 };
890 
897 };
898 
906 };
907 
909  uint32_t cmd; // LC_VERSION_MIN_MACOSX or
910  // LC_VERSION_MIN_IPHONEOS
911  uint32_t cmdsize; // sizeof(struct version_min_command)
912  uint32_t version; // X.Y.Z is encoded in nibbles xxxx.yy.zz
913  uint32_t sdk; // X.Y.Z is encoded in nibbles xxxx.yy.zz
914 };
915 
929 };
930 
935 };
936 
942 };
943 
947 };
948 
954 };
955 
960 };
961 
966 };
967 
972 };
973 
979 };
980 
981 // Structs from <mach-o/fat.h>
982 struct fat_header {
985 };
986 
987 struct fat_arch {
993 };
994 
995 // Structs from <mach-o/reloc.h>
999  r_pcrel : 1,
1002  r_type : 4;
1003 };
1004 
1006 #if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && (BYTE_ORDER == BIG_ENDIAN)
1007  uint32_t r_scattered : 1,
1008  r_pcrel : 1,
1009  r_length : 2,
1010  r_type : 4,
1011  r_address : 24;
1012 #else
1014  r_type : 4,
1016  r_pcrel : 1,
1018 #endif
1020 };
1021 
1022 // Structs NOT from <mach-o/reloc.h>, but that make LLVM's life easier
1025 };
1026 
1027 // Structs from <mach-o/nlist.h>
1028 struct nlist_base {
1033 };
1034 
1035 struct nlist {
1041 };
1042 
1043 struct nlist_64 {
1049 };
1050 
1051 // Get/Set functions from <mach-o/nlist.h>
1052 
1053 static inline uint16_t GET_LIBRARY_ORDINAL(uint16_t n_desc) {
1054  return (((n_desc) >> 8u) & 0xffu);
1055 }
1056 
1057 static inline void SET_LIBRARY_ORDINAL(uint16_t *n_desc, uint8_t ordinal) {
1058  *n_desc = (((*n_desc) & 0x00ff) | (((ordinal)&0xff) << 8));
1059 }
1060 
1061 static inline uint8_t GET_COMM_ALIGN(uint16_t n_desc) {
1062  return (n_desc >> 8u) & 0x0fu;
1063 }
1064 
1065 static inline void SET_COMM_ALIGN(uint16_t *n_desc, uint8_t align) {
1066  *n_desc = ((*n_desc & 0xf0ffu) | ((align & 0x0fu) << 8u));
1067 }
1068 
1069 // Enums from <mach/machine.h>
1070 enum {
1071  // Capability bits used in the definition of cpu_type.
1072  CPU_ARCH_MASK = 0xff000000, // Mask for architecture bits
1073  CPU_ARCH_ABI64 = 0x01000000, // 64 bit ABI
1074  CPU_ARCH_ABI32 = 0x02000000 // Used for ARM64_32 (new Apple Watch)
1075 };
1076 
1077 // Constants for the cputype field.
1078 enum CPUType {
1086  CPU_TYPE_MC98000 = 10, // Old Motorola PowerPC
1096 };
1097 
1098 enum {
1099  // Capability bits used in the definition of cpusubtype.
1100  CPU_SUBTYPE_MASK = 0xff000000, // Mask for architecture bits
1101  CPU_SUBTYPE_LIB64 = 0x80000000, // 64 bit libraries
1102 
1103  // Special CPU subtype constants.
1104  CPU_SUBTYPE_MULTIPLE = ~0u
1105 };
1106 
1107 // Constants for the cpusubtype field.
1130 
1135 };
1136 static inline int CPU_SUBTYPE_INTEL(int Family, int Model) {
1137  return Family | (Model << 4);
1138 }
1139 static inline int CPU_SUBTYPE_INTEL_FAMILY(enum CPUSubTypeX86 ST) {
1140  return ((int)ST) & 0x0f;
1141 }
1142 static inline int CPU_SUBTYPE_INTEL_MODEL(enum CPUSubTypeX86 ST) {
1143  return ((int)ST) >> 4;
1144 }
1145 enum {
1148 };
1149 
1164 };
1165 
1169  CPU_SUBTYPE_ARM64E = 2
1170 };
1171 
1174 };
1175 
1190 
1193 };
1194 
1208  CPU_SUBTYPE_UVAXIII = 12
1209 };
1210 
1220 };
1221 
1227 };
1228 
1233 };
1234 
1239 };
1240 
1244 };
1245 
1268 };
1269 
1273  x86_FP_PREC_64B = 3
1274 };
1275 
1280  x86_FP_CHOP = 3
1281 };
1282 
1284  unsigned short
1285  invalid : 1,
1286  denorm : 1,
1287  zdiv : 1,
1288  ovrfl : 1,
1289  undfl : 1,
1290  precis : 1, : 2,
1291  pc : 2,
1292  rc : 2, : 1, : 3;
1293 };
1294 
1295 struct fp_status_t {
1296  unsigned short
1297  invalid : 1,
1298  denorm : 1,
1299  zdiv : 1,
1300  ovrfl : 1,
1301  undfl : 1,
1302  precis : 1,
1303  stkflt : 1,
1304  errsumm : 1,
1305  c0 : 1,
1306  c1 : 1,
1307  c2 : 1,
1308  tos : 3,
1309  c3 : 1,
1310  busy : 1;
1311 };
1312 
1313 struct mmst_reg_t {
1314  char mmst_reg[10];
1315  char mmst_rsrv[6];
1316 };
1317 
1318 struct xmm_reg_t {
1319  char xmm_reg[16];
1320 };
1321 
1324  struct fp_control_t fpu_fcw;
1325  struct fp_status_t fpu_fsw;
1337  struct mmst_reg_t fpu_stmm0;
1338  struct mmst_reg_t fpu_stmm1;
1339  struct mmst_reg_t fpu_stmm2;
1340  struct mmst_reg_t fpu_stmm3;
1341  struct mmst_reg_t fpu_stmm4;
1342  struct mmst_reg_t fpu_stmm5;
1343  struct mmst_reg_t fpu_stmm6;
1344  struct mmst_reg_t fpu_stmm7;
1345  struct xmm_reg_t fpu_xmm0;
1346  struct xmm_reg_t fpu_xmm1;
1347  struct xmm_reg_t fpu_xmm2;
1348  struct xmm_reg_t fpu_xmm3;
1349  struct xmm_reg_t fpu_xmm4;
1350  struct xmm_reg_t fpu_xmm5;
1351  struct xmm_reg_t fpu_xmm6;
1352  struct xmm_reg_t fpu_xmm7;
1353  struct xmm_reg_t fpu_xmm8;
1354  struct xmm_reg_t fpu_xmm9;
1355  struct xmm_reg_t fpu_xmm10;
1356  struct xmm_reg_t fpu_xmm11;
1357  struct xmm_reg_t fpu_xmm12;
1358  struct xmm_reg_t fpu_xmm13;
1359  struct xmm_reg_t fpu_xmm14;
1360  struct xmm_reg_t fpu_xmm15;
1361  char fpu_rsrv4[6 * 16];
1363 };
1364 
1370 };
1371 
1375 };
1376 
1378  struct x86_state_hdr_t tsh;
1379  union {
1380  struct x86_thread_state64_t ts64;
1381  } uts;
1382 };
1383 
1385  struct x86_state_hdr_t fsh;
1386  union {
1387  struct x86_float_state64_t fs64;
1388  } ufs;
1389 };
1390 
1392  struct x86_state_hdr_t esh;
1393  union {
1395  } ues;
1396 };
1397 
1410  x86_DEBUG_STATE = 12
1411 };
1412 
1413 #define x86_THREAD_STATE64_COUNT \
1414  sizeof(struct x86_thread_state64_t) / sizeof(uint32_t);
1415 #define x86_FLOAT_STATE64_COUNT \
1416  sizeof(struct x86_float_state64_t) / sizeof(uint32_t);
1417 #define x86_EXCEPTION_STATE64_COUNT \
1418  sizeof(struct x86_exception_state64_t) / sizeof(uint32_t);
1419 
1420 #define x86_THREAD_STATE_COUNT \
1421  sizeof(struct x86_thread_state_t) / sizeof(uint32_t);
1422 #define x86_FLOAT_STATE_COUNT \
1423  sizeof(struct x86_float_state_t) / sizeof(uint32_t);
1424 #define x86_EXCEPTION_STATE_COUNT \
1425  sizeof(struct x86_exception_state_t) / sizeof(uint32_t);
1426 
1427 #define EXPORT_SYMBOL_FLAGS_KIND_MASK 0x03
1428 #define EXPORT_SYMBOL_FLAGS_KIND_REGULAR 0x00
1429 #define EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL 0x01
1430 #define EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE 0x02
1431 #define EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION 0x04
1432 #define EXPORT_SYMBOL_FLAGS_REEXPORT 0x08
1433 #define EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER 0x10
1434 
1443 };
1444 
1447 };
1448 
1456 };
1457 
1466 };
1467 
1468 enum {
1472 };
1473 
1474 enum {
1484 };
1485 
1488  high8 : 8,
1489  next : 11,
1490  bind : 1, // == 0
1491  auth : 1; // == 0
1492 };
1493 
1496  zero : 16,
1497  addend : 19,
1498  next : 11,
1499  bind : 1, // == 1
1500  auth : 1; // == 0
1501 };
1502 
1506  addrDiv : 1,
1507  key : 2,
1508  next : 11,
1509  bind : 1, // == 0
1510  auth : 1; // == 1
1511 };
1512 
1515  zero : 16,
1517  addrDiv : 1,
1518  key : 2,
1519  next : 11,
1520  bind : 1, // == 1
1521  auth : 1; // == 1
1522 };
1523 
1526  high8 : 8,
1528  next : 12,
1529  bind : 1; // == 0
1530 };
1531 
1534  addend : 8,
1535  reserved : 19,
1536  next : 12,
1537  bind : 1; // == 1
1538 };
1539 
1540 /* WARNING: this is guesswork based on trial and error */
1543  high8 : 8,
1544  next : 12,
1545  auth : 1; // == 0
1546 };
1547 
1551  addrDiv : 1,
1552  key : 2,
1553  next : 12,
1554  auth : 1; // == 1
1555 };
1556 
1559  zero : 8,
1560  addend : 19,
1561  next : 11,
1562  bind : 1, // == 1
1563  auth : 1; // == 0
1564 };
1565 
1568  zero : 8,
1570  addrDiv : 1,
1571  key : 2,
1572  next : 11,
1573  bind : 1, // == 1
1574  auth : 1; // == 1
1575 };
1576 
1577 #endif
uint16_t ut16
LoadCommandType
@ LC_FVMFILE
@ LC_DYLD_EXPORTS_TRIE
@ LC_DYSYMTAB
@ LC_KEXT
@ LC_LOAD_UPWARD_DYLIB
@ LC_SEGMENT
@ LC_VERSION_MIN_IPHONEOS
@ LC_IDENT
@ LC_NOTE
@ LC_ROUTINES
@ LC_LOAD_WEAK_DYLIB
@ LC_ID_DYLINKER
@ LC_MAIN
@ LC_THREAD
@ LC_DYLD_INFO
@ LC_DYLD_INFO_ONLY
@ LC_DYLIB_CODE_SIGN_DRS
@ LC_SUB_CLIENT
@ LC_PREBOUND_DYLIB
@ LC_ENCRYPTION_INFO_64
@ LC_BUILD_VERSION
@ LC_LOADFVMLIB
@ LC_DATA_IN_CODE
@ LC_RPATH
@ LC_VERSION_MIN_WATCHOS
@ LC_UNIXTHREAD
@ LC_SUB_UMBRELLA
@ LC_LOAD_DYLIB
@ LC_DYLD_CHAINED_FIXUPS
@ LC_SYMTAB
@ LC_TWOLEVEL_HINTS
@ LC_LAZY_LOAD_DYLIB
@ LC_ENCRYPTION_INFO
@ LC_SUB_FRAMEWORK
@ LC_ID_DYLIB
@ LC_PREPAGE
@ LC_PREBIND_CKSUM
@ LC_SUB_LIBRARY
@ LC_LOAD_DYLINKER
@ LC_FUNCTION_STARTS
@ LC_SOURCE_VERSION
@ LC_LINKER_OPTIMIZATION_HINT
@ LC_SEGMENT_64
@ LC_VERSION_MIN_TVOS
@ LC_ROUTINES_64
@ LC_SYMSEG
@ LC_IDFVMLIB
@ LC_VERSION_MIN_MACOSX
@ LC_SEGMENT_SPLIT_INFO
@ LC_DYLD_ENVIRONMENT
@ LC_UUID
@ LC_LINKER_OPTION
@ LC_CODE_SIGNATURE
@ LC_REEXPORT_DYLIB
CPUSubTypeARM64
@ CPU_SUBTYPE_ARM64_V8
@ CPU_SUBTYPE_ARM64E
@ CPU_SUBTYPE_ARM64_ALL
@ VM_PROT_WRITE
@ VM_PROT_EXECUTE
@ VM_PROT_READ
@ MH_CIGAM
Definition: mach0_defines.h:62
@ MH_MAGIC_64
Definition: mach0_defines.h:63
@ FAT_CIGAM
Definition: mach0_defines.h:66
@ FAT_MAGIC
Definition: mach0_defines.h:65
@ MH_MAGIC
Definition: mach0_defines.h:61
@ MH_CIGAM_64
Definition: mach0_defines.h:64
CPUSubTypeSPARC
@ CPU_SUBTYPE_SPARC_ALL
#define EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL
NListType
@ N_INDR
@ N_SECT
@ N_PBUD
@ N_UNDF
@ N_ABS
HeaderFileType
Definition: mach0_defines.h:69
@ MH_FVMLIB
Definition: mach0_defines.h:74
@ MH_KEXT_BUNDLE
Definition: mach0_defines.h:82
@ MH_DSYM
Definition: mach0_defines.h:81
@ MH_PRELOAD
Definition: mach0_defines.h:76
@ MH_DYLIB_STUB
Definition: mach0_defines.h:80
@ MH_BUNDLE
Definition: mach0_defines.h:79
@ MH_EXECUTE
Definition: mach0_defines.h:73
@ MH_DYLINKER
Definition: mach0_defines.h:78
@ MH_OBJECT
Definition: mach0_defines.h:72
@ MH_FILESET
Definition: mach0_defines.h:83
@ MH_CORE
Definition: mach0_defines.h:75
@ MH_DYLIB
Definition: mach0_defines.h:77
SectionType
@ S_LITERAL_POINTERS
S_LITERAL_POINTERS - Section with pointers to literals.
@ S_THREAD_LOCAL_INIT_FUNCTION_POINTERS
@ S_SYMBOL_STUBS
@ S_MOD_INIT_FUNC_POINTERS
@ S_CSTRING_LITERALS
S_CSTRING_LITERALS - Section with literal C strings.
@ S_THREAD_LOCAL_VARIABLES
@ S_LAZY_DYLIB_SYMBOL_POINTERS
@ S_8BYTE_LITERALS
S_8BYTE_LITERALS - Section with 8 byte literals.
@ S_THREAD_LOCAL_REGULAR
S_THREAD_LOCAL_REGULAR - Thread local data section.
@ S_4BYTE_LITERALS
S_4BYTE_LITERALS - Section with 4 byte literals.
@ S_ZEROFILL
S_ZEROFILL - Zero fill on demand section.
@ S_NON_LAZY_SYMBOL_POINTERS
S_NON_LAZY_SYMBOL_POINTERS - Section with non-lazy symbol pointers.
@ S_COALESCED
S_COALESCED - Section contains symbols that are to be coalesced.
@ S_THREAD_LOCAL_VARIABLE_POINTERS
@ S_MOD_TERM_FUNC_POINTERS
@ S_16BYTE_LITERALS
S_16BYTE_LITERALS - Section with only 16 byte literals.
@ LAST_KNOWN_SECTION_TYPE
@ S_GB_ZEROFILL
@ S_LAZY_SYMBOL_POINTERS
S_LAZY_SYMBOL_POINTERS - Section with lazy symbol pointers.
@ S_INTERPOSING
@ S_REGULAR
S_REGULAR - Regular section.
@ S_DTRACE_DOF
S_DTRACE_DOF - Section contains DTrace Object Format.
@ S_THREAD_LOCAL_ZEROFILL
S_THREAD_LOCAL_ZEROFILL - Thread local zerofill section.
ExportSymbolKind
@ CPU_SUBTYPE_INTEL_FAMILY_MAX
@ CPU_SUBTYPE_INTEL_MODEL_ALL
CPUSubTypeARM
@ CPU_SUBTYPE_ARM_XSCALE
@ CPU_SUBTYPE_ARM_V7
@ CPU_SUBTYPE_ARM_V5
@ CPU_SUBTYPE_ARM_V7M
@ CPU_SUBTYPE_ARM_V5TEJ
@ CPU_SUBTYPE_ARM_V7K
@ CPU_SUBTYPE_ARM_V7EM
@ CPU_SUBTYPE_ARM_V7F
@ CPU_SUBTYPE_ARM_V4T
@ CPU_SUBTYPE_ARM_ALL
@ CPU_SUBTYPE_ARM_V7S
@ CPU_SUBTYPE_ARM_V6M
@ CPU_SUBTYPE_ARM_V6
#define EXPORT_SYMBOL_FLAGS_KIND_REGULAR
CPUSubTypeMC680x0
@ CPU_SUBTYPE_MC680x0_ALL
@ CPU_SUBTYPE_MC68030
@ CPU_SUBTYPE_MC68030_ONLY
@ CPU_SUBTYPE_MC68040
x86_fp_control_rc
@ x86_FP_RND_NEAR
@ x86_FP_CHOP
@ x86_FP_RND_UP
@ x86_FP_RND_DOWN
#define EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE
static void SET_COMM_ALIGN(uint16_t *n_desc, uint8_t align)
static uint16_t GET_LIBRARY_ORDINAL(uint16_t n_desc)
@ SG_HIGHVM
@ SG_PROTECTED_VERSION_1
@ SECTION_TYPE
@ SG_NORELOC
@ SECTION_ATTRIBUTES_SYS
@ SECTION_ATTRIBUTES_USR
@ SG_FVMLIB
@ SECTION_ATTRIBUTES
BindType
@ BIND_TYPE_TEXT_ABSOLUTE32
@ BIND_TYPE_POINTER
@ BIND_TYPE_TEXT_PCREL32
BindSpecialDylib
@ BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE
@ BIND_SPECIAL_DYLIB_SELF
@ BIND_SPECIAL_DYLIB_FLAT_LOOKUP
@ LC_REQ_DYLD
@ S_ATTR_SOME_INSTRUCTIONS
S_ATTR_SOME_INSTRUCTIONS - Section contains some machine instructions.
@ S_ATTR_NO_TOC
@ S_ATTR_STRIP_STATIC_SYMS
@ S_ATTR_EXT_RELOC
S_ATTR_EXT_RELOC - Section has external relocation entries.
@ S_ATTR_DEBUG
S_ATTR_DEBUG - A debug section.
@ S_ATTR_LIVE_SUPPORT
S_ATTR_LIVE_SUPPORT - Blocks are live if they reference live blocks.
@ S_ATTR_NO_DEAD_STRIP
S_ATTR_NO_DEAD_STRIP - No dead stripping.
@ S_ATTR_LOC_RELOC
S_ATTR_LOC_RELOC - Section has local relocation entries.
@ S_ATTR_PURE_INSTRUCTIONS
@ INDIRECT_SYMBOL_LOCAL
@ INDIRECT_SYMBOL_ABS
@ S_ATTR_SELF_MODIFYING_CODE
static int CPU_SUBTYPE_INTEL_FAMILY(enum CPUSubTypeX86 ST)
StabType
@ N_SOL
@ N_FNAME
@ N_STSYM
@ N_ENTRY
@ N_OPT
@ N_PSYM
@ N_GSYM
@ N_ECOML
@ N_RSYM
@ N_BNSYM
@ N_BINCL
@ N_BCOMM
@ N_EXCL
@ N_LCSYM
@ N_SSYM
@ N_SLINE
@ N_LSYM
@ N_PC
@ N_SO
@ N_FUN
@ N_LBRAC
@ N_ECOMM
@ N_OSO
@ N_EINCL
@ N_RBRAC
@ N_VERSION
@ N_LENG
@ N_ENSYM
@ N_PARAMS
@ N_OLEVEL
@ N_AST
@ RZ_ABS
@ RZ_SCATTERED
DataRegionType
@ DICE_KIND_DATA
@ DICE_KIND_JUMP_TABLE32
@ DICE_KIND_ABS_JUMP_TABLE32
@ DICE_KIND_JUMP_TABLE8
@ DICE_KIND_JUMP_TABLE16
#define EXPORT_SYMBOL_FLAGS_KIND_MASK
CPUSubTypeHPPA
@ CPU_SUBTYPE_HPPA_7100
@ CPU_SUBTYPE_HPPA_7100LC
@ CPU_SUBTYPE_HPPA_ALL
RebaseType
@ REBASE_TYPE_POINTER
@ REBASE_TYPE_TEXT_PCREL32
@ REBASE_TYPE_TEXT_ABSOLUTE32
#define EXPORT_SYMBOL_FLAGS_REEXPORT
static void SET_LIBRARY_ORDINAL(uint16_t *n_desc, uint8_t ordinal)
static int CPU_SUBTYPE_INTEL_MODEL(enum CPUSubTypeX86 ST)
SectionOrdinal
@ NO_SECT
@ MAX_SECT
@ MH_SETUID_SAFE
@ MH_PREBINDABLE
@ MH_FORCE_FLAT
Definition: mach0_defines.h:97
@ MH_ALLOW_STACK_EXECUTION
@ MH_WEAK_DEFINES
@ MH_NO_HEAP_EXECUTION
@ MH_NOUNDEFS
Definition: mach0_defines.h:89
@ MH_NOMULTIDEFS
Definition: mach0_defines.h:98
@ MH_DYLDLINK
Definition: mach0_defines.h:91
@ MH_CANONICAL
@ MH_PIE
@ MH_BINDS_TO_WEAK
@ MH_BINDATLOAD
Definition: mach0_defines.h:92
@ MH_APP_EXTENSION_SAFE
@ MH_SUBSECTIONS_VIA_SYMBOLS
@ MH_ALLMODSBOUND
@ MH_LAZY_INIT
Definition: mach0_defines.h:95
@ MH_TWOLEVEL
Definition: mach0_defines.h:96
@ MH_SPLIT_SEGS
Definition: mach0_defines.h:94
@ MH_INCRLINK
Definition: mach0_defines.h:90
@ MH_PREBOUND
Definition: mach0_defines.h:93
@ MH_NOFIXPREBINDING
Definition: mach0_defines.h:99
@ MH_NO_REEXPORTED_DYLIBS
@ MH_DEAD_STRIPPABLE_DYLIB
@ MH_HAS_TLV_DESCRIPTORS
@ MH_ROOT_SAFE
@ DYLD_CHAINED_PTR_START_MULTI
@ DYLD_CHAINED_PTR_START_NONE
@ DYLD_CHAINED_PTR_START_LAST
BindSubOpcode
@ BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB
@ BIND_SUBOPCODE_THREADED_APPLY
static uint8_t GET_COMM_ALIGN(uint16_t n_desc)
x86_fp_control_precis
@ x86_FP_PREC_24B
@ x86_FP_PREC_53B
@ x86_FP_PREC_64B
BindOpcode
@ BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB
@ BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED
@ BIND_OPCODE_SET_DYLIB_SPECIAL_IMM
@ BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
@ BIND_OPCODE_ADD_ADDR_ULEB
@ BIND_OPCODE_SET_TYPE_IMM
@ BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
@ BIND_OPCODE_DO_BIND
@ BIND_OPCODE_SET_ADDEND_SLEB
@ BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB
@ BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
@ BIND_OPCODE_THREADED
@ BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB
@ BIND_OPCODE_DONE
RebaseOpcode
@ REBASE_OPCODE_ADD_ADDR_IMM_SCALED
@ REBASE_OPCODE_SET_TYPE_IMM
@ REBASE_OPCODE_ADD_ADDR_ULEB
@ REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
@ REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
@ REBASE_OPCODE_DO_REBASE_IMM_TIMES
@ REBASE_OPCODE_DO_REBASE_ULEB_TIMES
@ REBASE_OPCODE_DONE
@ REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
CPUSubTypeMC88000
@ CPU_SUBTYPE_MC88000_ALL
@ CPU_SUBTYPE_MC88100
@ CPU_SUBTYPE_MC88110
CPUSubTypeX86
@ CPU_SUBTYPE_X86_ALL
@ CPU_SUBTYPE_PENTIUM_M
@ CPU_SUBTYPE_X86_64_ALL
@ CPU_SUBTYPE_ITANIUM
@ CPU_SUBTYPE_586
@ CPU_SUBTYPE_PENTIUM_3
@ CPU_SUBTYPE_PENT
@ CPU_SUBTYPE_PENTIUM_3_XEON
@ CPU_SUBTYPE_PENTII_M3
@ CPU_SUBTYPE_PENTIUM_3_M
@ CPU_SUBTYPE_PENTII_M5
@ CPU_SUBTYPE_486
@ CPU_SUBTYPE_PENTIUM_4_M
@ CPU_SUBTYPE_X86_ARCH1
@ CPU_SUBTYPE_CELERON
@ CPU_SUBTYPE_I386_ALL
@ CPU_SUBTYPE_ITANIUM_2
@ CPU_SUBTYPE_486SX
@ CPU_SUBTYPE_XEON_MP
@ CPU_SUBTYPE_CELERON_MOBILE
@ CPU_SUBTYPE_XEON
@ CPU_SUBTYPE_X86_64_H
@ CPU_SUBTYPE_PENTPRO
@ CPU_SUBTYPE_PENTIUM_4
@ CPU_SUBTYPE_386
@ DYLD_CHAINED_PTR_64_OFFSET
@ DYLD_CHAINED_PTR_64
@ DYLD_CHAINED_PTR_ARM64E_USERLAND24
@ DYLD_CHAINED_PTR_32_FIRMWARE
@ DYLD_CHAINED_PTR_ARM64E
@ DYLD_CHAINED_PTR_32_CACHE
@ DYLD_CHAINED_PTR_64_KERNEL_CACHE
@ DYLD_CHAINED_PTR_32
@ DYLD_CHAINED_PTR_ARM64E_KERNEL
@ N_STAB
@ N_PEXT
@ N_EXT
@ N_TYPE
@ REBASE_IMMEDIATE_MASK
@ REBASE_OPCODE_MASK
@ BIND_SYMBOL_FLAGS_WEAK_IMPORT
@ BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION
@ BIND_OPCODE_MASK
@ BIND_IMMEDIATE_MASK
@ CPU_SUBTYPE_LIB64
@ CPU_SUBTYPE_MULTIPLE
@ CPU_SUBTYPE_MASK
CPUSubTypeI860
@ CPU_SUBTYPE_I860_860
@ CPU_SUBTYPE_I860_ALL
@ N_WEAK_DEF
@ REFERENCE_FLAG_PRIVATE_DEFINED
@ REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY
@ DYNAMIC_LOOKUP_ORDINAL
@ N_ALT_ENTRY
@ REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY
@ N_NO_DEAD_STRIP
@ N_WEAK_REF
@ N_ARM_THUMB_DEF
@ REFERENCED_DYNAMICALLY
@ REFERENCE_TYPE
@ MAX_LIBRARY_ORDINAL
@ N_SYMBOL_RESOLVER
@ REFERENCE_FLAG_UNDEFINED_LAZY
@ EXECUTABLE_ORDINAL
@ REFERENCE_FLAG_UNDEFINED_NON_LAZY
@ REFERENCE_FLAG_DEFINED
@ SELF_LIBRARY_ORDINAL
@ CPU_ARCH_ABI64
@ CPU_ARCH_MASK
@ CPU_ARCH_ABI32
CPUSubTypeVAX
@ CPU_SUBTYPE_VAX8800
@ CPU_SUBTYPE_UVAXIII
@ CPU_SUBTYPE_VAX_ALL
@ CPU_SUBTYPE_VAX750
@ CPU_SUBTYPE_VAX780
@ CPU_SUBTYPE_VAX730
@ CPU_SUBTYPE_UVAXI
@ CPU_SUBTYPE_VAX8500
@ CPU_SUBTYPE_VAX8650
@ CPU_SUBTYPE_VAX785
@ CPU_SUBTYPE_VAX8600
@ CPU_SUBTYPE_UVAXII
@ CPU_SUBTYPE_VAX8200
X86ThreadFlavors
@ x86_DEBUG_STATE64
@ x86_EXCEPTION_STATE32
@ x86_THREAD_STATE64
@ x86_DEBUG_STATE32
@ x86_FLOAT_STATE
@ x86_EXCEPTION_STATE64
@ x86_FLOAT_STATE64
@ x86_THREAD_STATE32
@ x86_EXCEPTION_STATE
@ x86_DEBUG_STATE
@ x86_THREAD_STATE
@ x86_FLOAT_STATE32
static int CPU_SUBTYPE_INTEL(int Family, int Model)
CPUType
@ CPU_TYPE_POWERPC
@ CPU_TYPE_X86
@ CPU_TYPE_VAX
@ CPU_TYPE_POWERPC64
@ CPU_TYPE_I386
@ CPU_TYPE_MC680x0
@ CPU_TYPE_ANY
@ CPU_TYPE_ARM64_32
@ CPU_TYPE_MC98000
@ CPU_TYPE_ARM
@ CPU_TYPE_X86_64
@ CPU_TYPE_SPARC
@ CPU_TYPE_MIPS
@ CPU_TYPE_ARM64
@ CPU_TYPE_I860
@ CPU_TYPE_HPPA
@ CPU_TYPE_MC88000
#define EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER
CPUSubTypePowerPC
@ CPU_SUBTYPE_POWERPC_604e
@ CPU_SUBTYPE_POWERPC_601
@ CPU_SUBTYPE_POWERPC_ALL
@ CPU_SUBTYPE_POWERPC_603e
@ CPU_SUBTYPE_POWERPC_970
@ CPU_SUBTYPE_POWERPC_603ev
@ CPU_SUBTYPE_POWERPC_7400
@ CPU_SUBTYPE_POWERPC_620
@ CPU_SUBTYPE_POWERPC_7450
@ CPU_SUBTYPE_POWERPC_603
@ CPU_SUBTYPE_POWERPC_602
@ CPU_SUBTYPE_POWERPC_604
@ CPU_SUBTYPE_MC98601
@ CPU_SUBTYPE_MC98000_ALL
@ CPU_SUBTYPE_POWERPC_750
RelocationInfoType
@ ARM_RELOC_VANILLA
@ PPC_RELOC_LO16_SECTDIFF
@ ARM_THUMB_32BIT_BRANCH
@ X86_64_RELOC_BRANCH
@ GENERIC_RELOC_PB_LA_PTR
@ PPC_RELOC_BR24
@ GENERIC_RELOC_VANILLA
@ ARM64_RELOC_GOT_LOAD_PAGEOFF12
@ X86_64_RELOC_SIGNED_4
@ PPC_RELOC_HI16
@ ARM64_RELOC_TLVP_LOAD_PAGE21
@ ARM_RELOC_SECTDIFF
@ X86_64_RELOC_SUBTRACTOR
@ X86_64_RELOC_GOT_LOAD
@ ARM_RELOC_PAIR
@ PPC_RELOC_HA16_SECTDIFF
@ ARM_RELOC_BR24
@ ARM64_RELOC_ADDEND
@ ARM64_RELOC_UNSIGNED
@ ARM64_RELOC_GOT_LOAD_PAGE21
@ PPC_RELOC_LO14
@ X86_64_RELOC_UNSIGNED
@ GENERIC_RELOC_SECTDIFF
@ PPC_RELOC_VANILLA
@ ARM64_RELOC_PAGEOFF12
@ X86_64_RELOC_TLV
@ ARM64_RELOC_POINTER_TO_GOT
@ X86_64_RELOC_SIGNED
@ ARM_RELOC_LOCAL_SECTDIFF
@ ARM_RELOC_HALF
@ PPC_RELOC_PAIR
@ PPC_RELOC_HI16_SECTDIFF
@ ARM64_RELOC_TLVP_LOAD_PAGEOFF12
@ X86_64_RELOC_SIGNED_2
@ ARM64_RELOC_PAGE21
@ X86_64_RELOC_GOT
@ PPC_RELOC_LO14_SECTDIFF
@ X86_64_RELOC_SIGNED_1
@ PPC_RELOC_LOCAL_SECTDIFF
@ PPC_RELOC_HA16
@ GENERIC_RELOC_LOCAL_SECTDIFF
@ ARM_THUMB_RELOC_BR22
@ ARM64_RELOC_SUBTRACTOR
@ GENERIC_RELOC_PAIR
@ ARM_RELOC_PB_LA_PTR
@ GENERIC_RELOC_TLV
@ PPC_RELOC_SECTDIFF
@ PPC_RELOC_BR14
@ PPC_RELOC_LO16
@ ARM64_RELOC_BRANCH26
@ PPC_RELOC_PB_LA_PTR
@ ARM_RELOC_HALF_SECTDIFF
@ PPC_RELOC_JBSR
#define EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION
CPUSubTypeMIPS
@ CPU_SUBTYPE_MIPS_R2000a
@ CPU_SUBTYPE_MIPS_R2000
@ CPU_SUBTYPE_MIPS_R2800
@ CPU_SUBTYPE_MIPS_R2300
@ CPU_SUBTYPE_MIPS_R3000a
@ CPU_SUBTYPE_MIPS_ALL
@ CPU_SUBTYPE_MIPS_R3000
@ CPU_SUBTYPE_MIPS_R2600
unsigned short uint16_t
Definition: sftypes.h:30
int int32_t
Definition: sftypes.h:33
unsigned int uint32_t
Definition: sftypes.h:29
unsigned long uint64_t
Definition: sftypes.h:28
short int16_t
Definition: sftypes.h:34
unsigned char uint8_t
Definition: sftypes.h:31
_W64 unsigned int uintptr_t
uint16_t kind
uint16_t length
uint32_t offset
uint32_t lazy_bind_size
uint32_t weak_bind_size
uint32_t weak_bind_off
uint32_t lazy_bind_off
uint32_t cmdsize
uint32_t nlocalsym
uint32_t iinit_iterm
uint32_t module_name
uint32_t ninit_nterm
uint32_t objc_module_info_size
uint32_t nextdefsym
uint32_t iextdefsym
uint32_t ilocalsym
uint64_t objc_module_info_addr
uint32_t objc_module_info_addr
uint32_t nextrel
uint32_t ninit_nterm
uint32_t irefsym
uint32_t ilocalsym
uint32_t iinit_iterm
uint32_t iextdefsym
uint32_t module_name
uint32_t nextdefsym
uint32_t iextrel
uint32_t nrefsym
uint32_t nlocalsym
uint32_t objc_module_info_size
uint32_t current_version
uint32_t name
uint32_t timestamp
uint32_t compatibility_version
uint32_t nindirectsyms
uint32_t nextrefsyms
uint32_t extrefsymoff
uint32_t indirectsymoff
uint32_t offset
uint32_t align
uint32_t size
uint32_t cputype
uint32_t cpusubtype
uint32_t nfat_arch
uint32_t magic
unsigned short denorm
unsigned short undfl
unsigned short pc
unsigned short rc
unsigned short invalid
unsigned short ovrfl
unsigned short zdiv
unsigned short precis
unsigned short busy
unsigned short denorm
unsigned short undfl
unsigned short errsumm
unsigned short stkflt
unsigned short c2
unsigned short ovrfl
unsigned short precis
unsigned short invalid
unsigned short tos
unsigned short c1
unsigned short c0
unsigned short zdiv
unsigned short c3
uint32_t header_addr
uint32_t cmdsize
uint32_t minor_version
uint32_t name
uint32_t header_addr
uint32_t cmdsize
uint32_t cmdsize
uint32_t cmd
uint32_t sizeofcmds
uint32_t filetype
uint32_t reserved
uint32_t cputype
uint32_t cpusubtype
uint32_t filetype
uint32_t magic
uint32_t ncmds
uint32_t cputype
uint32_t cpusubtype
uint32_t sizeofcmds
uint32_t flags
char mmst_rsrv[6]
char mmst_reg[10]
uint32_t n_strx
uint64_t n_value
uint8_t n_type
uint16_t n_desc
uint8_t n_sect
uint16_t n_desc
uint32_t n_strx
uint8_t n_type
uint8_t n_sect
uint32_t n_value
int16_t n_desc
uint8_t n_sect
uint32_t n_strx
uint8_t n_type
uint32_t r_symbolnum
uint32_t init_address
uint32_t init_module
uint32_t cmdsize
uint32_t reloff
char sectname[16]
char segname[16]
uint32_t align
uint64_t size
uint32_t offset
uint32_t reserved3
uint64_t addr
uint32_t reserved2
uint32_t nreloc
uint32_t reserved1
uint32_t flags
char segname[16]
uint32_t offset
uint32_t flags
uint32_t reserved2
uint32_t size
uint32_t reloff
uint32_t nreloc
char sectname[16]
uint32_t addr
uint32_t reserved1
uint32_t align
uint32_t cmdsize
uint32_t cmdsize
uint32_t strsize
uint32_t cmdsize
uintptr_t thunk
uintptr_t offset
uint32_t isub_image
uint8_t uuid[16]
uint32_t cmdsize
uint32_t cmd
struct x86_exception_state64_t es64
struct x86_state_hdr_t esh
union x86_exception_state_t::@161 ues
struct xmm_reg_t fpu_xmm12
struct xmm_reg_t fpu_xmm11
struct xmm_reg_t fpu_xmm14
struct xmm_reg_t fpu_xmm15
struct mmst_reg_t fpu_stmm2
struct xmm_reg_t fpu_xmm5
struct xmm_reg_t fpu_xmm2
struct mmst_reg_t fpu_stmm0
struct xmm_reg_t fpu_xmm0
struct xmm_reg_t fpu_xmm4
struct mmst_reg_t fpu_stmm6
struct mmst_reg_t fpu_stmm1
struct xmm_reg_t fpu_xmm13
struct mmst_reg_t fpu_stmm7
struct xmm_reg_t fpu_xmm9
struct xmm_reg_t fpu_xmm8
struct xmm_reg_t fpu_xmm1
struct mmst_reg_t fpu_stmm4
struct xmm_reg_t fpu_xmm10
struct xmm_reg_t fpu_xmm6
struct fp_control_t fpu_fcw
struct mmst_reg_t fpu_stmm5
struct fp_status_t fpu_fsw
struct xmm_reg_t fpu_xmm7
struct xmm_reg_t fpu_xmm3
struct mmst_reg_t fpu_stmm3
struct x86_float_state64_t fs64
struct x86_state_hdr_t fsh
union x86_float_state_t::@160 ufs
union x86_thread_state_t::@159 uts
struct x86_thread_state64_t ts64
struct x86_state_hdr_t tsh
char xmm_reg[16]