elf 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. #------------------------------------------------------------------------------
  2. # elf: file(1) magic for ELF executables
  3. #
  4. # We have to check the byte order flag to see what byte order all the
  5. # other stuff in the header is in.
  6. #
  7. # MIPS R3000 may also be for MIPS R2000.
  8. # What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
  9. #
  10. # updated by Daniel Quinlan (quinlan@yggdrasil.com)
  11. 0 string \177ELF ELF
  12. >4 byte 0 invalid class
  13. >4 byte 1 32-bit
  14. # only for MIPS
  15. >>18 beshort 8
  16. >>18 beshort 10
  17. >>>36 belong &0x20 N32
  18. >4 byte 2 64-bit
  19. >5 byte 0 invalid byte order
  20. >5 byte 1 LSB
  21. >>16 leshort 0 no file type,
  22. >>16 leshort 1 relocatable,
  23. >>16 leshort 2 executable,
  24. >>16 leshort 3 shared object,
  25. # Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
  26. # corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
  27. >>16 leshort 4 core file
  28. >>>(0x38+0xcc) string >\0 of '%s'
  29. >>>(0x38+0x10) lelong >0 (signal %d),
  30. # only for MIPS R3000_BE
  31. >>18 leshort 8
  32. # only for 32-bit
  33. >>>4 byte 1
  34. >>>>36 lelong&0xf0000000 0x00000000 mips-1
  35. >>>>36 lelong&0xf0000000 0x10000000 mips-2
  36. >>>>36 lelong&0xf0000000 0x20000000 mips-3
  37. >>>>36 lelong&0xf0000000 0x30000000 mips-4
  38. >>>>36 lelong&0xf0000000 0x40000000 mips-5
  39. >>>>36 lelong&0xf0000000 0x50000000 mips-6
  40. # only for 64-bit
  41. >>>4 byte 2
  42. >>>>48 lelong&0xf0000000 0x00000000 mips-1
  43. >>>>48 lelong&0xf0000000 0x10000000 mips-2
  44. >>>>48 lelong&0xf0000000 0x20000000 mips-3
  45. >>>>48 lelong&0xf0000000 0x30000000 mips-4
  46. >>>>48 lelong&0xf0000000 0x40000000 mips-5
  47. >>>>48 lelong&0xf0000000 0x50000000 mips-6
  48. >>16 leshort &0xff00 processor-specific,
  49. >>18 leshort 0 no machine,
  50. >>18 leshort 1 AT&T WE32100 - invalid byte order,
  51. >>18 leshort 2 SPARC - invalid byte order,
  52. >>18 leshort 3 Intel 80386,
  53. >>18 leshort 4 Motorola 68000 - invalid byte order,
  54. >>18 leshort 5 Motorola 88000 - invalid byte order,
  55. >>18 leshort 6 Intel 80486,
  56. >>18 leshort 7 Intel 80860,
  57. # "officially" big endian, but binutils bfd only emits magic #8 for MIPS.
  58. >>18 leshort 8 MIPS R3000_LE [bfd bug],
  59. >>18 leshort 9 Amdahl - invalid byte order,
  60. >>18 leshort 10 MIPS R3000_LE,
  61. >>18 leshort 11 RS6000 - invalid byte order,
  62. >>18 leshort 15 PA-RISC - invalid byte order,
  63. >>>50 leshort 0x0214 2.0
  64. >>>48 leshort &0x0008 (LP64),
  65. >>18 leshort 16 nCUBE,
  66. >>18 leshort 17 Fujitsu VPP500,
  67. >>18 leshort 18 SPARC32PLUS,
  68. >>18 leshort 20 PowerPC,
  69. >>18 leshort 22 IBM S/390,
  70. >>18 leshort 36 NEC V800,
  71. >>18 leshort 37 Fujitsu FR20,
  72. >>18 leshort 38 TRW RH-32,
  73. >>18 leshort 39 Motorola RCE,
  74. >>18 leshort 40 ARM,
  75. >>18 leshort 41 Alpha,
  76. >>18 leshort 42 Hitachi SH,
  77. >>18 leshort 43 SPARC V9 - invalid byte order,
  78. >>18 leshort 44 Siemens Tricore Embedded Processor,
  79. >>18 leshort 45 Argonaut RISC Core, Argonaut Technologies Inc.,
  80. >>18 leshort 46 Hitachi H8/300,
  81. >>18 leshort 47 Hitachi H8/300H,
  82. >>18 leshort 48 Hitachi H8S,
  83. >>18 leshort 49 Hitachi H8/500,
  84. >>18 leshort 50 IA-64 (Intel 64 bit architecture)
  85. >>18 leshort 51 Stanford MIPS-X,
  86. >>18 leshort 52 Motorola Coldfire,
  87. >>18 leshort 53 Motorola M68HC12,
  88. >>18 leshort 62 AMD x86-64,
  89. >>18 leshort 75 Digital VAX,
  90. >>18 leshort 0x9026 Alpha (unofficial),
  91. >>18 leshort 0xa390 IBM S/390 (obsolete),
  92. >>20 lelong 0 invalid version
  93. >>20 lelong 1 version 1
  94. >>36 lelong 1 MathCoPro/FPU/MAU Required
  95. >5 byte 2 MSB
  96. >>16 beshort 0 no file type,
  97. >>16 beshort 1 relocatable,
  98. >>16 beshort 2 executable,
  99. >>16 beshort 3 shared object,
  100. >>16 beshort 4 core file,
  101. >>>(0x38+0xcc) string >\0 of '%s'
  102. >>>(0x38+0x10) belong >0 (signal %d),
  103. # only for MIPS R3000_BE
  104. >>18 beshort 8
  105. # only for 32-bit
  106. >>>4 byte 1
  107. >>>>36 belong&0xf0000000 0x00000000 mips-1
  108. >>>>36 belong&0xf0000000 0x10000000 mips-2
  109. >>>>36 belong&0xf0000000 0x20000000 mips-3
  110. >>>>36 belong&0xf0000000 0x30000000 mips-4
  111. >>>>36 belong&0xf0000000 0x40000000 mips-5
  112. >>>>36 belong&0xf0000000 0x50000000 mips-6
  113. # only for 64-bit
  114. >>>4 byte 2
  115. >>>>48 belong&0xf0000000 0x00000000 mips-1
  116. >>>>48 belong&0xf0000000 0x10000000 mips-2
  117. >>>>48 belong&0xf0000000 0x20000000 mips-3
  118. >>>>48 belong&0xf0000000 0x30000000 mips-4
  119. >>>>48 belong&0xf0000000 0x40000000 mips-5
  120. >>>>48 belong&0xf0000000 0x50000000 mips-6
  121. >>16 beshort &0xff00 processor-specific,
  122. >>18 beshort 0 no machine,
  123. >>18 beshort 1 AT&T WE32100,
  124. >>18 beshort 2 SPARC,
  125. >>18 beshort 3 Intel 80386 - invalid byte order,
  126. >>18 beshort 4 Motorola 68000,
  127. >>18 beshort 5 Motorola 88000,
  128. >>18 beshort 6 Intel 80486 - invalid byte order,
  129. >>18 beshort 7 Intel 80860,
  130. >>18 beshort 8 MIPS R3000_BE,
  131. >>18 beshort 9 Amdahl,
  132. >>18 beshort 10 MIPS R3000_LE - invalid byte order,
  133. >>18 beshort 11 RS6000,
  134. >>18 beshort 15 PA-RISC
  135. >>>50 beshort 0x0214 2.0
  136. >>>48 beshort &0x0008 (LP64)
  137. >>18 beshort 16 nCUBE,
  138. >>18 beshort 17 Fujitsu VPP500,
  139. >>18 beshort 18 SPARC32PLUS,
  140. >>>36 belong&0xffff00 &0x000100 V8+ Required,
  141. >>>36 belong&0xffff00 &0x000200 Sun UltraSPARC1 Extensions Required,
  142. >>>36 belong&0xffff00 &0x000400 HaL R1 Extensions Required,
  143. >>>36 belong&0xffff00 &0x000800 Sun UltraSPARC3 Extensions Required,
  144. >>18 beshort 20 PowerPC or cisco 4500,
  145. >>18 beshort 21 cisco 7500,
  146. >>18 beshort 22 IBM S/390,
  147. >>18 beshort 24 cisco SVIP,
  148. >>18 beshort 25 cisco 7200,
  149. >>18 beshort 36 NEC V800 or cisco 12000,
  150. >>18 beshort 37 Fujitsu FR20,
  151. >>18 beshort 38 TRW RH-32,
  152. >>18 beshort 39 Motorola RCE,
  153. >>18 beshort 40 ARM,
  154. >>18 beshort 41 Alpha,
  155. >>18 beshort 42 Hitachi SH,
  156. >>18 beshort 43 SPARC V9,
  157. >>18 beshort 44 Siemens Tricore Embedded Processor,
  158. >>18 beshort 45 Argonaut RISC Core, Argonaut Technologies Inc.,
  159. >>18 beshort 46 Hitachi H8/300,
  160. >>18 beshort 47 Hitachi H8/300H,
  161. >>18 beshort 48 Hitachi H8S,
  162. >>18 beshort 49 Hitachi H8/500,
  163. >>18 beshort 50 Intel Merced Processor,
  164. >>18 beshort 51 Stanford MIPS-X,
  165. >>18 beshort 52 Motorola Coldfire,
  166. >>18 beshort 53 Motorola M68HC12,
  167. >>18 beshort 73 Cray NV1,
  168. >>18 beshort 75 Digital VAX,
  169. >>18 beshort 0x9026 Alpha (unofficial),
  170. >>18 beshort 0xa390 IBM S/390 (obsolete),
  171. >>20 belong 0 invalid version
  172. >>20 belong 1 version 1
  173. >>36 belong 1 MathCoPro/FPU/MAU Required
  174. >8 string >\0 (%s)
  175. >8 string \0
  176. >>7 byte 0 (SYSV)
  177. >>7 byte 1 (HP-UX)
  178. >>7 byte 2 (NetBSD)
  179. >>7 byte 3 (GNU/Linux)
  180. >>7 byte 4 (GNU/Hurd)
  181. >>7 byte 5 (86Open)
  182. >>7 byte 6 (Solaris)
  183. >>7 byte 7 (Monterey)
  184. >>7 byte 8 (IRIX)
  185. >>7 byte 9 (FreeBSD)
  186. >>7 byte 10 (Tru64)
  187. >>7 byte 11 (Novell Modesto)
  188. >>7 byte 12 (OpenBSD)
  189. >>7 byte 97 (ARM)
  190. >>7 byte 255 (embedded)