summaryrefslogtreecommitdiff
path: root/usr.bin/file/magdir/elf
blob: 8c03e2899e0ceff9ece327dcd727e8248c7b88cd (plain)
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
132
#	$OpenBSD: elf,v 1.14 2004/10/27 18:12:44 pefo Exp $

#------------------------------------------------------------------------------
# elf:  file(1) magic for ELF executables
#
# We have to check the byte order flag to see what byte order all the
# other stuff in the header is in.
#
# MIPS RS3000 may also be for MIPS RS2000.
# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
#
# updated by Daniel Quinlan (quinlan@yggdrasil.com)
0	string		\177ELF		ELF
>4	byte		0		invalid class
>4	byte		1		32-bit
>4	byte		2		64-bit
>5	byte		0		invalid byte order
>5	byte		1		LSB
>>16	leshort		0		no file type,
>>16	leshort		1		relocatable,
>>16	leshort		2		executable,
>>16	leshort		3		shared object,
# only for MIPS
>>18	leshort		8
# only for 32-bit
>>>4	byte		1
>>>>36	lelong&0xf0000000	0x00000000	MIPS-I,
>>>>36	lelong&0xf0000000	0x10000000	MIPS-II,
>>>>36	lelong&0xf0000000	0x20000000	MIPS-III,
>>>>36	lelong&0xf0000000	0x30000000	MIPS-IV,
>>>>36	lelong&0xf0000000	0x40000000	MIPS-V,
>>>>36	lelong&0xf0000000	0x60000000	MIPS32,
>>>>36	lelong&0xf0000000	0x70000000	MIPS64,
>>>>36	lelong&0xf0000000	0x80000000	MIPS32 rel2,
>>>>36	lelong&0xf0000000	0x90000000	MIPS64 rel2,
# only for 64-bit
>>>4	byte		2
>>>>48	lelong&0xf0000000	0x00000000	MIPS-I,
>>>>48	lelong&0xf0000000	0x10000000	MIPS-II,
>>>>48	lelong&0xf0000000	0x20000000	MIPS-III,
>>>>48	lelong&0xf0000000	0x30000000	MIPS-IV,
>>>>48	lelong&0xf0000000	0x40000000	MIPS-V,
>>>>48	lelong&0xf0000000	0x60000000	MIPS32,
>>>>48	lelong&0xf0000000	0x70000000	MIPS64 ,
>>>>48	lelong&0xf0000000	0x80000000	MIPS32 rel2,
>>>>48	lelong&0xf0000000	0x90000000	MIPS64 rel2,
# Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
>>16	leshort		4		core file
>>>400  lelong          >0              (signal %d),
>>16	leshort		&0xff00		processor-specific,
>>18	leshort		0		no machine,
>>18	leshort		1		AT&T WE32100 - invalid byte order,
>>18	leshort		2		SPARC - invalid byte order,
>>18	leshort		3		Intel 80386,
>>18	leshort		4		Motorola 68000 - invalid byte order,
>>18	leshort		5		Motorola 88000 - invalid byte order,
>>18	leshort		6		Intel 80486,
>>18	leshort		7		Intel 80860,
# >>18	leshort		8		MIPS,
>>18	leshort		9		Amdahl - invalid byte order,
>>18	leshort		10		MIPS (deprecated),
>>18	leshort		11		RS6000 - invalid byte order,
>>18	leshort		15		PA-RISC - invalid byte order,
>>18	leshort		16		nCUBE,
>>18	leshort		17		VPP500,
>>18	leshort		18		SPARC32PLUS,
>>18	leshort		20		PowerPC,
>>18	leshort		40		ARM,
>>18	leshort		43		SPARC64 - invalid byte order,
>>18	leshort		62		AMD64,
>>18	leshort		75		VAX,
>>18	leshort		0x9026		Alpha,
>>20	lelong		0		invalid version
>>20	lelong		1		version 1
>>36	lelong		1		MathCoPro/FPU/MAU Required
>5	byte		2		MSB
>>16	beshort		0		no file type,
>>16	beshort		1		relocatable,
>>16	beshort		2		executable,
>>16	beshort		3		shared object,
# only for MIPS
>>18	beshort		8
# only for 32-bit
>>>4	byte		1
>>>>36	belong&0xf0000000	0x00000000	MIPS-I,
>>>>36	belong&0xf0000000	0x10000000	MIPS-II,
>>>>36	belong&0xf0000000	0x20000000	MIPS-III,
>>>>36	belong&0xf0000000	0x30000000	MIPS-IV,
>>>>36	belong&0xf0000000	0x40000000	MIPS-V,
>>>>36	belong&0xf0000000	0x60000000	MIPS32,
>>>>36	belong&0xf0000000	0x70000000	MIPS64,
>>>>36	belong&0xf0000000	0x80000000	MIPS32 rel2,
>>>>36	belong&0xf0000000	0x90000000	MIPS64 rel2,
# only for 64-bit
>>>4	byte		2
>>>>48	belong&0xf0000000	0x00000000	MIPS-I,
>>>>48	belong&0xf0000000	0x10000000	MIPS-II,
>>>>48	belong&0xf0000000	0x20000000	MIPS-III,
>>>>48	belong&0xf0000000	0x30000000	MIPS-IV,
>>>>48	belong&0xf0000000	0x40000000	MIPS-V,
>>>>48	belong&0xf0000000	0x60000000	MIPS32,
>>>>48	belong&0xf0000000	0x70000000	MIPS64 ,
>>>>48	belong&0xf0000000	0x80000000	MIPS32 rel2,
>>>>48	belong&0xf0000000	0x90000000	MIPS64 rel2,
>>16	beshort		4		core file,
>>>400	lelong		>0		(signal %d),
>>16	beshort		&0xff00		processor-specific,
>>18	beshort		0		no machine,
>>18	beshort		1		AT&T WE32100,
>>18	beshort		2		SPARC,
>>18	beshort		3		Intel 80386 - invalid byte order,
>>18	beshort		4		Motorola 68000,
>>18	beshort		5		Motorola 88000,
>>18	beshort		6		Intel 80486 - invalid byte order,
>>18	beshort		7		Intel 80860,
# >>18	beshort		8		MIPS,
>>18	beshort		9		Amdahl,
>>18	beshort		10		MIPS (deprecated),
>>18	beshort		11		RS6000,
>>18	beshort		15		PA-RISC,
>>18	beshort		16		nCUBE,
>>18	beshort		17		VPP500,
>>18	beshort		18		SPARC32PLUS,
>>18	beshort		20		PowerPC,
>>18	beshort		40		ARM,
>>18	beshort		43		SPARC64,
>>18	beshort		62		AMD64 - invalid byte order,
>>18	beshort		75		VAX - invalid byte order,
>>18	beshort		0x9026		Alpha,
>>20	belong		0		invalid version
>>20	belong		1		version 1
>>36	belong		1		MathCoPro/FPU/MAU Required