Blame libdwelf/dwelf_elf_e_machine_string.c

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