xref: /freebsd/contrib/file/magic/Magdir/mach (revision ea825d02749f382c3f7e17f28247f20a48733eab)
1
2#------------------------------------------------------------
3# $File: mach,v 1.23 2015/10/15 21:51:22 christos Exp $
4# Mach has two magic numbers, 0xcafebabe and 0xfeedface.
5# Unfortunately the first, cafebabe, is shared with
6# Java ByteCode, so they are both handled in the file "cafebabe".
7# The "feedface" ones are handled herein.
8#------------------------------------------------------------
9# if set, it's for the 64-bit version of the architecture
10# yes, this is separate from the low-order magic number bit
11# it's also separate from the "64-bit libraries" bit in the
12# upper 8 bits of the CPU subtype
13
140	name	mach-o-cpu
15>0	belong&0x01000000	0
16#
17# 32-bit ABIs.
18#
19#				1	vax
20>>0	belong&0x00ffffff	1
21>>>4		belong&0x00ffffff	0	vax
22>>>4		belong&0x00ffffff	1	vax11/780
23>>>4		belong&0x00ffffff	2	vax11/785
24>>>4		belong&0x00ffffff	3	vax11/750
25>>>4		belong&0x00ffffff	4	vax11/730
26>>>4		belong&0x00ffffff	5	uvaxI
27>>>4		belong&0x00ffffff	6	uvaxII
28>>>4		belong&0x00ffffff	7	vax8200
29>>>4		belong&0x00ffffff	8	vax8500
30>>>4		belong&0x00ffffff	9	vax8600
31>>>4		belong&0x00ffffff	10	vax8650
32>>>4		belong&0x00ffffff	11	vax8800
33>>>4		belong&0x00ffffff	12	uvaxIII
34>>>4		belong&0x00ffffff	>12	vax subarchitecture=%d
35>>0	belong&0x00ffffff	2	romp
36>>0	belong&0x00ffffff	3	architecture=3
37>>0	belong&0x00ffffff	4	ns32032
38>>0	belong&0x00ffffff	5	ns32332
39>>0	belong&0x00ffffff	6	m68k
40#				7	x86
41>>0	belong&0x00ffffff	7
42>>>4	belong&0x0000000f	3		i386
43>>>4	belong&0x0000000f	4		i486
44>>>>4	belong&0x00fffff0	0
45>>>>4	belong&0x00fffff0	0x80		\bsx
46>>>4	belong&0x0000000f	5		i586
47>>>4	belong&0x0000000f	6
48>>>>4	belong&0x00fffff0	0		p6
49>>>>4	belong&0x00fffff0	0x10		pentium_pro
50>>>>4	belong&0x00fffff0	0x20		pentium_2_m0x20
51>>>>4	belong&0x00fffff0	0x30		pentium_2_m3
52>>>>4	belong&0x00fffff0	0x40		pentium_2_m0x40
53>>>>4	belong&0x00fffff0	0x50		pentium_2_m5
54>>>>4	belong&0x00fffff0	>0x50		pentium_2_m0x%x
55>>>4	belong&0x0000000f	7		celeron
56>>>>4	belong&0x00fffff0	0x00		\b_m0x%x
57>>>>4	belong&0x00fffff0	0x10		\b_m0x%x
58>>>>4	belong&0x00fffff0	0x20		\b_m0x%x
59>>>>4	belong&0x00fffff0	0x30		\b_m0x%x
60>>>>4	belong&0x00fffff0	0x40		\b_m0x%x
61>>>>4	belong&0x00fffff0	0x50		\b_m0x%x
62>>>>4	belong&0x00fffff0	0x60
63>>>>4	belong&0x00fffff0	0x70		\b_mobile
64>>>>4	belong&0x00fffff0	>0x70		\b_m0x%x
65>>>4	belong&0x0000000f	8		pentium_3
66>>>>4	belong&0x00fffff0	0x00
67>>>>4	belong&0x00fffff0	0x10		\b_m
68>>>>4	belong&0x00fffff0	0x20		\b_xeon
69>>>>4	belong&0x00fffff0	>0x20		\b_m0x%x
70>>>4	belong&0x0000000f	9		pentiumM
71>>>>4	belong&0x00fffff0	0x00
72>>>>4	belong&0x00fffff0	>0x00		\b_m0x%x
73>>>4	belong&0x0000000f	10		pentium_4
74>>>>4	belong&0x00fffff0	0x00
75>>>>4	belong&0x00fffff0	0x10		\b_m
76>>>>4	belong&0x00fffff0	>0x10		\b_m0x%x
77>>>4	belong&0x0000000f	11		itanium
78>>>>4	belong&0x00fffff0	0x00
79>>>>4	belong&0x00fffff0	0x10		\b_2
80>>>>4	belong&0x00fffff0	>0x10		\b_m0x%x
81>>>4	belong&0x0000000f	12		xeon
82>>>>4	belong&0x00fffff0	0x00
83>>>>4	belong&0x00fffff0	0x10		\b_mp
84>>>>4	belong&0x00fffff0	>0x10		\b_m0x%x
85>>>4	belong&0x0000000f	>12		ia32 family=%d
86>>>>4	belong&0x00fffff0	0x00
87>>>>4	belong&0x00fffff0	>0x00		model=%x
88>>0	belong&0x00ffffff	8	mips
89>>>4		belong&0x00ffffff	1	R2300
90>>>4		belong&0x00ffffff	2	R2600
91>>>4		belong&0x00ffffff	3	R2800
92>>>4		belong&0x00ffffff	4	R2000a
93>>>4		belong&0x00ffffff	5	R2000
94>>>4		belong&0x00ffffff	6	R3000a
95>>>4		belong&0x00ffffff	7	R3000
96>>>4		belong&0x00ffffff	>7	subarchitecture=%d
97>>0	belong&0x00ffffff	9	ns32532
98>>0	belong&0x00ffffff	10	mc98000
99>>0	belong&0x00ffffff	11	hppa
100>>>4		belong&0x00ffffff	0	7100
101>>>4		belong&0x00ffffff	1	7100LC
102>>>4		belong&0x00ffffff	>1	subarchitecture=%d
103>>0	belong&0x00ffffff	12	arm
104>>>4		belong&0x00ffffff	0
105>>>4		belong&0x00ffffff	1	subarchitecture=%d
106>>>4		belong&0x00ffffff	2	subarchitecture=%d
107>>>4		belong&0x00ffffff	3	subarchitecture=%d
108>>>4		belong&0x00ffffff	4	subarchitecture=%d
109>>>4		belong&0x00ffffff	5	\bv4t
110>>>4		belong&0x00ffffff	6	\bv6
111>>>4		belong&0x00ffffff	7	\bv5tej
112>>>4		belong&0x00ffffff	8	\bxscale
113>>>4		belong&0x00ffffff	9	\bv7
114>>>4		belong&0x00ffffff	10	\bv7f
115>>>4		belong&0x00ffffff	11	\bv7s
116>>>4		belong&0x00ffffff	12	\bv7k
117>>>4		belong&0x00ffffff	13	\bv8
118>>>4		belong&0x00ffffff	14	\bv6m
119>>>4		belong&0x00ffffff	15	\bv7m
120>>>4		belong&0x00ffffff	16	\bv7em
121>>>4		belong&0x00ffffff	>16	subarchitecture=%d
122#				13	m88k
123>>0	belong&0x00ffffff	13
124>>>4		belong&0x00ffffff	0	mc88000
125>>>4		belong&0x00ffffff	1	mc88100
126>>>4		belong&0x00ffffff	2	mc88110
127>>>4		belong&0x00ffffff	>2	mc88000 subarchitecture=%d
128>>0	belong&0x00ffffff	14	SPARC
129>>0	belong&0x00ffffff	15	i860g
130>>0	belong&0x00ffffff	16	alpha
131>>0	belong&0x00ffffff	17	rs6000
132>>0	belong&0x00ffffff	18	ppc
133>>>4		belong&0x00ffffff	0
134>>>4		belong&0x00ffffff	1	\b_601
135>>>4		belong&0x00ffffff	2	\b_602
136>>>4		belong&0x00ffffff	3	\b_603
137>>>4		belong&0x00ffffff	4	\b_603e
138>>>4		belong&0x00ffffff	5	\b_603ev
139>>>4		belong&0x00ffffff	6	\b_604
140>>>4		belong&0x00ffffff	7	\b_604e
141>>>4		belong&0x00ffffff	8	\b_620
142>>>4		belong&0x00ffffff	9	\b_650
143>>>4		belong&0x00ffffff	10	\b_7400
144>>>4		belong&0x00ffffff	11	\b_7450
145>>>4		belong&0x00ffffff	100	\b_970
146>>>4		belong&0x00ffffff	>100	subarchitecture=%d
147>>0	belong&0x00ffffff	>18	architecture=%d
148>0	belong&0x01000000	0x01000000
149#
150# 64-bit ABIs.
151#
152>>0	belong&0x00ffffff	0	64-bit architecture=%d
153>>0	belong&0x00ffffff	1	64-bit architecture=%d
154>>0	belong&0x00ffffff	2	64-bit architecture=%d
155>>0	belong&0x00ffffff	3	64-bit architecture=%d
156>>0	belong&0x00ffffff	4	64-bit architecture=%d
157>>0	belong&0x00ffffff	5	64-bit architecture=%d
158>>0	belong&0x00ffffff	6	64-bit architecture=%d
159>>0	belong&0x00ffffff	7	x86_64
160>>>4		belong&0x00ffffff	0	subarchitecture=%d
161>>>4		belong&0x00ffffff	1	subarchitecture=%d
162>>>4		belong&0x00ffffff	2	subarchitecture=%d
163>>>4		belong&0x00ffffff	3
164>>>4		belong&0x00ffffff	4	\b_arch1
165>>>4		belong&0x00ffffff	8	\b_haswell
166>>>4		belong&0x00ffffff	>4	subarchitecture=%d
167>>0	belong&0x00ffffff	8	64-bit architecture=%d
168>>0	belong&0x00ffffff	9	64-bit architecture=%d
169>>0	belong&0x00ffffff	10	64-bit architecture=%d
170>>0	belong&0x00ffffff	11	64-bit architecture=%d
171>>0	belong&0x00ffffff	12	arm64
172>>>4		belong&0x00ffffff	0
173>>>4		belong&0x00ffffff	1	\bv8
174>>0	belong&0x00ffffff	13	64-bit architecture=%d
175>>0	belong&0x00ffffff	14	64-bit architecture=%d
176>>0	belong&0x00ffffff	15	64-bit architecture=%d
177>>0	belong&0x00ffffff	16	64-bit architecture=%d
178>>0	belong&0x00ffffff	17	64-bit architecture=%d
179>>0	belong&0x00ffffff	18	ppc64
180>>>4		belong&0x00ffffff	0
181>>>4		belong&0x00ffffff	1		\b_601
182>>>4		belong&0x00ffffff	2		\b_602
183>>>4		belong&0x00ffffff	3		\b_603
184>>>4		belong&0x00ffffff	4		\b_603e
185>>>4		belong&0x00ffffff	5		\b_603ev
186>>>4		belong&0x00ffffff	6		\b_604
187>>>4		belong&0x00ffffff	7		\b_604e
188>>>4		belong&0x00ffffff	8		\b_620
189>>>4		belong&0x00ffffff	9		\b_650
190>>>4		belong&0x00ffffff	10		\b_7400
191>>>4		belong&0x00ffffff	11		\b_7450
192>>>4		belong&0x00ffffff	100		\b_970
193>>>4		belong&0x00ffffff	>100		subarchitecture=%d
194>>0	belong&0x00ffffff	>18	64-bit architecture=%d
195
196
1970	name		mach-o-be
198>0	byte		0xcf		64-bit
199>4	use		mach-o-cpu
200>12	belong		1		object
201>12	belong		2		executable
202>12	belong		3		fixed virtual memory shared library
203>12	belong		4		core
204>12	belong		5		preload executable
205>12	belong		6		dynamically linked shared library
206>12	belong		7		dynamic linker
207>12	belong		8		bundle
208>12	belong		9		dynamically linked shared library stub
209>12	belong		10		dSYM companion file
210>12	belong		11		kext bundle
211>12	belong		>11
212>>12	belong		x		filetype=%d
213>24	belong		>0		\b, flags:<
214>>24	belong		&0x0000001	\bNOUNDEFS
215>>24	belong		&0x0000002	\b|INCRLINK
216>>24	belong		&0x0000004	\b|DYLDLINK
217>>24	belong		&0x0000008	\b|BINDATLOAD
218>>24	belong		&0x0000010	\b|PREBOUND
219>>24	belong		&0x0000020	\b|SPLIT_SEGS
220>>24	belong		&0x0000040	\b|LAZY_INIT
221>>24	belong		&0x0000080	\b|TWOLEVEL
222>>24	belong		&0x0000100	\b|FORCE_FLAT
223>>24	belong		&0x0000200	\b|NOMULTIDEFS
224>>24	belong		&0x0000400	\b|NOFIXPREBINDING
225>>24	belong		&0x0000800	\b|PREBINDABLE
226>>24	belong		&0x0001000	\b|ALLMODSBOUND
227>>24	belong		&0x0002000	\b|SUBSECTIONS_VIA_SYMBOLS
228>>24	belong		&0x0004000	\b|CANONICAL
229>>24	belong		&0x0008000	\b|WEAK_DEFINES
230>>24	belong		&0x0010000	\b|BINDS_TO_WEAK
231>>24	belong		&0x0020000	\b|ALLOW_STACK_EXECUTION
232>>24	belong		&0x0040000	\b|ROOT_SAFE
233>>24	belong		&0x0080000	\b|SETUID_SAFE
234>>24	belong		&0x0100000	\b|NO_REEXPORTED_DYLIBS
235>>24	belong		&0x0200000	\b|PIE
236>>24	belong		&0x0400000	\b|DEAD_STRIPPABLE_DYLIB
237>>24	belong		&0x0800000	\b|HAS_TLV_DESCRIPTORS
238>>24	belong		&0x1000000	\b|NO_HEAP_EXECUTION
239>>24	belong		&0x2000000	\b|APP_EXTENSION_SAFE
240>>24	belong		x		\b>
241
242#
2430	lelong&0xfffffffe	0xfeedface	Mach-O
244!:strength +1
245!:mime application/x-mach-binary
246>0	use	\^mach-o-be
247
2480	belong&0xfffffffe	0xfeedface	Mach-O
249!:strength +1
250!:mime application/x-mach-binary
251>0	use	mach-o-be
252