forked from facebookarchive/atosl
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathatosl.h
More file actions
131 lines (109 loc) · 2.4 KB
/
atosl.h
File metadata and controls
131 lines (109 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
* Copyright (c) 2013, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#ifndef ATOSL_
#define ATOSL_
#define MH_MAGIC 0xfeedface
#define FAT_MAGIC 0xcafebabe
#define FAT_CIGAM 0xbebafeca
#define MH_DYLIB 0x6
#define MH_DSYM 0xa
#define MH_EXECUTE 0x2
#define LC_SEGMENT 0x1
#define LC_SYMTAB 0x2
#define LC_PREPAGE 0xa
#define LC_UUID 0x1b
#define LC_FUNCTION_STARTS 0x26
#define N_STAB 0xe0
#define N_PEXT 0x10
#define N_TYPE 0x0e
#define N_EXT 0x01
#define N_UNDF 0x0
#define N_ABS 0x2
#define N_SECT 0xe
#define N_PBUD 0xc
#define N_INDR 0xa
#define CPU_TYPE_ARM ((cpu_type_t)12)
#define CPU_SUBTYPE_ARM_V7 ((cpu_subtype_t)9)
#define CPU_SUBTYPE_ARM_V7S ((cpu_subtype_t)11)
#define CPU_TYPE_I386 ((cpu_type_t)7)
#define CPU_SUBTYPE_X86_ALL ((cpu_subtype_t)3)
#define N_ARM_THUMB_DEF 0x0008
#define NUMOF(x) (sizeof((x))/sizeof((x)[0]))
typedef int cpu_type_t;
typedef int cpu_subtype_t;
typedef int vm_prot_t;
struct fat_header_t {
uint32_t magic;
uint32_t nfat_arch;
};
struct fat_arch_t {
cpu_type_t cputype;
cpu_subtype_t cpusubtype;
uint32_t offset;
uint32_t size;
uint32_t align;
};
struct mach_header_t {
cpu_type_t cputype;
cpu_subtype_t cpusubtype;
uint32_t filetype;
uint32_t ncmds;
uint32_t sizeofcmds;
uint32_t flags;
};
struct load_command_t {
uint32_t cmd;
uint32_t cmdsize;
};
struct segment_command_t {
char segname[16];
uint32_t vmaddr;
uint32_t vmsize;
uint32_t fileoff;
uint32_t filesize;
vm_prot_t maxprot;
vm_prot_t initprot;
uint32_t nsects;
uint32_t flags;
};
struct section_t {
char sectname[16];
char segname[16];
uint32_t addr;
uint32_t size;
uint32_t offset;
uint32_t align;
uint32_t reloff;
uint32_t nreloc;
uint32_t flags;
uint32_t reserved1;
uint32_t reserved2;
};
struct symtab_command_t {
uint32_t symoff;
uint32_t nsyms;
uint32_t stroff;
uint32_t strsize;
};
struct linkedit_data_command_t {
uint32_t dataoff;
uint32_t datasize;
};
struct nlist_t
{
union {
int32_t n_strx;
} n_un;
uint8_t n_type;
uint8_t n_sect;
uint16_t n_desc;
uint32_t n_value;
};
#endif /* ATOSL _*/