xref: /freebsd/contrib/file/magic/Magdir/elf (revision ae316d1d1cffd71ab7751f94e10118777a88e027)
1b6cee71dSXin LI
2b6cee71dSXin LI#------------------------------------------------------------------------------
3*ae316d1dSXin LI# $File: elf,v 1.91 2024/11/09 23:52:23 christos Exp $
4b6cee71dSXin LI# elf:  file(1) magic for ELF executables
5b6cee71dSXin LI#
6b6cee71dSXin LI# We have to check the byte order flag to see what byte order all the
7b6cee71dSXin LI# other stuff in the header is in.
8b6cee71dSXin LI#
9b6cee71dSXin LI# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
10b6cee71dSXin LI#
11898496eeSXin LI# https://www.sco.com/developers/gabi/latest/ch4.eheader.html
12898496eeSXin LI#
13b6cee71dSXin LI# Created by: unknown
14b6cee71dSXin LI# Modified by (1): Daniel Quinlan <quinlan@yggdrasil.com>
15b6cee71dSXin LI# Modified by (2): Peter Tobias <tobias@server.et-inf.fho-emden.de> (core support)
16b6cee71dSXin LI# Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de> (fix of core support)
17b6cee71dSXin LI# Modified by (4): <gerardo.cacciari@gmail.com> (VMS Itanium)
18b6cee71dSXin LI# Modified by (5): Matthias Urlichs <smurf@debian.org> (Listing of many architectures)
19b6cee71dSXin LI
209fc5c47fSXin LI0	name		elf-mips
219fc5c47fSXin LI>0	lelong&0xf0000000	0x00000000	MIPS-I
229fc5c47fSXin LI>0	lelong&0xf0000000	0x10000000	MIPS-II
239fc5c47fSXin LI>0	lelong&0xf0000000	0x20000000	MIPS-III
249fc5c47fSXin LI>0	lelong&0xf0000000	0x30000000	MIPS-IV
259fc5c47fSXin LI>0	lelong&0xf0000000	0x40000000	MIPS-V
269fc5c47fSXin LI>0	lelong&0xf0000000	0x50000000	MIPS32
279fc5c47fSXin LI>0	lelong&0xf0000000	0x60000000	MIPS64
289fc5c47fSXin LI>0	lelong&0xf0000000	0x70000000	MIPS32 rel2
299fc5c47fSXin LI>0	lelong&0xf0000000	0x80000000	MIPS64 rel2
309fc5c47fSXin LI>0	lelong&0xf0000000	0x90000000	MIPS32 rel6
319fc5c47fSXin LI>0	lelong&0xf0000000	0xa0000000	MIPS64 rel6
329fc5c47fSXin LI
339fc5c47fSXin LI0	name		elf-sparc
349fc5c47fSXin LI>0	lelong&0x00ffff00	0x00000100	V8+ Required,
359fc5c47fSXin LI>0	lelong&0x00ffff00	0x00000200	Sun UltraSPARC1 Extensions Required,
369fc5c47fSXin LI>0	lelong&0x00ffff00	0x00000400	HaL R1 Extensions Required,
379fc5c47fSXin LI>0	lelong&0x00ffff00	0x00000800	Sun UltraSPARC3 Extensions Required,
389fc5c47fSXin LI>0	lelong&0x3		0		total store ordering,
399fc5c47fSXin LI>0	lelong&0x3		1		partial store ordering,
409fc5c47fSXin LI>0	lelong&0x3		2		relaxed memory ordering,
419fc5c47fSXin LI
429fc5c47fSXin LI0	name		elf-pa-risc
43d38c30c0SXin LI>2	leshort		0x020b		1.0
4448c779cdSXin LI>2	leshort		0x0210		1.1
459fc5c47fSXin LI>2	leshort		0x0214		2.0
469fc5c47fSXin LI>0	leshort		&0x0008		(LP64)
479fc5c47fSXin LI
4843a5ec4eSXin LI0	name		elf-riscv
4943a5ec4eSXin LI>0	lelong&0x00000001	0x00000001	RVC,
5043a5ec4eSXin LI>0	lelong&0x00000008	0x00000008	RVE,
5143a5ec4eSXin LI>0	lelong&0x00000006	0x00000000	soft-float ABI,
5243a5ec4eSXin LI>0	lelong&0x00000006	0x00000002	single-float ABI,
5343a5ec4eSXin LI>0	lelong&0x00000006	0x00000004	double-float ABI,
5443a5ec4eSXin LI>0	lelong&0x00000006	0x00000006	quad-float ABI,
5543a5ec4eSXin LI
56b6cee71dSXin LI0	name		elf-le
57b6cee71dSXin LI>16	leshort		0		no file type,
58b6cee71dSXin LI!:mime	application/octet-stream
59b6cee71dSXin LI>16	leshort		1		relocatable,
60b6cee71dSXin LI!:mime	application/x-object
61b6cee71dSXin LI>16	leshort		2		executable,
62b6cee71dSXin LI!:mime	application/x-executable
634e22eafcSEd Maste>16	leshort		3		${x?pie executable:shared object},
644e22eafcSEd Maste
654e22eafcSEd Maste!:mime	application/x-${x?pie-executable:sharedlib}
662dc4dbb9SEitan Adler>16	leshort		4		core file,
67b6cee71dSXin LI!:mime	application/x-coredump
682dc4dbb9SEitan Adler# OS-specific
692dc4dbb9SEitan Adler>7	byte		202
702dc4dbb9SEitan Adler>>16	leshort		0xFE01		executable,
712dc4dbb9SEitan Adler!:mime	application/x-executable
72b6cee71dSXin LI# Core file detection is not reliable.
73b6cee71dSXin LI#>>>(0x38+0xcc) string	>\0		of '%s'
74b6cee71dSXin LI#>>>(0x38+0x10) lelong	>0		(signal %d),
7543a5ec4eSXin LI>16	leshort		&0xff00
7643a5ec4eSXin LI>>18	leshort		!8		processor-specific,
7743a5ec4eSXin LI>>18	leshort		8
7843a5ec4eSXin LI>>>16	leshort		0xFF80		PlayStation 2 IOP module,
7943a5ec4eSXin LI!:mime	application/x-sharedlib
8043a5ec4eSXin LI>>>16	leshort		!0xFF80		processor-specific,
81b6cee71dSXin LI>18	clear		x
82b6cee71dSXin LI>18	leshort		0		no machine,
83b6cee71dSXin LI>18	leshort		1		AT&T WE32100,
84b6cee71dSXin LI>18	leshort		2		SPARC,
85*ae316d1dSXin LI>18	leshort		3		Intel i386,
86b6cee71dSXin LI>18	leshort		4		Motorola m68k,
87b6cee71dSXin LI>>4	byte		1
88b6cee71dSXin LI>>>36	lelong		&0x01000000	68000,
89b6cee71dSXin LI>>>36	lelong		&0x00810000	CPU32,
90b6cee71dSXin LI>>>36	lelong		0		68020,
91b6cee71dSXin LI>18	leshort		5		Motorola m88k,
92*ae316d1dSXin LI>18	leshort		6		Intel i486,
93*ae316d1dSXin LI>18	leshort		7		Intel i860,
94b6cee71dSXin LI# The official e_machine number for MIPS is now #8, regardless of endianness.
95b6cee71dSXin LI# The second number (#10) will be deprecated later. For now, we still
96b6cee71dSXin LI# say something if #10 is encountered, but only gory details for #8.
97b6cee71dSXin LI>18	leshort		8		MIPS,
98b6cee71dSXin LI>>4	byte		1
99b6cee71dSXin LI>>>36	lelong		&0x20		N32
100b6cee71dSXin LI>18	leshort		10		MIPS,
101b6cee71dSXin LI>>4	byte		1
102b6cee71dSXin LI>>>36	lelong		&0x20		N32
103b6cee71dSXin LI>18	leshort		8
104b6cee71dSXin LI# only for 32-bit
105b6cee71dSXin LI>>4	byte		1
1069fc5c47fSXin LI>>>36	use		elf-mips
107b6cee71dSXin LI# only for 64-bit
108b6cee71dSXin LI>>4	byte		2
1099fc5c47fSXin LI>>>48	use		elf-mips
110b6cee71dSXin LI>18	leshort		9		Amdahl,
111b6cee71dSXin LI>18	leshort		10		MIPS (deprecated),
112b6cee71dSXin LI>18	leshort		11		RS6000,
113b6cee71dSXin LI>18	leshort		15		PA-RISC,
114b6cee71dSXin LI# only for 32-bit
115b6cee71dSXin LI>>4	byte		1
1169fc5c47fSXin LI>>>36	use		elf-pa-risc
117b6cee71dSXin LI# only for 64-bit
118b6cee71dSXin LI>>4	byte		2
1199fc5c47fSXin LI>>>48	use		elf-pa-risc
120b6cee71dSXin LI>18	leshort		16		nCUBE,
121b6cee71dSXin LI>18	leshort		17		Fujitsu VPP500,
122b6cee71dSXin LI>18	leshort		18		SPARC32PLUS,
123b6cee71dSXin LI# only for 32-bit
124b6cee71dSXin LI>>4	byte		1
1259fc5c47fSXin LI>>>36	use		elf-sparc
126b6cee71dSXin LI>18	leshort		19		Intel 80960,
127b6cee71dSXin LI>18	leshort		20		PowerPC or cisco 4500,
128b6cee71dSXin LI>18	leshort		21		64-bit PowerPC or cisco 7500,
129c4e127e2SLeandro Lupori>>48	lelong		0		Unspecified or Power ELF V1 ABI,
130c4e127e2SLeandro Lupori>>48	lelong		1		Power ELF V1 ABI,
131c4e127e2SLeandro Lupori>>48	lelong		2		OpenPOWER ELF V2 ABI,
132b6cee71dSXin LI>18	leshort		22		IBM S/390,
133b6cee71dSXin LI>18	leshort		23		Cell SPU,
134b6cee71dSXin LI>18	leshort		24		cisco SVIP,
135b6cee71dSXin LI>18	leshort		25		cisco 7200,
136b6cee71dSXin LI>18	leshort		36		NEC V800 or cisco 12000,
137b6cee71dSXin LI>18	leshort		37		Fujitsu FR20,
138b6cee71dSXin LI>18	leshort		38		TRW RH-32,
139b6cee71dSXin LI>18	leshort		39		Motorola RCE,
140b6cee71dSXin LI>18	leshort		40		ARM,
141b6cee71dSXin LI>>4	byte		1
142b6cee71dSXin LI>>>36	lelong&0xff000000	0x04000000	EABI4
143b6cee71dSXin LI>>>36	lelong&0xff000000	0x05000000	EABI5
144b6cee71dSXin LI>>>36	lelong		&0x00800000	BE8
145b6cee71dSXin LI>>>36	lelong		&0x00400000	LE8
146b6cee71dSXin LI>18	leshort		41		Alpha,
147b6cee71dSXin LI>18	leshort		42		Renesas SH,
148b6cee71dSXin LI>18	leshort		43		SPARC V9,
149b6cee71dSXin LI>>4	byte		2
1509fc5c47fSXin LI>>>48	use		elf-sparc
151b6cee71dSXin LI>18	leshort		44		Siemens Tricore Embedded Processor,
152b6cee71dSXin LI>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
153b6cee71dSXin LI>18	leshort		46		Renesas H8/300,
154b6cee71dSXin LI>18	leshort		47		Renesas H8/300H,
155b6cee71dSXin LI>18	leshort		48		Renesas H8S,
156b6cee71dSXin LI>18	leshort		49		Renesas H8/500,
157b6cee71dSXin LI>18	leshort		50		IA-64,
158b6cee71dSXin LI>18	leshort		51		Stanford MIPS-X,
159b6cee71dSXin LI>18	leshort		52		Motorola Coldfire,
160b6cee71dSXin LI>18	leshort		53		Motorola M68HC12,
161b6cee71dSXin LI>18	leshort		54		Fujitsu MMA,
162b6cee71dSXin LI>18	leshort		55		Siemens PCP,
163b6cee71dSXin LI>18	leshort		56		Sony nCPU,
164b6cee71dSXin LI>18	leshort		57		Denso NDR1,
165b6cee71dSXin LI>18	leshort		58		Start*Core,
166b6cee71dSXin LI>18	leshort		59		Toyota ME16,
167b6cee71dSXin LI>18	leshort		60		ST100,
168b6cee71dSXin LI>18	leshort		61		Tinyj emb.,
169b6cee71dSXin LI>18	leshort		62		x86-64,
170b6cee71dSXin LI>18	leshort		63		Sony DSP,
171b6cee71dSXin LI>18	leshort		64		DEC PDP-10,
172b6cee71dSXin LI>18	leshort		65		DEC PDP-11,
173b6cee71dSXin LI>18	leshort		66		FX66,
174b6cee71dSXin LI>18	leshort		67		ST9+ 8/16 bit,
175b6cee71dSXin LI>18	leshort		68		ST7 8 bit,
176b6cee71dSXin LI>18	leshort		69		MC68HC16,
177b6cee71dSXin LI>18	leshort		70		MC68HC11,
178b6cee71dSXin LI>18	leshort		71		MC68HC08,
179b6cee71dSXin LI>18	leshort		72		MC68HC05,
180b6cee71dSXin LI>18	leshort		73		SGI SVx or Cray NV1,
181b6cee71dSXin LI>18	leshort		74		ST19 8 bit,
182b6cee71dSXin LI>18	leshort		75		Digital VAX,
183b6cee71dSXin LI>18	leshort		76		Axis cris,
184b6cee71dSXin LI>18	leshort		77		Infineon 32-bit embedded,
185b6cee71dSXin LI>18	leshort		78		Element 14 64-bit DSP,
186b6cee71dSXin LI>18	leshort		79		LSI Logic 16-bit DSP,
187b6cee71dSXin LI>18	leshort		80		MMIX,
188b6cee71dSXin LI>18	leshort		81		Harvard machine-independent,
189b6cee71dSXin LI>18	leshort		82		SiTera Prism,
190b6cee71dSXin LI>18	leshort		83		Atmel AVR 8-bit,
191b6cee71dSXin LI>18	leshort		84		Fujitsu FR30,
192b6cee71dSXin LI>18	leshort		85		Mitsubishi D10V,
193b6cee71dSXin LI>18	leshort		86		Mitsubishi D30V,
194b6cee71dSXin LI>18	leshort		87		NEC v850,
195b6cee71dSXin LI>18	leshort		88		Renesas M32R,
196b6cee71dSXin LI>18	leshort		89		Matsushita MN10300,
197b6cee71dSXin LI>18	leshort		90		Matsushita MN10200,
198b6cee71dSXin LI>18	leshort		91		picoJava,
199b6cee71dSXin LI>18	leshort		92		OpenRISC,
20043a5ec4eSXin LI>18	leshort		93		Synopsys ARCompact ARC700 cores,
201b6cee71dSXin LI>18	leshort		94		Tensilica Xtensa,
202b6cee71dSXin LI>18	leshort		95		Alphamosaic VideoCore,
203b6cee71dSXin LI>18	leshort		96		Thompson Multimedia,
204b6cee71dSXin LI>18	leshort		97		NatSemi 32k,
205b6cee71dSXin LI>18	leshort		98		Tenor Network TPC,
206b6cee71dSXin LI>18	leshort		99		Trebia SNP 1000,
207b6cee71dSXin LI>18	leshort		100		STMicroelectronics ST200,
208b6cee71dSXin LI>18	leshort		101		Ubicom IP2022,
209b6cee71dSXin LI>18	leshort		102		MAX Processor,
210b6cee71dSXin LI>18	leshort		103		NatSemi CompactRISC,
211b6cee71dSXin LI>18	leshort		104		Fujitsu F2MC16,
212b6cee71dSXin LI>18	leshort		105		TI msp430,
213b6cee71dSXin LI>18	leshort		106		Analog Devices Blackfin,
214b6cee71dSXin LI>18	leshort		107		S1C33 Family of Seiko Epson,
215b6cee71dSXin LI>18	leshort		108		Sharp embedded,
216b6cee71dSXin LI>18	leshort		109		Arca RISC,
217b6cee71dSXin LI>18	leshort		110		PKU-Unity Ltd.,
218b6cee71dSXin LI>18	leshort		111		eXcess: 16/32/64-bit,
219b6cee71dSXin LI>18	leshort		112		Icera Deep Execution Processor,
220b6cee71dSXin LI>18	leshort		113		Altera Nios II,
221b6cee71dSXin LI>18	leshort		114		NatSemi CRX,
222b6cee71dSXin LI>18	leshort		115		Motorola XGATE,
223b6cee71dSXin LI>18	leshort		116		Infineon C16x/XC16x,
224b6cee71dSXin LI>18	leshort		117		Renesas M16C series,
225b6cee71dSXin LI>18	leshort		118		Microchip dsPIC30F,
226b6cee71dSXin LI>18	leshort		119		Freescale RISC core,
227b6cee71dSXin LI>18	leshort		120		Renesas M32C series,
228b6cee71dSXin LI>18	leshort		131		Altium TSK3000 core,
229b6cee71dSXin LI>18	leshort		132		Freescale RS08,
230b6cee71dSXin LI>18	leshort		134		Cyan Technology eCOG2,
231b6cee71dSXin LI>18	leshort		135		Sunplus S+core7 RISC,
232b6cee71dSXin LI>18	leshort		136		New Japan Radio (NJR) 24-bit DSP,
233b6cee71dSXin LI>18	leshort		137		Broadcom VideoCore III,
234b6cee71dSXin LI>18	leshort		138		LatticeMico32,
235b6cee71dSXin LI>18	leshort		139		Seiko Epson C17 family,
236b6cee71dSXin LI>18	leshort		140		TI TMS320C6000 DSP family,
237b6cee71dSXin LI>18	leshort		141		TI TMS320C2000 DSP family,
238b6cee71dSXin LI>18	leshort		142		TI TMS320C55x DSP family,
23943a5ec4eSXin LI>18	leshort		144		TI Programmable Realtime Unit
240b6cee71dSXin LI>18	leshort		160		STMicroelectronics 64bit VLIW DSP,
241b6cee71dSXin LI>18	leshort		161		Cypress M8C,
242b6cee71dSXin LI>18	leshort		162		Renesas R32C series,
243b6cee71dSXin LI>18	leshort		163		NXP TriMedia family,
244b6cee71dSXin LI>18	leshort		164		QUALCOMM DSP6,
245b6cee71dSXin LI>18	leshort		165		Intel 8051 and variants,
246b6cee71dSXin LI>18	leshort		166		STMicroelectronics STxP7x family,
247b6cee71dSXin LI>18	leshort		167		Andes embedded RISC,
248b6cee71dSXin LI>18	leshort		168		Cyan eCOG1X family,
249b6cee71dSXin LI>18	leshort		169		Dallas MAXQ30,
250b6cee71dSXin LI>18	leshort		170		New Japan Radio (NJR) 16-bit DSP,
251b6cee71dSXin LI>18	leshort		171		M2000 Reconfigurable RISC,
252b6cee71dSXin LI>18	leshort		172		Cray NV2 vector architecture,
253b6cee71dSXin LI>18	leshort		173		Renesas RX family,
254b6cee71dSXin LI>18	leshort		174		META,
255b6cee71dSXin LI>18	leshort		175		MCST Elbrus,
256b6cee71dSXin LI>18	leshort		176		Cyan Technology eCOG16 family,
257b6cee71dSXin LI>18	leshort		177		NatSemi CompactRISC,
258b6cee71dSXin LI>18	leshort		178		Freescale Extended Time Processing Unit,
259b6cee71dSXin LI>18	leshort		179		Infineon SLE9X,
260b6cee71dSXin LI>18	leshort		180		Intel L1OM,
261b6cee71dSXin LI>18	leshort		181		Intel K1OM,
262b6cee71dSXin LI>18	leshort		183		ARM aarch64,
263b6cee71dSXin LI>18	leshort		185		Atmel 32-bit family,
264b6cee71dSXin LI>18	leshort		186		STMicroeletronics STM8 8-bit,
265b6cee71dSXin LI>18	leshort		187		Tilera TILE64,
266b6cee71dSXin LI>18	leshort		188		Tilera TILEPro,
267b6cee71dSXin LI>18	leshort		189		Xilinx MicroBlaze 32-bit RISC,
268b6cee71dSXin LI>18	leshort		190		NVIDIA CUDA architecture,
269b6cee71dSXin LI>18	leshort		191		Tilera TILE-Gx,
27043a5ec4eSXin LI>18	leshort		195		Synopsys ARCv2/HS3x/HS4x cores,
271b6cee71dSXin LI>18	leshort		197		Renesas RL78 family,
272b6cee71dSXin LI>18	leshort		199		Renesas 78K0R,
273b6cee71dSXin LI>18	leshort		200		Freescale 56800EX,
274b6cee71dSXin LI>18	leshort		201		Beyond BA1,
275b6cee71dSXin LI>18	leshort		202		Beyond BA2,
276b6cee71dSXin LI>18	leshort		203		XMOS xCORE,
277b6cee71dSXin LI>18	leshort		204		Microchip 8-bit PIC(r),
278b6cee71dSXin LI>18	leshort		210		KM211 KM32,
279b6cee71dSXin LI>18	leshort		211		KM211 KMX32,
280b6cee71dSXin LI>18	leshort		212		KM211 KMX16,
281b6cee71dSXin LI>18	leshort		213		KM211 KMX8,
282b6cee71dSXin LI>18	leshort		214		KM211 KVARC,
283b6cee71dSXin LI>18	leshort		215		Paneve CDP,
284b6cee71dSXin LI>18	leshort		216		Cognitive Smart Memory,
285b6cee71dSXin LI>18	leshort		217		iCelero CoolEngine,
286b6cee71dSXin LI>18	leshort		218		Nanoradio Optimized RISC,
287898496eeSXin LI>18	leshort		219		CSR Kalimba architecture family
288898496eeSXin LI>18	leshort		220		Zilog Z80
289898496eeSXin LI>18	leshort		221		Controls and Data Services VISIUMcore processor
290898496eeSXin LI>18	leshort		222		FTDI Chip FT32 high performance 32-bit RISC architecture
291898496eeSXin LI>18	leshort		223		Moxie processor family
292898496eeSXin LI>18	leshort		224		AMD GPU architecture
293c2931133SXin LI>18	leshort		243		UCB RISC-V,
29443a5ec4eSXin LI# only for 32-bit
29543a5ec4eSXin LI>>4	byte		1
29643a5ec4eSXin LI>>>36	use		elf-riscv
29743a5ec4eSXin LI# only for 64-bit
29843a5ec4eSXin LI>>4	byte		2
29943a5ec4eSXin LI>>>48	use		elf-riscv
30043a5ec4eSXin LI>18	leshort		244		Lanai 32-bit processor,
30143a5ec4eSXin LI>18	leshort		245		CEVA Processor Architecture Family,
30243a5ec4eSXin LI>18	leshort		246		CEVA X2 Processor Family,
30348c779cdSXin LI>18	leshort		247		eBPF,
30443a5ec4eSXin LI>18	leshort		248		Graphcore Intelligent Processing Unit,
30543a5ec4eSXin LI>18	leshort		249		Imagination Technologies,
30643a5ec4eSXin LI>18	leshort		250		Netronome Flow Processor,
30743a5ec4eSXin LI>18	leshort		251             NEC Vector Engine,
30843a5ec4eSXin LI>18	leshort		252		C-SKY processor family,
30943a5ec4eSXin LI>18	leshort		253		Synopsys ARCv3 64-bit ISA/HS6x cores,
31043a5ec4eSXin LI>18	leshort		254		MOS Technology MCS 6502 processor,
31143a5ec4eSXin LI>18	leshort		255		Synopsys ARCv3 32-bit,
31243a5ec4eSXin LI>18	leshort		256		Kalray VLIW core of the MPPA family,
31343a5ec4eSXin LI>18	leshort		257		WDC 65816/65C816,
31443a5ec4eSXin LI>18	leshort		258		LoongArch,
31543a5ec4eSXin LI>18	leshort		259		ChipON KungFu32,
316b6cee71dSXin LI>18	leshort		0x1057		AVR (unofficial),
317b6cee71dSXin LI>18	leshort		0x1059		MSP430 (unofficial),
318b6cee71dSXin LI>18	leshort		0x1223		Adapteva Epiphany (unofficial),
319b6cee71dSXin LI>18	leshort		0x2530		Morpho MT (unofficial),
320b6cee71dSXin LI>18	leshort		0x3330		FR30 (unofficial),
321b6cee71dSXin LI>18	leshort		0x3426		OpenRISC (obsolete),
322b6cee71dSXin LI>18	leshort		0x4688		Infineon C166 (unofficial),
323b6cee71dSXin LI>18	leshort		0x5441		Cygnus FRV (unofficial),
324b6cee71dSXin LI>18	leshort		0x5aa5		DLX (unofficial),
325b6cee71dSXin LI>18	leshort		0x7650		Cygnus D10V (unofficial),
326b6cee71dSXin LI>18	leshort		0x7676		Cygnus D30V (unofficial),
327b6cee71dSXin LI>18	leshort		0x8217		Ubicom IP2xxx (unofficial),
328b6cee71dSXin LI>18	leshort		0x8472		OpenRISC (obsolete),
329b6cee71dSXin LI>18	leshort		0x9025		Cygnus PowerPC (unofficial),
330b6cee71dSXin LI>18	leshort		0x9026		Alpha (unofficial),
331b6cee71dSXin LI>18	leshort		0x9041		Cygnus M32R (unofficial),
332b6cee71dSXin LI>18	leshort		0x9080		Cygnus V850 (unofficial),
333b6cee71dSXin LI>18	leshort		0xa390		IBM S/390 (obsolete),
334b6cee71dSXin LI>18	leshort		0xabc7		Old Xtensa (unofficial),
335b6cee71dSXin LI>18	leshort		0xad45		xstormy16 (unofficial),
336b6cee71dSXin LI>18	leshort		0xbaab		Old MicroBlaze (unofficial),,
337b6cee71dSXin LI>18	leshort		0xbeef		Cygnus MN10300 (unofficial),
338b6cee71dSXin LI>18	leshort		0xdead		Cygnus MN10200 (unofficial),
339b6cee71dSXin LI>18	leshort		0xf00d		Toshiba MeP (unofficial),
340b6cee71dSXin LI>18	leshort		0xfeb0		Renesas M32C (unofficial),
341b6cee71dSXin LI>18	leshort		0xfeba		Vitesse IQ2000 (unofficial),
342b6cee71dSXin LI>18	leshort		0xfebb		NIOS (unofficial),
343b6cee71dSXin LI>18	leshort		0xfeed		Moxie (unofficial),
344b6cee71dSXin LI>18	default		x
34543a5ec4eSXin LI>>18	leshort		x		*unknown arch %#x*
346b6cee71dSXin LI>20	lelong		0		invalid version
347b6cee71dSXin LI>20	lelong		1		version 1
348b6cee71dSXin LI
349b6cee71dSXin LI0	string		\177ELF		ELF
350b6cee71dSXin LI!:strength *2
351b6cee71dSXin LI>4	byte		0		invalid class
352b6cee71dSXin LI>4	byte		1		32-bit
353b6cee71dSXin LI>4	byte		2		64-bit
354b6cee71dSXin LI>5	byte		0		invalid byte order
355b6cee71dSXin LI>5	byte		1		LSB
356b6cee71dSXin LI>>0	use		elf-le
357b6cee71dSXin LI>5	byte		2		MSB
358b6cee71dSXin LI>>0	use		\^elf-le
359282e23f0SXin LI>7	byte		0		(SYSV)
360282e23f0SXin LI>7	byte		1		(HP-UX)
361282e23f0SXin LI>7	byte		2		(NetBSD)
362282e23f0SXin LI>7	byte		3		(GNU/Linux)
363282e23f0SXin LI>7	byte		4		(GNU/Hurd)
364282e23f0SXin LI>7	byte		5		(86Open)
365282e23f0SXin LI>7	byte		6		(Solaris)
366282e23f0SXin LI>7	byte		7		(Monterey)
367282e23f0SXin LI>7	byte		8		(IRIX)
368282e23f0SXin LI>7	byte		9		(FreeBSD)
369282e23f0SXin LI>7	byte		10		(Tru64)
370282e23f0SXin LI>7	byte		11		(Novell Modesto)
371282e23f0SXin LI>7	byte		12		(OpenBSD)
372282e23f0SXin LI>7	byte		13		(OpenVMS)
373282e23f0SXin LI>7	byte		14		(HP NonStop Kernel)
374282e23f0SXin LI>7	byte		15		(AROS Research Operating System)
375282e23f0SXin LI>7	byte		16		(FenixOS)
376282e23f0SXin LI>7	byte		17		(Nuxi CloudABI)
377282e23f0SXin LI>7	byte		97		(ARM)
378*ae316d1dSXin LI>7	byte		102		(Cell LV2)
3792dc4dbb9SEitan Adler>7	byte		202		(Cafe OS)
380282e23f0SXin LI>7	byte		255		(embedded)
381*ae316d1dSXin LI
382*ae316d1dSXin LI# SELF Signed ELF used on the playstation
383*ae316d1dSXin LI# https://www.psdevwiki.com/ps4/SELF_File_Format#make_fself_by_flatz
384*ae316d1dSXin LI# https://www.psdevwiki.com/ps3/SELF_-_SPRX
385*ae316d1dSXin LI0	lelong		0x4F153D1D
386*ae316d1dSXin LI>4	lelong		0x00010112	PS4 Signed ELF file
387*ae316d1dSXin LI>8	byte		1		\b, SELF/SPRX signed-elf/prx
388*ae316d1dSXin LI>8	byte		2		\b, SRVK signed-revoke-list
389*ae316d1dSXin LI>8	byte		3		\b, SPKG signed-package
390*ae316d1dSXin LI>8	byte		4		\b, SSPP signed-security-policy-profile
391*ae316d1dSXin LI>8	byte		5		\b, SDIFF signed-diff
392*ae316d1dSXin LI>8	byte		6		\b, SPSFO signed-param-sfo
393*ae316d1dSXin LI>9	byte&0xf0	x		\b, version %#x
394*ae316d1dSXin LI>9	byte&0x0f	4		\b, game
395*ae316d1dSXin LI>9	byte&0x0f	5		\b, module
396*ae316d1dSXin LI>9	byte&0x0f	6		\b, video app
397*ae316d1dSXin LI>9	byte&0x0f	8		\b, System/EX application
398*ae316d1dSXin LI>9	byte&0x0f	9		\b, System/EX module/dll
399*ae316d1dSXin LI#>12	leshort		x		\b, header size %d
400*ae316d1dSXin LI#>14	leshort		x		\b, signature size %d
401*ae316d1dSXin LI#>16	lelong		x		\b, file size %d
402*ae316d1dSXin LI#>18	leshort		x		\b, number of segments %d
403*ae316d1dSXin LI#>20	leshort		22
404