# $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 >>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