netbsd revision 276415
1220329Sobrien
2220176Sobrien#------------------------------------------------------------------------------
3220176Sobrien# $File: netbsd,v 1.22 2014/12/08 20:53:52 christos Exp $
4220176Sobrien# netbsd:  file(1) magic for NetBSD objects
5220176Sobrien#
6220176Sobrien# All new-style magic numbers are in network byte order.
7220176Sobrien# The old-style magic numbers are indistinguishable from the same magic
8220176Sobrien# numbers used in other systems, and are handled, for all those systems,
9220176Sobrien# in aout.
10220176Sobrien#
11220176Sobrien
12220176Sobrien0	belong&0377777777	041400413	a.out NetBSD/i386 demand paged
13220176Sobrien>0	byte			&0x80		
14220176Sobrien>>20	lelong			<4096		shared library
15220176Sobrien>>20	lelong			=4096		dynamically linked executable
16220176Sobrien>>20	lelong			>4096		dynamically linked executable
17220176Sobrien>0	byte			^0x80		executable
18220176Sobrien>16	lelong			>0		not stripped
19220176Sobrien0	belong&0377777777	041400410	a.out NetBSD/i386 pure
20220176Sobrien>0	byte			&0x80		dynamically linked executable
21220176Sobrien>0	byte			^0x80		executable
22220176Sobrien>16	lelong			>0		not stripped
23220176Sobrien0	belong&0377777777	041400407	a.out NetBSD/i386
24220176Sobrien>0	byte			&0x80		dynamically linked executable
25220176Sobrien>0	byte			^0x80
26220176Sobrien>>0	byte			&0x40		position independent
27220176Sobrien>>20	lelong			!0		executable
28220176Sobrien>>20	lelong			=0		object file
29220176Sobrien>16	lelong			>0		not stripped
30220176Sobrien0	belong&0377777777	041400507	a.out NetBSD/i386 core
31220176Sobrien>12	string			>\0		from '%s'
32220370Sobrien>32	lelong			!0		(signal %d)
33220329Sobrien
34220370Sobrien0	belong&0377777777	041600413	a.out NetBSD/m68k demand paged
35220176Sobrien>0	byte			&0x80		
36220176Sobrien>>20	belong			<8192		shared library
37220176Sobrien>>20	belong			=8192		dynamically linked executable
38220176Sobrien>>20	belong			>8192		dynamically linked executable
39220176Sobrien>0	byte			^0x80		executable
40220176Sobrien>16	belong			>0		not stripped
41220176Sobrien0	belong&0377777777	041600410	a.out NetBSD/m68k pure
42220176Sobrien>0	byte			&0x80		dynamically linked executable
43220176Sobrien>0	byte			^0x80		executable
44220176Sobrien>16	belong			>0		not stripped
45220176Sobrien0	belong&0377777777	041600407	a.out NetBSD/m68k
46220178Sobrien>0	byte			&0x80		dynamically linked executable
47220178Sobrien>0	byte			^0x80
48220218Sobrien>>0	byte			&0x40		position independent
49220178Sobrien>>20	belong			!0		executable
50220370Sobrien>>20	belong			=0		object file
51220220Sobrien>16	belong			>0		not stripped
52220370Sobrien0	belong&0377777777	041600507	a.out NetBSD/m68k core
53220178Sobrien>12	string			>\0		from '%s'
54220178Sobrien>32	belong			!0		(signal %d)
55220176Sobrien
56220178Sobrien0	belong&0377777777	042000413	a.out NetBSD/m68k4k demand paged
57220176Sobrien>0	byte			&0x80		
58220218Sobrien>>20	belong			<4096		shared library
59220218Sobrien>>20	belong			=4096		dynamically linked executable
60220218Sobrien>>20	belong			>4096		dynamically linked executable
61220176Sobrien>0	byte			^0x80		executable
62220178Sobrien>16	belong			>0		not stripped
63220176Sobrien0	belong&0377777777	042000410	a.out NetBSD/m68k4k pure
64220176Sobrien>0	byte			&0x80		dynamically linked executable
65220178Sobrien>0	byte			^0x80		executable
66220176Sobrien>16	belong			>0		not stripped
67220176Sobrien0	belong&0377777777	042000407	a.out NetBSD/m68k4k
68220176Sobrien>0	byte			&0x80		dynamically linked executable
69220176Sobrien>0	byte			^0x80
70220220Sobrien>>0	byte			&0x40		position independent
71220178Sobrien>>20	belong			!0		executable
72220178Sobrien>>20	belong			=0		object file
73220178Sobrien>16	belong			>0		not stripped
74220178Sobrien0	belong&0377777777	042000507	a.out NetBSD/m68k4k core
75220178Sobrien>12	string			>\0		from '%s'
76220176Sobrien>32	belong			!0		(signal %d)
77220176Sobrien
78220176Sobrien0	belong&0377777777	042200413	a.out NetBSD/ns32532 demand paged
79220176Sobrien>0	byte			&0x80		
80220176Sobrien>>20	lelong			<4096		shared library
81220178Sobrien>>20	lelong			=4096		dynamically linked executable
82220178Sobrien>>20	lelong			>4096		dynamically linked executable
83220178Sobrien>0	byte			^0x80		executable
84220218Sobrien>16	lelong			>0		not stripped
85220218Sobrien0	belong&0377777777	042200410	a.out NetBSD/ns32532 pure
86220218Sobrien>0	byte			&0x80		dynamically linked executable
87220176Sobrien>0	byte			^0x80		executable
88220176Sobrien>16	lelong			>0		not stripped
89220176Sobrien0	belong&0377777777	042200407	a.out NetBSD/ns32532
90220176Sobrien>0	byte			&0x80		dynamically linked executable
91220176Sobrien>0	byte			^0x80
92220176Sobrien>>0	byte			&0x40		position independent
93220178Sobrien>>20	lelong			!0		executable
94220176Sobrien>>20	lelong			=0		object file
95220178Sobrien>16	lelong			>0		not stripped
96220176Sobrien0	belong&0377777777	042200507	a.out NetBSD/ns32532 core
97220176Sobrien>12	string			>\0		from '%s'
98220176Sobrien>32	lelong			!0		(signal %d)
99220178Sobrien
100220176Sobrien0	belong&0377777777	045200507	a.out NetBSD/powerpc core
101220176Sobrien>12	string			>\0		from '%s'
102220178Sobrien
103220176Sobrien0	belong&0377777777	042400413	a.out NetBSD/SPARC demand paged
104220178Sobrien>0	byte			&0x80		
105220178Sobrien>>20	belong			<8192		shared library
106220220Sobrien>>20	belong			=8192		dynamically linked executable
107220178Sobrien>>20	belong			>8192		dynamically linked executable
108220178Sobrien>0	byte			^0x80		executable
109220178Sobrien>16	belong			>0		not stripped
110220178Sobrien0	belong&0377777777	042400410	a.out NetBSD/SPARC pure
111220178Sobrien>0	byte			&0x80		dynamically linked executable
112220218Sobrien>0	byte			^0x80		executable
113220218Sobrien>16	belong			>0		not stripped
114220178Sobrien0	belong&0377777777	042400407	a.out NetBSD/SPARC
115220178Sobrien>0	byte			&0x80		dynamically linked executable
116220178Sobrien>0	byte			^0x80
117220218Sobrien>>0	byte			&0x40		position independent
118220218Sobrien>>20	belong			!0		executable
119220220Sobrien>>20	belong			=0		object file
120220176Sobrien>16	belong			>0		not stripped
121220220Sobrien0	belong&0377777777	042400507	a.out NetBSD/SPARC core
122220220Sobrien>12	string			>\0		from '%s'
123220220Sobrien>32	belong			!0		(signal %d)
124220220Sobrien
125220176Sobrien0	belong&0377777777	042600413	a.out NetBSD/pmax demand paged
126220178Sobrien>0	byte			&0x80		
127220178Sobrien>>20	lelong			<4096		shared library
128220178Sobrien>>20	lelong			=4096		dynamically linked executable
129220178Sobrien>>20	lelong			>4096		dynamically linked executable
130220176Sobrien>0	byte			^0x80		executable
131220176Sobrien>16	lelong			>0		not stripped
132220176Sobrien0	belong&0377777777	042600410	a.out NetBSD/pmax pure
133220176Sobrien>0	byte			&0x80		dynamically linked executable
134220176Sobrien>0	byte			^0x80		executable
135220176Sobrien>16	lelong			>0		not stripped
136220176Sobrien0	belong&0377777777	042600407	a.out NetBSD/pmax
137220176Sobrien>0	byte			&0x80		dynamically linked executable
138220176Sobrien>0	byte			^0x80
139220176Sobrien>>0	byte			&0x40		position independent
140220176Sobrien>>20	lelong			!0		executable
141220176Sobrien>>20	lelong			=0		object file
142220176Sobrien>16	lelong			>0		not stripped
143220176Sobrien0	belong&0377777777	042600507	a.out NetBSD/pmax core
144220176Sobrien>12	string			>\0		from '%s'
145220176Sobrien>32	lelong			!0		(signal %d)
146220176Sobrien
147220178Sobrien0	belong&0377777777	043000413	a.out NetBSD/vax 1k demand paged
148220176Sobrien>0	byte			&0x80		
149220176Sobrien>>20	lelong			<4096		shared library
150220176Sobrien>>20	lelong			=4096		dynamically linked executable
151220176Sobrien>>20	lelong			>4096		dynamically linked executable
152220176Sobrien>0	byte			^0x80		executable
153220176Sobrien>16	lelong			>0		not stripped
154220176Sobrien0	belong&0377777777	043000410	a.out NetBSD/vax 1k pure
155220176Sobrien>0	byte			&0x80		dynamically linked executable
156220176Sobrien>0	byte			^0x80		executable
157220220Sobrien>16	lelong			>0		not stripped
158220176Sobrien0	belong&0377777777	043000407	a.out NetBSD/vax 1k
159220178Sobrien>0	byte			&0x80		dynamically linked executable
160220218Sobrien>0	byte			^0x80
161220176Sobrien>>0	byte			&0x40		position independent
162220176Sobrien>>20	lelong			!0		executable
163220176Sobrien>>20	lelong			=0		object file
164220178Sobrien>16	lelong			>0		not stripped
165220176Sobrien0	belong&0377777777	043000507	a.out NetBSD/vax 1k core
166220216Sobrien>12	string			>\0		from '%s'
167220176Sobrien>32	lelong			!0		(signal %d)
168220178Sobrien
169220178Sobrien0	belong&0377777777	045400413	a.out NetBSD/vax 4k demand paged
170220176Sobrien>0	byte			&0x80		
171220178Sobrien>>20	lelong			<4096		shared library
172220178Sobrien>>20	lelong			=4096		dynamically linked executable
173220178Sobrien>>20	lelong			>4096		dynamically linked executable
174220176Sobrien>0	byte			^0x80		executable
175220176Sobrien>16	lelong			>0		not stripped
176220176Sobrien0	belong&0377777777	045400410	a.out NetBSD/vax 4k pure
177220176Sobrien>0	byte			&0x80		dynamically linked executable
178220178Sobrien>0	byte			^0x80		executable
179220176Sobrien>16	lelong			>0		not stripped
180220178Sobrien0	belong&0377777777	045400407	a.out NetBSD/vax 4k
181220178Sobrien>0	byte			&0x80		dynamically linked executable
182220176Sobrien>0	byte			^0x80
183220176Sobrien>>0	byte			&0x40		position independent
184220176Sobrien>>20	lelong			!0		executable
185220176Sobrien>>20	lelong			=0		object file
186220176Sobrien>16	lelong			>0		not stripped
187220176Sobrien0	belong&0377777777	045400507	a.out NetBSD/vax 4k core
188220176Sobrien>12	string			>\0		from '%s'
189220176Sobrien>32	lelong			!0		(signal %d)
190220176Sobrien
191220220Sobrien# NetBSD/alpha does not support (and has never supported) a.out objects,
192220176Sobrien# so no rules are provided for them.  NetBSD/alpha ELF objects are 
193220176Sobrien# dealt with in "elf".
194220220Sobrien0	lelong		0x00070185		ECOFF NetBSD/alpha binary
195220176Sobrien>10	leshort		0x0001			not stripped
196220176Sobrien>10	leshort		0x0000			stripped
197220220Sobrien0	belong&0377777777	043200507	a.out NetBSD/alpha core
198220178Sobrien>12	string			>\0		from '%s'
199220176Sobrien>32	lelong			!0		(signal %d)
200220176Sobrien
201220176Sobrien0	belong&0377777777	043400413	a.out NetBSD/mips demand paged
202220176Sobrien>0	byte			&0x80		
203220176Sobrien>>20	belong			<8192		shared library
204220176Sobrien>>20	belong			=8192		dynamically linked executable
205220216Sobrien>>20	belong			>8192		dynamically linked executable
206220216Sobrien>0	byte			^0x80		executable
207220216Sobrien>16	belong			>0		not stripped
208220216Sobrien0	belong&0377777777	043400410	a.out NetBSD/mips pure
209220216Sobrien>0	byte			&0x80		dynamically linked executable
210220216Sobrien>0	byte			^0x80		executable
211220216Sobrien>16	belong			>0		not stripped
212220216Sobrien0	belong&0377777777	043400407	a.out NetBSD/mips
213220220Sobrien>0	byte			&0x80		dynamically linked executable
214220216Sobrien>0	byte			^0x80
215220216Sobrien>>0	byte			&0x40		position independent
216220216Sobrien>>20	belong			!0		executable
217220216Sobrien>>20	belong			=0		object file
218220216Sobrien>16	belong			>0		not stripped
219220216Sobrien0	belong&0377777777	043400507	a.out NetBSD/mips core
220220220Sobrien>12	string			>\0		from '%s'
221220216Sobrien>32	belong			!0		(signal %d)
222220220Sobrien
223220220Sobrien0	belong&0377777777	043600413	a.out NetBSD/arm32 demand paged
224220220Sobrien>0	byte			&0x80
225220220Sobrien>>20	lelong			<4096		shared library
226220220Sobrien>>20	lelong			=4096		dynamically linked executable
227220220Sobrien>>20	lelong			>4096		dynamically linked executable
228220220Sobrien>0	byte			^0x80		executable
229220220Sobrien>16	lelong			>0		not stripped
230220220Sobrien0	belong&0377777777	043600410	a.out NetBSD/arm32 pure
231220220Sobrien>0	byte			&0x80		dynamically linked executable
232220220Sobrien>0	byte			^0x80		executable
233220220Sobrien>16	lelong			>0		not stripped
234220220Sobrien0	belong&0377777777	043600407	a.out NetBSD/arm32
235220220Sobrien>0	byte			&0x80		dynamically linked executable
236220220Sobrien>0	byte			^0x80
237220216Sobrien>>0	byte			&0x40		position independent
238220176Sobrien>>20	lelong			!0		executable
239220176Sobrien>>20	lelong			=0		object file
240220176Sobrien>16	lelong			>0		not stripped
241220176Sobrien# NetBSD/arm26 has always used ELF objects, but it shares a core file
242220220Sobrien# format with NetBSD/arm32.
243220220Sobrien0	belong&0377777777	043600507	a.out NetBSD/arm core
244220220Sobrien>12	string			>\0		from '%s'
245220220Sobrien>32	lelong			!0		(signal %d)
246220220Sobrien
247220220Sobrien# Kernel core dump format
248220220Sobrien0	belong&0x0000ffff 0x00008fca	NetBSD kernel core file
249220220Sobrien>0	belong&0x03ff0000 0x00000000	\b, Unknown
250220220Sobrien>0	belong&0x03ff0000 0x00010000	\b, sun 68010/68020
251220220Sobrien>0	belong&0x03ff0000 0x00020000	\b, sun 68020
252220220Sobrien>0	belong&0x03ff0000 0x00640000	\b, 386 PC
253220220Sobrien>0	belong&0x03ff0000 0x00860000	\b, i386 BSD
254220220Sobrien>0	belong&0x03ff0000 0x00870000	\b, m68k BSD (8K pages)
255220220Sobrien>0	belong&0x03ff0000 0x00880000	\b, m68k BSD (4K pages)
256220220Sobrien>0	belong&0x03ff0000 0x00890000	\b, ns32532 BSD
257220220Sobrien>0	belong&0x03ff0000 0x008a0000	\b, SPARC/32 BSD
258220220Sobrien>0	belong&0x03ff0000 0x008b0000	\b, pmax BSD
259220220Sobrien>0	belong&0x03ff0000 0x008c0000	\b, vax BSD (1K pages)
260220220Sobrien>0	belong&0x03ff0000 0x008d0000	\b, alpha BSD
261220220Sobrien>0	belong&0x03ff0000 0x008e0000	\b, mips BSD (Big Endian)
262220220Sobrien>0	belong&0x03ff0000 0x008f0000	\b, arm6 BSD
263220220Sobrien>0	belong&0x03ff0000 0x00900000	\b, m68k BSD (2K pages)
264220220Sobrien>0	belong&0x03ff0000 0x00910000	\b, sh3 BSD
265220220Sobrien>0	belong&0x03ff0000 0x00950000	\b, ppc BSD (Big Endian)
266220176Sobrien>0	belong&0x03ff0000 0x00960000	\b, vax BSD (4K pages)
267220176Sobrien>0	belong&0x03ff0000 0x00970000	\b, mips1 BSD
268220176Sobrien>0	belong&0x03ff0000 0x00980000	\b, mips2 BSD
269220176Sobrien>0	belong&0x03ff0000 0x00990000	\b, m88k BSD
270220176Sobrien>0	belong&0x03ff0000 0x00920000	\b, parisc BSD
271220220Sobrien>0	belong&0x03ff0000 0x009b0000	\b, sh5/64 BSD
272220176Sobrien>0	belong&0x03ff0000 0x009c0000	\b, SPARC/64 BSD
273220176Sobrien>0	belong&0x03ff0000 0x009d0000	\b, amd64 BSD
274220176Sobrien>0	belong&0x03ff0000 0x009e0000	\b, sh5/32 BSD
275220176Sobrien>0	belong&0x03ff0000 0x009f0000	\b, ia64 BSD
276220176Sobrien>0	belong&0x03ff0000 0x00b70000	\b, aarch64 BSD
277220176Sobrien>0	belong&0x03ff0000 0x00b80000	\b, or1k BSD
278220176Sobrien>0	belong&0x03ff0000 0x00b90000	\b, Risk-V BSD
279220220Sobrien>0	belong&0x03ff0000 0x00c80000	\b, hp200 BSD
280220176Sobrien>0	belong&0x03ff0000 0x012c0000	\b, hp300 BSD
281220176Sobrien>0	belong&0x03ff0000 0x020b0000	\b, hp800 HP-UX
282220176Sobrien>0	belong&0x03ff0000 0x020c0000	\b, hp200/hp300 HP-UX
283220176Sobrien>0	belong&0xfc000000 0x04000000	\b, CPU
284220176Sobrien>0	belong&0xfc000000 0x08000000	\b, DATA
285220176Sobrien>0	belong&0xfc000000 0x10000000	\b, STACK
286220176Sobrien>4	leshort	x			\b, (headersize = %d
287220176Sobrien>6	leshort	x			\b, segmentsize = %d
288220176Sobrien>6	lelong	x			\b, segments = %d)
289220176Sobrien