Module: ELFTools::Constants::EM

Included in:
ELFTools::Constants
Defined in:
lib/elftools/constants.rb

Overview

These constants define the various ELF target machines.

Constant Summary collapse

EM_NONE =

none

0
EM_M32 =

AT&T WE 32100

1
EM_SPARC =

SPARC

2
EM_386 =

Intel 80386

3
EM_68K =

Motorola 68000

4
EM_88K =

Motorola 88000

5
EM_486 =

Intel 80486

6
EM_860 =

Intel 80860

7
EM_MIPS =

MIPS R3000 (officially, big-endian only)

8
EM_S370 =

IBM System/370

9
EM_MIPS_RS3_LE =

Next two are historical and binaries and modules of these types will be rejected by Linux.

10
EM_MIPS_RS4_BE =

MIPS R3000 little-endian

10
EM_PARISC =

MIPS R4000 big-endian

15
EM_VPP500 =

HPPA

17
EM_SPARC32PLUS =

Fujitsu VPP500 (also some older versions of PowerPC)

18
EM_960 =

Sun’s “v8plus”

19
EM_PPC =

Intel 80960

20
EM_PPC64 =

PowerPC

21
EM_S390 =

PowerPC64

22
EM_SPU =

IBM S/390

23
EM_V800 =

Cell BE SPU

36
EM_FR20 =

NEC V800 series

37
EM_RH32 =

Fujitsu FR20

38
EM_RCE =

TRW RH32

39
EM_ARM =

Motorola M*Core

40
EM_SH =

ARM 32 bit

42
EM_SPARCV9 =

SuperH

43
EM_TRICORE =

SPARC v9 64-bit

44
EM_ARC =

Siemens Tricore embedded processor

45
EM_H8_300 =

ARC Cores

46
EM_H8_300H =

Renesas H8/300

47
EM_H8S =

Renesas H8/300H

48
EM_H8_500 =

Renesas H8S

49
EM_IA_64 =

Renesas H8/500H

50
EM_MIPS_X =

HP/Intel IA-64

51
EM_COLDFIRE =

Stanford MIPS-X

52
EM_68HC12 =

Motorola Coldfire

53
EM_MMA =

Motorola M68HC12

54
EM_PCP =

Fujitsu Multimedia Accelerator

55
EM_NCPU =

Siemens PCP

56
EM_NDR1 =

Sony nCPU embedded RISC processor

57
EM_STARCORE =

Denso NDR1 microprocessor

58
EM_ME16 =

Motorola Star*Core processor

59
EM_ST100 =

Toyota ME16 processor

60
EM_TINYJ =

STMicroelectronics ST100 processor

61
EM_X86_64 =

Advanced Logic Corp. TinyJ embedded processor

62
EM_PDSP =

AMD x86-64

63
EM_PDP10 =

Sony DSP Processor

64
EM_PDP11 =

Digital Equipment Corp. PDP-10

65
EM_FX66 =

Digital Equipment Corp. PDP-11

66
EM_ST9PLUS =

Siemens FX66 microcontroller

67
EM_ST7 =

STMicroelectronics ST9+ 8/16 bit microcontroller

68
EM_68HC16 =

STMicroelectronics ST7 8-bit microcontroller

69
EM_68HC11 =

Motorola MC68HC16 Microcontroller

70
EM_68HC08 =

Motorola MC68HC11 Microcontroller

71
EM_68HC05 =

Motorola MC68HC08 Microcontroller

72
EM_SVX =

Motorola MC68HC05 Microcontroller

73
EM_ST19 =

Silicon Graphics SVx

74
EM_VAX =

STMicroelectronics ST19 8-bit cpu

75
EM_CRIS =

Digital VAX

76
EM_JAVELIN =

Axis Communications 32-bit embedded processor

77
EM_FIREPATH =

Infineon Technologies 32-bit embedded cpu

78
EM_ZSP =

Element 14 64-bit DSP processor

79
EM_MMIX =

LSI Logic’s 16-bit DSP processor

80
EM_HUANY =

Donald Knuth’s educational 64-bit processor

81
EM_PRISM =

Harvard’s machine-independent format

82
EM_AVR =

SiTera Prism

83
EM_FR30 =

Atmel AVR 8-bit microcontroller

84
EM_D10V =

Fujitsu FR30

85
EM_D30V =

Mitsubishi D10V

86
EM_V850 =

Mitsubishi D30V

87
EM_M32R =

Renesas V850

88
EM_MN10300 =

Renesas M32R

89
EM_MN10200 =

Matsushita MN10300

90
EM_PJ =

Matsushita MN10200

91
EM_OPENRISC =

picoJava

92
EM_ARC_COMPACT =

OpenRISC 32-bit embedded processor

93
EM_XTENSA =

ARC International ARCompact processor

94
EM_VIDEOCORE =

Tensilica Xtensa Architecture

95
EM_TMM_GPP =

Alphamosaic VideoCore processor

96
EM_NS32K =

Thompson Multimedia General Purpose Processor

97
EM_TPC =

National Semiconductor 32000 series

98
EM_SNP1K =

Tenor Network TPC processor

99
EM_ST200 =

Trebia SNP 1000 processor

100
EM_IP2K =

STMicroelectronics ST200 microcontroller

101
EM_MAX =

Ubicom IP2022 micro controller

102
EM_CR =

MAX Processor

103
EM_F2MC16 =

National Semiconductor CompactRISC

104
EM_MSP430 =

Fujitsu F2MC16

105
EM_BLACKFIN =

TI msp430 micro controller

106
EM_SE_C33 =

ADI Blackfin Processor

107
EM_SEP =

S1C33 Family of Seiko Epson processors

108
EM_ARCA =

Sharp embedded microprocessor

109
EM_UNICORE =

Arca RISC Microprocessor

110
EM_EXCESS =

Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University

111
EM_DXP =

eXcess: 16/32/64-bit configurable embedded CPU

112
EM_ALTERA_NIOS2 =

Icera Semiconductor Inc. Deep Execution Processor

113
EM_CRX =

Altera Nios II soft-core processor

114
EM_XGATE =

National Semiconductor CRX

115
EM_C116 =

Motorola XGATE embedded processor

116
EM_M16C =

Infineon C16x/XC16x processor

117
EM_DSPIC30F =

Renesas M16C series microprocessors

118
EM_CE =

Microchip Technology dsPIC30F Digital Signal Controller

119
EM_M32C =

Freescale Communication Engine RISC core

120
EM_TSK3000 =

Freescale Communication Engine RISC core

131
EM_RS08 =

Altium TSK3000 core

132
EM_SHARC =

Freescale RS08 embedded processor

133
EM_ECOG2 =

Analog Devices SHARC family of 32-bit DSP processors

134
EM_SCORE7 =

Cyan Technology eCOG2 microprocessor

135
EM_DSP24 =

Sunplus S+core7 RISC processor

136
EM_VIDEOCORE3 =

New Japan Radio (NJR) 24-bit DSP Processor

137
EM_LATTICEMICO32 =

Broadcom VideoCore III processor

138
EM_SE_C17 =

RISC processor for Lattice FPGA architecture

139
EM_TI_C6000 =

Seiko Epson C17 family

140
EM_TI_C2000 =

The Texas Instruments TMS320C6000 DSP family

141
EM_TI_C5500 =

The Texas Instruments TMS320C2000 DSP family

142
EM_TI_ARP32 =

The Texas Instruments TMS320C55x DSP family

143
EM_TI_PRU =

Texas Instruments Application Specific RISC Processor, 32bit fetch

144
EM_MMDSP_PLUS =

Texas Instruments Programmable Realtime Unit

160
EM_CYPRESS_M8C =

STMicroelectronics 64bit VLIW Data Signal Processor

161
EM_R32C =

Cypress M8C microprocessor

162
EM_TRIMEDIA =

Renesas R32C series microprocessors

163
EM_QDSP6 =

NXP Semiconductors TriMedia architecture family

164
EM_8051 =

QUALCOMM DSP6 Processor

165
EM_STXP7X =

Intel 8051 and variants

166
EM_NDS32 =

STMicroelectronics STxP7x family

167
EM_ECOG1 =

Andes Technology compact code size embedded RISC processor family

168
EM_ECOG1X =

Cyan Technology eCOG1X family

168
EM_MAXQ30 =

Cyan Technology eCOG1X family

169
EM_XIMO16 =

Dallas Semiconductor MAXQ30 Core Micro-controllers

170
EM_MANIK =

New Japan Radio (NJR) 16-bit DSP Processor

171
EM_CRAYNV2 =

M2000 Reconfigurable RISC Microprocessor

172
EM_RX =

Cray Inc. NV2 vector architecture

173
EM_METAG =

Renesas RX family

174
EM_MCST_ELBRUS =

Imagination Technologies Meta processor architecture

175
EM_ECOG16 =

MCST Elbrus general purpose hardware architecture

176
EM_CR16 =

Cyan Technology eCOG16 family

177
EM_ETPU =

National Semiconductor CompactRISC 16-bit processor

178
EM_SLE9X =

Freescale Extended Time Processing Unit

179
EM_L1OM =

Infineon Technologies SLE9X core

180
EM_K1OM =

Intel L1OM

181
EM_AARCH64 =

Intel K1OM

183
EM_AVR32 =

ARM 64 bit

185
EM_STM8 =

Atmel Corporation 32-bit microprocessor family

186
EM_TILE64 =

STMicroeletronics STM8 8-bit microcontroller

187
EM_TILEPRO =

Tilera TILE64 multicore architecture family

188
EM_MICROBLAZE =

Tilera TILEPro

189
EM_CUDA =

Xilinx MicroBlaze

190
EM_TILEGX =

NVIDIA CUDA architecture

191
EM_CLOUDSHIELD =

Tilera TILE-Gx

192
EM_COREA_1ST =

CloudShield architecture family

193
EM_COREA_2ND =

KIPO-KAIST Core-A 1st generation processor family

194
EM_ARC_COMPACT2 =

KIPO-KAIST Core-A 2nd generation processor family

195
EM_OPEN8 =

Synopsys ARCompact V2

196
EM_RL78 =

Open8 8-bit RISC soft processor core

197
EM_VIDEOCORE5 =

Renesas RL78 family

198
EM_78K0R =

Broadcom VideoCore V processor

199
EM_56800EX =

Renesas 78K0R

200
EM_BA1 =

Freescale 56800EX Digital Signal Controller (DSC)

201
EM_BA2 =

Beyond BA1 CPU architecture

202
EM_XCORE =

Beyond BA2 CPU architecture

203
EM_MCHP_PIC =

XMOS xCORE processor family

204
EM_INTELGT =

Microchip 8-bit PIC® family

205
EM_KM32 =

Intel Graphics Technology

210
EM_KMX32 =

KM211 KM32 32-bit processor

211
EM_KMX16 =

KM211 KMX32 32-bit processor

212
EM_KMX8 =

KM211 KMX16 16-bit processor

213
EM_KVARC =

KM211 KMX8 8-bit processor

214
EM_CDP =

KM211 KVARC processor

215
EM_COGE =

Paneve CDP architecture family

216
EM_COOL =

Cognitive Smart Memory Processor

217
EM_NORC =

Bluechip Systems CoolEngine

218
EM_CSR_KALIMBA =

Nanoradio Optimized RISC

219
EM_Z80 =

CSR Kalimba architecture family

220
EM_VISIUM =

Zilog Z80

221
EM_FT32 =

Controls and Data Services VISIUMcore processor

222
EM_MOXIE =

FTDI Chip FT32 high performance 32-bit RISC architecture

223
EM_AMDGPU =

Moxie processor family

224
EM_LANAI =

AMD GPU architecture

244
EM_CEVA =

Lanai 32-bit processor

245
EM_CEVA_X2 =

CEVA Processor Architecture Family

246
EM_BPF =

CEVA X2 Processor Family

247
EM_GRAPHCORE_IPU =

Linux BPF - in-kernel virtual machine

248
EM_IMG1 =

Graphcore Intelligent Processing Unit

249
EM_NFP =

Imagination Technologies

250
EM_VE =

Netronome Flow Processor (NFP)

251
EM_CSKY =

NEC Vector Engine

252
EM_ARC_COMPACT3_64 =

C-SKY processor family

253
EM_MCS6502 =

Synopsys ARCv2.3 64-bit

254
EM_ARC_COMPACT3 =

MOS Technology MCS 6502 processor

255
EM_KVX =

Synopsys ARCv2.3 32-bit

256
EM_65816 =

Kalray VLIW core of the MPPA processor family

257
EM_LOONGARCH =

WDC 65816/65C816

258
EM_KF32 =

LoongArch

259
EM_U16_U8CORE =

ChipON KungFu32

260
EM_TACHYUM =

LAPIS nX-U16/U8

261
EM_56800EF =

Tachyum

262
EM_FRV =

NXP 56800EF Digital Signal Controller (DSC)

0x5441
EM_ALPHA =

This is an interim value that we will use until the committee comes up with a final number.

0x9026
EM_CYGNUS_M32R =

Bogus old m32r magic number, used by old tools.

0x9041
EM_S390_OLD =

This is the old interim value for S/390 architecture

0xA390
EM_CYGNUS_MN10300 =

Also Panasonic/MEI MN10300, AM33

0xbeef

Class Method Summary collapse

Class Method Details

.mapping(val) ⇒ String

Return the architecture name according to val. Used by ELFFile#machine.

Only supports famous archs.

Examples:

mapping(3)
#=> 'Intel 80386'
mapping(6)
#=> 'Intel 80386'
mapping(62)
#=> 'Advanced Micro Devices X86-64'
mapping(1337)
#=> '<unknown>: 0x539'

Parameters:

  • val (Integer)

    Value of e_machine.

Returns:

  • (String)

    Name of architecture.



427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
# File 'lib/elftools/constants.rb', line 427

def self.mapping(val)
  case val
  when EM_NONE then 'None'
  when EM_386, EM_486 then 'Intel 80386'
  when EM_860 then 'Intel 80860'
  when EM_MIPS then 'MIPS R3000'
  when EM_PPC then 'PowerPC'
  when EM_PPC64 then 'PowerPC64'
  when EM_ARM then 'ARM'
  when EM_IA_64 then 'Intel IA-64'
  when EM_AARCH64 then 'AArch64'
  when EM_X86_64 then 'Advanced Micro Devices X86-64'
  else format('<unknown>: 0x%x', val)
  end
end