Blame libdwelf/dwelf_elf_e_machine_string.c

Packit Service 97d2fb
/* Returns a human readable description of an ELF header e_machine value.
Packit Service 97d2fb
   Copyright (C) 2019 Red Hat, Inc.
Packit Service 97d2fb
   This file is part of elfutils.
Packit Service 97d2fb
Packit Service 97d2fb
   This file is free software; you can redistribute it and/or modify
Packit Service 97d2fb
   it under the terms of either
Packit Service 97d2fb
Packit Service 97d2fb
     * the GNU Lesser General Public License as published by the Free
Packit Service 97d2fb
       Software Foundation; either version 3 of the License, or (at
Packit Service 97d2fb
       your option) any later version
Packit Service 97d2fb
Packit Service 97d2fb
   or
Packit Service 97d2fb
Packit Service 97d2fb
     * the GNU General Public License as published by the Free
Packit Service 97d2fb
       Software Foundation; either version 2 of the License, or (at
Packit Service 97d2fb
       your option) any later version
Packit Service 97d2fb
Packit Service 97d2fb
   or both in parallel, as here.
Packit Service 97d2fb
Packit Service 97d2fb
   elfutils is distributed in the hope that it will be useful, but
Packit Service 97d2fb
   WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 97d2fb
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 97d2fb
   General Public License for more details.
Packit Service 97d2fb
Packit Service 97d2fb
   You should have received copies of the GNU General Public License and
Packit Service 97d2fb
   the GNU Lesser General Public License along with this program.  If
Packit Service 97d2fb
   not, see <http://www.gnu.org/licenses/>.  */
Packit Service 97d2fb
Packit Service 97d2fb
#ifdef HAVE_CONFIG_H
Packit Service 97d2fb
# include <config.h>
Packit Service 97d2fb
#endif
Packit Service 97d2fb
Packit Service 97d2fb
#include "libdwelf.h"
Packit Service 97d2fb
Packit Service 97d2fb
Packit Service 97d2fb
const char *
Packit Service 97d2fb
dwelf_elf_e_machine_string (int machine)
Packit Service 97d2fb
{
Packit Service 97d2fb
  switch (machine)
Packit Service 97d2fb
    {
Packit Service 97d2fb
    case EM_NONE:
Packit Service 97d2fb
      return "None";
Packit Service 97d2fb
    case EM_M32:
Packit Service 97d2fb
      return "WE32100";
Packit Service 97d2fb
    case EM_SPARC:
Packit Service 97d2fb
      return "SPARC";
Packit Service 97d2fb
    case EM_386:
Packit Service 97d2fb
      return "Intel 80386";
Packit Service 97d2fb
    case EM_68K:
Packit Service 97d2fb
      return "M68K";
Packit Service 97d2fb
    case EM_88K:
Packit Service 97d2fb
      return "M88K";
Packit Service 97d2fb
    case EM_IAMCU:
Packit Service 97d2fb
      return "Intel MCU";
Packit Service 97d2fb
    case EM_860:
Packit Service 97d2fb
      return "Intel 80860";
Packit Service 97d2fb
    case EM_MIPS:
Packit Service 97d2fb
      return "MIPS R3000";
Packit Service 97d2fb
    case EM_S370:
Packit Service 97d2fb
      return "IBM System/370";
Packit Service 97d2fb
    case EM_MIPS_RS3_LE:
Packit Service 97d2fb
      return "MIPS R3000";
Packit Service 97d2fb
    case EM_PARISC:
Packit Service 97d2fb
      return "HPPA";
Packit Service 97d2fb
    case EM_VPP500:
Packit Service 97d2fb
      return "Fujitsu VPP500";
Packit Service 97d2fb
    case EM_SPARC32PLUS:
Packit Service 97d2fb
      return "SPARC v8+";
Packit Service 97d2fb
    case EM_960:
Packit Service 97d2fb
      return "Intel 80960";
Packit Service 97d2fb
    case EM_PPC:
Packit Service 97d2fb
      return "PowerPC";
Packit Service 97d2fb
    case EM_PPC64:
Packit Service 97d2fb
      return "PowerPC64";
Packit Service 97d2fb
    case EM_S390:
Packit Service 97d2fb
      return "IBM S/390";
Packit Service 97d2fb
    case EM_SPU:
Packit Service 97d2fb
      return "IBM SPU/SPC";
Packit Service 97d2fb
    case EM_V800:
Packit Service 97d2fb
      return "NEC V800";
Packit Service 97d2fb
    case EM_FR20:
Packit Service 97d2fb
      return "Fujitsu FR20";
Packit Service 97d2fb
    case EM_RH32:
Packit Service 97d2fb
      return "TRW RH-32";
Packit Service 97d2fb
    case EM_RCE:
Packit Service 97d2fb
      return "Motorola RCE";
Packit Service 97d2fb
    case EM_ARM:
Packit Service 97d2fb
      return "ARM";
Packit Service 97d2fb
    case EM_FAKE_ALPHA:
Packit Service 97d2fb
      return "Digital Alpha";
Packit Service 97d2fb
    case EM_SH:
Packit Service 97d2fb
      return "SH";
Packit Service 97d2fb
    case EM_SPARCV9:
Packit Service 97d2fb
      return "SPARC v9";
Packit Service 97d2fb
    case EM_TRICORE:
Packit Service 97d2fb
      return "Siemens Tricore";
Packit Service 97d2fb
    case EM_ARC:
Packit Service 97d2fb
      return "ARC";
Packit Service 97d2fb
    case EM_H8_300:
Packit Service 97d2fb
      return "H8/300";
Packit Service 97d2fb
    case EM_H8_300H:
Packit Service 97d2fb
      return "H8/300H";
Packit Service 97d2fb
    case EM_H8S:
Packit Service 97d2fb
      return "H8S";
Packit Service 97d2fb
    case EM_H8_500:
Packit Service 97d2fb
      return "H8/500";
Packit Service 97d2fb
    case EM_IA_64:
Packit Service 97d2fb
      return "Intel IA-64";
Packit Service 97d2fb
    case EM_MIPS_X:
Packit Service 97d2fb
      return "Stanford MIPS-X";
Packit Service 97d2fb
    case EM_COLDFIRE:
Packit Service 97d2fb
      return "Motorola Coldfire";
Packit Service 97d2fb
    case EM_68HC12:
Packit Service 97d2fb
      return "Motorola M68HC12";
Packit Service 97d2fb
    case EM_MMA:
Packit Service 97d2fb
      return "Fujitsu MMA Multimedia Accelerator";
Packit Service 97d2fb
    case EM_PCP:
Packit Service 97d2fb
      return "Siemens PCP";
Packit Service 97d2fb
    case EM_NCPU:
Packit Service 97d2fb
      return "Sony nCPU embeded RISC";
Packit Service 97d2fb
    case EM_NDR1:
Packit Service 97d2fb
      return "Denso NDR1 microprocessor";
Packit Service 97d2fb
    case EM_STARCORE:
Packit Service 97d2fb
      return "Motorola Star*Core processor";
Packit Service 97d2fb
    case EM_ME16:
Packit Service 97d2fb
      return "Toyota ME16 processor";
Packit Service 97d2fb
    case EM_ST100:
Packit Service 97d2fb
      return "STMicroelectronic ST100";
Packit Service 97d2fb
    case EM_TINYJ:
Packit Service 97d2fb
      return "Advanced Logic Corporation Tinyj";
Packit Service 97d2fb
    case EM_X86_64:
Packit Service 97d2fb
      return "AMD x86-64";
Packit Service 97d2fb
    case EM_PDSP:
Packit Service 97d2fb
      return "Sony DSP Processor";
Packit Service 97d2fb
    case EM_PDP10:
Packit Service 97d2fb
      return "Digital PDP-10";
Packit Service 97d2fb
    case EM_PDP11:
Packit Service 97d2fb
      return "Digital PDP-11";
Packit Service 97d2fb
    case EM_FX66:
Packit Service 97d2fb
      return "Siemens FX66 microcontroller";
Packit Service 97d2fb
    case EM_ST9PLUS:
Packit Service 97d2fb
      return "STMicroelectronics ST9+";
Packit Service 97d2fb
    case EM_ST7:
Packit Service 97d2fb
      return "STMicroelectronics ST7";
Packit Service 97d2fb
    case EM_68HC16:
Packit Service 97d2fb
      return "Motorola MC68HC16 microcontroller";
Packit Service 97d2fb
    case EM_68HC11:
Packit Service 97d2fb
      return "Motorola MC68HC11 microcontroller";
Packit Service 97d2fb
    case EM_68HC08:
Packit Service 97d2fb
      return "Motorola MC68HC08 microcontroller";
Packit Service 97d2fb
    case EM_68HC05:
Packit Service 97d2fb
      return "Motorola MC68HC05 microcontroller";
Packit Service 97d2fb
    case EM_SVX:
Packit Service 97d2fb
      return "Silicon Graphics SVx";
Packit Service 97d2fb
    case EM_ST19:
Packit Service 97d2fb
      return "STMicroelectronics ST19";
Packit Service 97d2fb
    case EM_VAX:
Packit Service 97d2fb
      return "Digital VAX";
Packit Service 97d2fb
    case EM_CRIS:
Packit Service 97d2fb
      return "Axis Communications 32-bit embedded processor";
Packit Service 97d2fb
    case EM_JAVELIN:
Packit Service 97d2fb
      return "Infineon Technologies 32-bit embedded processor";
Packit Service 97d2fb
    case EM_FIREPATH:
Packit Service 97d2fb
      return "Element 14 64-bit DSP Processor";
Packit Service 97d2fb
    case EM_ZSP:
Packit Service 97d2fb
      return "LSI Logic 16-bit DSP Processor";
Packit Service 97d2fb
    case EM_MMIX:
Packit Service 97d2fb
      return "Donald Knuth's educational 64-bit processor";
Packit Service 97d2fb
    case EM_HUANY:
Packit Service 97d2fb
      return "Harvard University machine-independent object";
Packit Service 97d2fb
    case EM_PRISM:
Packit Service 97d2fb
      return "SiTera Prism";
Packit Service 97d2fb
    case EM_AVR:
Packit Service 97d2fb
      return "Atmel AVR 8-bit microcontroller";
Packit Service 97d2fb
    case EM_FR30:
Packit Service 97d2fb
      return "Fujitsu FR30";
Packit Service 97d2fb
    case EM_D10V:
Packit Service 97d2fb
      return "Mitsubishi D10V";
Packit Service 97d2fb
    case EM_D30V:
Packit Service 97d2fb
      return "Mitsubishi D30V";
Packit Service 97d2fb
    case EM_V850:
Packit Service 97d2fb
      return "NEC v850";
Packit Service 97d2fb
    case EM_M32R:
Packit Service 97d2fb
      return "Mitsubishi M32R";
Packit Service 97d2fb
    case EM_MN10300:
Packit Service 97d2fb
      return "Matsushita MN10300";
Packit Service 97d2fb
    case EM_MN10200:
Packit Service 97d2fb
      return "Matsushita MN10200";
Packit Service 97d2fb
    case EM_PJ:
Packit Service 97d2fb
      return "picoJava";
Packit Service 97d2fb
    case EM_OPENRISC:
Packit Service 97d2fb
      return "OpenRISC";
Packit Service 97d2fb
    case EM_ARC_COMPACT:
Packit Service 97d2fb
      return "ARC International ARCompact";
Packit Service 97d2fb
    case EM_XTENSA:
Packit Service 97d2fb
      return "Tensilica Xtensa Architecture";
Packit Service 97d2fb
    case EM_VIDEOCORE:
Packit Service 97d2fb
      return "Alphamosaic VideoCore";
Packit Service 97d2fb
    case EM_TMM_GPP:
Packit Service 97d2fb
      return "Thompson Multimedia General Purpose Processor";
Packit Service 97d2fb
    case EM_NS32K:
Packit Service 97d2fb
      return "National Semiconductor 32000";
Packit Service 97d2fb
    case EM_TPC:
Packit Service 97d2fb
      return "Tenor Network TPC";
Packit Service 97d2fb
    case EM_SNP1K:
Packit Service 97d2fb
      return "Trebia SNP 1000";
Packit Service 97d2fb
    case EM_ST200:
Packit Service 97d2fb
      return "STMicroelectronics ST200";
Packit Service 97d2fb
    case EM_IP2K:
Packit Service 97d2fb
      return "Ubicom IP2xxx";
Packit Service 97d2fb
    case EM_MAX:
Packit Service 97d2fb
      return "MAX processor";
Packit Service 97d2fb
    case EM_CR:
Packit Service 97d2fb
      return "National Semiconductor CompactRISC";
Packit Service 97d2fb
    case EM_F2MC16:
Packit Service 97d2fb
      return "Fujitsu F2MC16";
Packit Service 97d2fb
    case EM_MSP430:
Packit Service 97d2fb
      return "Texas Instruments msp430";
Packit Service 97d2fb
    case EM_BLACKFIN:
Packit Service 97d2fb
      return "Analog Devices Blackfin DSP";
Packit Service 97d2fb
    case EM_SE_C33:
Packit Service 97d2fb
      return "Seiko Epson S1C33";
Packit Service 97d2fb
    case EM_SEP:
Packit Service 97d2fb
      return "Sharp embedded microprocessor";
Packit Service 97d2fb
    case EM_ARCA:
Packit Service 97d2fb
      return "Arca RISC";
Packit Service 97d2fb
    case EM_UNICORE:
Packit Service 97d2fb
      return "Unicore";
Packit Service 97d2fb
    case EM_EXCESS:
Packit Service 97d2fb
      return "eXcess configurable CPU";
Packit Service 97d2fb
    case EM_DXP:
Packit Service 97d2fb
      return "Icera Semiconductor Deep Execution Processor";
Packit Service 97d2fb
    case EM_ALTERA_NIOS2:
Packit Service 97d2fb
      return "Altera Nios II";
Packit Service 97d2fb
    case EM_CRX:
Packit Service 97d2fb
      return "National Semiconductor CompactRISC CRX";
Packit Service 97d2fb
    case EM_XGATE:
Packit Service 97d2fb
      return "Motorola XGATE";
Packit Service 97d2fb
    case EM_C166:
Packit Service 97d2fb
      return "Infineon C16x/XC16x";
Packit Service 97d2fb
    case EM_M16C:
Packit Service 97d2fb
      return "Renesas M16C";
Packit Service 97d2fb
    case EM_DSPIC30F:
Packit Service 97d2fb
      return "Microchip Technology dsPIC30F";
Packit Service 97d2fb
    case EM_CE:
Packit Service 97d2fb
      return "Freescale Communication Engine RISC";
Packit Service 97d2fb
    case EM_M32C:
Packit Service 97d2fb
      return "Renesas M32C";
Packit Service 97d2fb
    case EM_TSK3000:
Packit Service 97d2fb
      return "Altium TSK3000";
Packit Service 97d2fb
    case EM_RS08:
Packit Service 97d2fb
      return "Freescale RS08";
Packit Service 97d2fb
    case EM_SHARC:
Packit Service 97d2fb
      return "Analog Devices SHARC";
Packit Service 97d2fb
    case EM_ECOG2:
Packit Service 97d2fb
      return "Cyan Technology eCOG2";
Packit Service 97d2fb
    case EM_SCORE7:
Packit Service 97d2fb
      return "Sunplus S+core7 RISC";
Packit Service 97d2fb
    case EM_DSP24:
Packit Service 97d2fb
      return "New Japan Radio (NJR) 24-bit DSP";
Packit Service 97d2fb
    case EM_VIDEOCORE3:
Packit Service 97d2fb
      return "Broadcom VideoCore III";
Packit Service 97d2fb
    case EM_LATTICEMICO32:
Packit Service 97d2fb
      return "RISC for Lattice FPGA";
Packit Service 97d2fb
    case EM_SE_C17:
Packit Service 97d2fb
      return "Seiko Epson C17";
Packit Service 97d2fb
    case EM_TI_C6000:
Packit Service 97d2fb
      return "Texas Instruments TMS320C6000 DSP";
Packit Service 97d2fb
    case EM_TI_C2000:
Packit Service 97d2fb
      return "Texas Instruments TMS320C2000 DSP";
Packit Service 97d2fb
    case EM_TI_C5500:
Packit Service 97d2fb
      return "Texas Instruments TMS320C55x DSP";
Packit Service 97d2fb
    case EM_TI_ARP32:
Packit Service 97d2fb
      return "Texas Instruments Application Specific RISC";
Packit Service 97d2fb
    case EM_TI_PRU:
Packit Service 97d2fb
      return "Texas Instruments Programmable Realtime Unit";
Packit Service 97d2fb
    case EM_MMDSP_PLUS:
Packit Service 97d2fb
      return "STMicroelectronics 64bit VLIW DSP";
Packit Service 97d2fb
    case EM_CYPRESS_M8C:
Packit Service 97d2fb
      return "Cypress M8C";
Packit Service 97d2fb
    case EM_R32C:
Packit Service 97d2fb
      return "Renesas R32C";
Packit Service 97d2fb
    case EM_TRIMEDIA:
Packit Service 97d2fb
      return "NXP Semiconductors TriMedia";
Packit Service 97d2fb
    case EM_QDSP6:
Packit Service 97d2fb
      return "QUALCOMM DSP6";
Packit Service 97d2fb
    case EM_8051:
Packit Service 97d2fb
      return "Intel 8051 and variants";
Packit Service 97d2fb
    case EM_STXP7X:
Packit Service 97d2fb
      return "STMicroelectronics STxP7x";
Packit Service 97d2fb
    case EM_NDS32:
Packit Service 97d2fb
      return "Andes Technology compact code size embeded RISC";
Packit Service 97d2fb
    case EM_ECOG1X:
Packit Service 97d2fb
      return "Cyan Technology eCOG1X";
Packit Service 97d2fb
    case EM_MAXQ30:
Packit Service 97d2fb
      return "Dallas Semicondutor MAXQ30";
Packit Service 97d2fb
    case EM_XIMO16:
Packit Service 97d2fb
      return "New Japan Radio (NJR) 16-bit DSP";
Packit Service 97d2fb
    case EM_MANIK:
Packit Service 97d2fb
      return "M2000 Reconfigurable RISC";
Packit Service 97d2fb
    case EM_CRAYNV2:
Packit Service 97d2fb
      return "Cray NV2 vector architecture";
Packit Service 97d2fb
    case EM_RX:
Packit Service 97d2fb
      return "Renesas RX";
Packit Service 97d2fb
    case EM_METAG:
Packit Service 97d2fb
      return "Imagination Technologies META";
Packit Service 97d2fb
    case EM_MCST_ELBRUS:
Packit Service 97d2fb
      return "MCST Elbrus";
Packit Service 97d2fb
    case EM_ECOG16:
Packit Service 97d2fb
      return "Cyan Technology eCOG16";
Packit Service 97d2fb
    case EM_CR16:
Packit Service 97d2fb
      return "National Semiconductor CompactRISC";
Packit Service 97d2fb
    case EM_ETPU:
Packit Service 97d2fb
      return "Freescale Extended Time Processing Unit";
Packit Service 97d2fb
    case EM_SLE9X:
Packit Service 97d2fb
      return "Infineon Technologies SLE9X";
Packit Service 97d2fb
    case EM_L10M:
Packit Service 97d2fb
      return "Intel L10M";
Packit Service 97d2fb
    case EM_K10M:
Packit Service 97d2fb
      return "Intel K10M";
Packit Service 97d2fb
    case EM_AARCH64:
Packit Service 97d2fb
      return "AARCH64";
Packit Service 97d2fb
    case EM_AVR32:
Packit Service 97d2fb
      return "Amtel AVR32";
Packit Service 97d2fb
    case EM_STM8:
Packit Service 97d2fb
      return "STMicroelectronics STM8";
Packit Service 97d2fb
    case EM_TILE64:
Packit Service 97d2fb
      return "Tilera TILE64";
Packit Service 97d2fb
    case EM_TILEPRO:
Packit Service 97d2fb
      return "Tilera TILEPro";
Packit Service 97d2fb
    case EM_MICROBLAZE:
Packit Service 97d2fb
      return "Xilinx MicroBlaze";
Packit Service 97d2fb
    case EM_CUDA:
Packit Service 97d2fb
      return "NVIDIA CUDA";
Packit Service 97d2fb
    case EM_TILEGX:
Packit Service 97d2fb
      return "Tilera TILE-Gx";
Packit Service 97d2fb
    case EM_CLOUDSHIELD:
Packit Service 97d2fb
      return "CloudShield";
Packit Service 97d2fb
    case EM_COREA_1ST:
Packit Service 97d2fb
      return "KIPO-KAIST Core-A 1st gen";
Packit Service 97d2fb
    case EM_COREA_2ND:
Packit Service 97d2fb
      return "KIPO-KAIST Core-A 2nd gen";
Packit Service 97d2fb
    case EM_ARCV2:
Packit Service 97d2fb
      return "Synopsys ARCv2 ISA";
Packit Service 97d2fb
    case EM_OPEN8:
Packit Service 97d2fb
      return "Open8 RISC";
Packit Service 97d2fb
    case EM_RL78:
Packit Service 97d2fb
      return "Renesas RL78";
Packit Service 97d2fb
    case EM_VIDEOCORE5:
Packit Service 97d2fb
      return "Broadcom VideoCore V";
Packit Service 97d2fb
    case EM_78KOR:
Packit Service 97d2fb
      return "Renesas 78KOR";
Packit Service 97d2fb
    case EM_56800EX:
Packit Service 97d2fb
      return "Freescale 56800EX DSC";
Packit Service 97d2fb
    case EM_BA1:
Packit Service 97d2fb
      return "Beyond BA1";
Packit Service 97d2fb
    case EM_BA2:
Packit Service 97d2fb
      return "Beyond BA2";
Packit Service 97d2fb
    case EM_XCORE:
Packit Service 97d2fb
      return "XMOS xCORE";
Packit Service 97d2fb
    case EM_MCHP_PIC:
Packit Service 97d2fb
      return "Microchip 8-bit PIC";
Packit Service 97d2fb
    case EM_KM32:
Packit Service 97d2fb
      return "KM211 KM32";
Packit Service 97d2fb
    case EM_KMX32:
Packit Service 97d2fb
      return "KM211 KMX32";
Packit Service 97d2fb
    case EM_EMX16:
Packit Service 97d2fb
      return "KM211 KMX16";
Packit Service 97d2fb
    case EM_EMX8:
Packit Service 97d2fb
      return "KM211 KMX8";
Packit Service 97d2fb
    case EM_KVARC:
Packit Service 97d2fb
      return "KM211 KVARC";
Packit Service 97d2fb
    case EM_CDP:
Packit Service 97d2fb
      return "Paneve CDP";
Packit Service 97d2fb
    case EM_COGE:
Packit Service 97d2fb
      return "Cognitive Smart Memory Processor";
Packit Service 97d2fb
    case EM_COOL:
Packit Service 97d2fb
      return "Bluechip CoolEngine";
Packit Service 97d2fb
    case EM_NORC:
Packit Service 97d2fb
      return "Nanoradio Optimized RISC";
Packit Service 97d2fb
    case EM_CSR_KALIMBA:
Packit Service 97d2fb
      return "CSR Kalimba";
Packit Service 97d2fb
    case EM_Z80:
Packit Service 97d2fb
      return "Zilog Z80";
Packit Service 97d2fb
    case EM_VISIUM:
Packit Service 97d2fb
      return "CDS VISIUMcore";
Packit Service 97d2fb
    case EM_FT32:
Packit Service 97d2fb
      return "FTDI Chip FT32";
Packit Service 97d2fb
    case EM_MOXIE:
Packit Service 97d2fb
      return "Moxie";
Packit Service 97d2fb
    case EM_AMDGPU:
Packit Service 97d2fb
      return "AMD GPU";
Packit Service 97d2fb
    case EM_RISCV:
Packit Service 97d2fb
      return "RISC-V";
Packit Service 97d2fb
    case EM_BPF:
Packit Service 97d2fb
      return "BPF";
Packit Service 97d2fb
    case EM_CSKY:
Packit Service 97d2fb
      return "C-SKY";
Packit Service 97d2fb
Packit Service 97d2fb
    case EM_ALPHA:
Packit Service 97d2fb
      return "Alpha";
Packit Service 97d2fb
Packit Service 97d2fb
    default:
Packit Service 97d2fb
      return NULL;
Packit Service 97d2fb
    }
Packit Service 97d2fb
}