Add translations between ELF constants to descriptive names
ADD
src/elfinfostrings.h
+#pragma once
+
+#include "elfio/elf_types.hpp"
+
+#include <QMap>
+#include <QString>
+
+namespace Ripes {
+
+// clang-format off
+const static QMap<unsigned, QString> s_elfMachineNames{{EM_NONE, "No machine"},
+ {EM_M32, "AT&T WE 32100"},
+ {EM_SPARC, "SPARC"},
+ {EM_386, "Intel 80386"},
+ {EM_68K, "Motorola 68000"},
+ {EM_88K, "Motorola 88000"},
+ {EM_860, "Intel 80860"},
+ {EM_MIPS, "MIPS I Architecture"},
+ {EM_S370, "IBM System/370 Processor"},
+ {EM_MIPS_RS3_LE, "MIPS RS3000 Little-endian"},
+ {EM_PARISC, "Hewlett-Packard PA-RISC"},
+ {EM_SPARC32PLUS, "Enhanced instruction set SPARC"},
+ {EM_960, "Intel 80960"},
+ {EM_PPC, "PowerPC"},
+ {EM_PPC64, "64-bit PowerPC"},
+ {EM_S390, "IBM System/390 Processor"},
+ {EM_SPU, "IBM SPU/SPC"},
+ {EM_V800, "NEC V800"},
+ {EM_FR20, "Fujitsu FR20"},
+ {EM_RH32, "TRW RH-32"},
+ {EM_RCE, "Motorola RCE"},
+ {EM_ARM, "ARM 32-bit architecture (AARCH32)"},
+ {EM_SH, "Hitachi SH"},
+ {EM_SPARCV9, "SPARC Version 9"},
+ {EM_TRICORE, "Siemens TriCore embedded processor"},
+ {EM_ARC, "Argonaut RISC Core, Argonaut Technologies Inc."},
+ {EM_H8_300, "Hitachi H8/300"},
+ {EM_H8_300H, "Hitachi H8/300H"},
+ {EM_H8S, "Hitachi H8S"},
+ {EM_H8_500, "Hitachi H8/500"},
+ {EM_IA_64, "Intel IA-64 processor architecture"},
+ {EM_MIPS_X, "Stanford MIPS-X"},
+ {EM_COLDFIRE, "Motorola ColdFire"},
+ {EM_68HC12, "Motorola M68HC12"},
+ {EM_MMA, "Fujitsu MMA Multimedia Accelerator"},
+ {EM_PCP, "Siemens PCP"},
+ {EM_NCPU, "Sony nCPU embedded RISC processor"},
+ {EM_NDR1, "Denso NDR1 microprocessor"},
+ {EM_STARCORE, "Motorola Star*Core processor"},
+ {EM_ME16, "Toyota ME16 processor"},
+ {EM_ST100, "STMicroelectronics ST100 processor"},
+ {EM_TINYJ, "Advanced Logic Corp. TinyJ embedded processor family"},
+ {EM_X86_64, "AMD x86-64 architecture"},
+ {EM_PDSP, "Sony DSP Processor"},
+ {EM_PDP10, "Digital Equipment Corp. PDP-10"},
+ {EM_PDP11, "Digital Equipment Corp. PDP-11"},
+ {EM_FX66, "Siemens FX66 microcontroller"},
+ {EM_ST9PLUS, "STMicroelectronics ST9+ 8/16 bit microcontroller"},
+ {EM_ST7, "STMicroelectronics ST7 8-bit microcontroller"},
+ {EM_68HC16, "Motorola MC68HC16 Microcontroller"},
+ {EM_68HC11, "Motorola MC68HC11 Microcontroller"},
+ {EM_68HC08, "Motorola MC68HC08 Microcontroller"},
+ {EM_68HC05, "Motorola MC68HC05 Microcontroller"},
+ {EM_SVX, "Silicon Graphics SVx"},
+ {EM_ST19, "STMicroelectronics ST19 8-bit microcontroller"},
+ {EM_VAX, "Digital VAX"},
+ {EM_CRIS, "Axis Communications 32-bit embedded processor"},
+ {EM_JAVELIN, "Infineon Technologies 32-bit embedded processor"},
+ {EM_FIREPATH, "Element 14 64-bit DSP Processor"},
+ {EM_ZSP, "LSI Logic 16-bit DSP Processor"},
+ {EM_MMIX, "Donald Knuth's educational 64-bit processor"},
+ {EM_HUANY, "Harvard University machine-independent object files"},
+ {EM_PRISM, "SiTera Prism"},
+ {EM_AVR, "Atmel AVR 8-bit microcontroller"},
+ {EM_FR30, "Fujitsu FR30"},
+ {EM_D10V, "Mitsubishi D10V"},
+ {EM_D30V, "Mitsubishi D30V"},
+ {EM_V850, "NEC v850"},
+ {EM_M32R, "Mitsubishi M32R"},
+ {EM_MN10300, "Matsushita MN10300"},
+ {EM_MN10200, "Matsushita MN10200"},
+ {EM_PJ, "picoJava"},
+ {EM_OPENRISC, "OpenRISC 32-bit embedded processor"},
+ {EM_XTENSA, "Tensilica Xtensa Architecture"},
+ {EM_VIDEOCORE, "Alphamosaic VideoCore processor"},
+ {EM_TMM_GPP, "Thompson Multimedia General Purpose Processor"},
+ {EM_NS32K, "National Semiconductor 32000 series"},
+ {EM_TPC, "Tenor Network TPC processor"},
+ {EM_SNP1K, "Trebia SNP 1000 processor"},
+ {EM_ST200, "STMicroelectronics (www.st.com) ST200 microcontroller"},
+ {EM_IP2K, "Ubicom IP2xxx microcontroller family"},
+ {EM_MAX, "MAX Processor"},
+ {EM_CR, "National Semiconductor CompactRISC microprocessor"},
+ {EM_F2MC16, "Fujitsu F2MC16"},
+ {EM_MSP430, "Texas Instruments embedded microcontroller msp430"},
+ {EM_BLACKFIN, "Analog Devices Blackfin (DSP) processor"},
+ {EM_SE_C33, "S1C33 Family of Seiko Epson processors"},
+ {EM_SEP, "Sharp embedded microprocessor"},
+ {EM_ARCA, "Arca RISC Microprocessor"},
+ {EM_UNICORE, "Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University"},
+ {EM_EXCESS, "eXcess: 16/32/64-bit configurable embedded CPU"},
+ {EM_DXP, "Icera Semiconductor Inc. Deep Execution Processor"},
+ {EM_ALTERA_NIOS2, "Altera Nios II soft-core processor"},
+ {EM_CRX, "National Semiconductor CompactRISC CRX microprocessor"},
+ {EM_XGATE, "Motorola XGATE embedded processor"},
+ {EM_C166, "Infineon C16x/XC16x processor"},
+ {EM_M16C, "Renesas M16C series microprocessors"},
+ {EM_DSPIC30F, "Microchip Technology dsPIC30F Digital Signal Controller"},
+ {EM_CE, "Freescale Communication Engine RISC core"},
+ {EM_M32C, "Renesas M32C series microprocessors"},
+ {EM_TSK3000, "Altium TSK3000 core"},
+ {EM_RS08, "Freescale RS08 embedded processor"},
+ {EM_ECOG2, "Cyan Technology eCOG2 microprocessor"},
+ {EM_SCORE7, "Sunplus S+core7 RISC processor"},
+ {EM_DSP24, "New Japan Radio (NJR) 24-bit DSP Processor"},
+ {EM_VIDEOCORE3, "Broadcom VideoCore III processor"},
+ {EM_LATTICEMICO32, "RISC processor for Lattice FPGA architecture"},
+ {EM_SE_C17, "Seiko Epson C17 family"},
+ {EM_TI_C6000, "The Texas Instruments TMS320C6000 DSP family"},
+ {EM_TI_C2000, "The Texas Instruments TMS320C2000 DSP family"},
+ {EM_TI_C5500, "The Texas Instruments TMS320C55x DSP family"},
+ {EM_MMDSP_PLUS, "STMicroelectronics 64bit VLIW Data Signal Processor"},
+ {EM_MMDSP_PLUS, "STMicroelectronics 64bit VLIW Data Signal Processor"},
+ {EM_CYPRESS_M8C, "Cypress M8C microprocessor"},
+ {EM_R32C, "Renesas R32C series microprocessors"},
+ {EM_TRIMEDIA, "NXP Semiconductors TriMedia architecture family"},
+ {EM_QDSP6, "QUALCOMM DSP6 Processor"},
+ {EM_8051, "Intel 8051 and variants"},
+ {EM_STXP7X, "STMicroelectronics STxP7x family of configurable and extensible RISC processors"},
+ {EM_NDS32, "Andes Technology compact code size embedded RISC processor family"},
+ {EM_ECOG1, "Cyan Technology eCOG1X family"},
+ {EM_ECOG1X, "Cyan Technology eCOG1X family"},
+ {EM_MAXQ30, "Dallas Semiconductor MAXQ30 Core Micro-controllers"},
+ {EM_XIMO16, "New Japan Radio (NJR) 16-bit DSP Processor"},
+ {EM_MANIK, "M2000 Reconfigurable RISC Microprocessor"},
+ {EM_CRAYNV2, "Cray Inc. NV2 vector architecture"},
+ {EM_RX, "Renesas RX family"},
+ {EM_METAG, "Imagination Technologies META processor architecture"},
+ {EM_MCST_ELBRUS, "MCST Elbrus general purpose hardware architecture"},
+ {EM_ECOG16, "Cyan Technology eCOG16 family"},
+ {EM_CR16, "National Semiconductor CompactRISC CR16 16-bit microprocessor"},
+ {EM_ETPU, "Freescale Extended Time Processing Unit"},
+ {EM_SLE9X, "Infineon Technologies SLE9X core"},
+ {EM_AVR32, "Atmel Corporation 32-bit microprocessor family"},
+ {EM_STM8, "STMicroeletronics STM8 8-bit microcontroller"},
+ {EM_TILE64, "Tilera TILE64 multicore architecture family"},
+ {EM_TILEPRO, "Tilera TILEPro multicore architecture family"},
+ {EM_MICROBLAZE, "Xilinx MicroBlaze 32-bit RISC soft processor core"},
+ {EM_CUDA, "NVIDIA CUDA architecture"},
+ {EM_TILEGX, "Tilera TILE-Gx multicore architecture family"},
+ {EM_CLOUDSHIELD, "CloudShield architecture family"},
+ {EM_COREA_1ST, "KIPO-KAIST Core-A 1st generation processor family"},
+ {EM_COREA_2ND, "KIPO-KAIST Core-A 2nd generation processor family"},
+ {EM_ARC_COMPACT2, "Synopsys ARCompact V2"},
+ {EM_OPEN8, "Open8 8-bit RISC soft processor core"},
+ {EM_RL78, "Renesas RL78 family"},
+ {EM_VIDEOCORE5, "Broadcom VideoCore V processor"},
+ {EM_78KOR, "Renesas 78KOR family"},
+ {EM_56800EX, "Freescale 56800EX Digital Signal Controller (DSC)"},
+ {EM_BA1, "Beyond BA1 CPU architecture"},
+ {EM_BA2, "Beyond BA2 CPU architecture"},
+ {EM_XCORE, "XMOS xCORE processor family"},
+ {EM_MCHP_PIC, "Microchip 8-bit PIC(r) family"},
+ {EM_INTEL205, "Reserved by Intel"},
+ {EM_INTEL206, "Reserved by Intel"},
+ {EM_INTEL207, "Reserved by Intel"},
+ {EM_INTEL208, "Reserved by Intel"},
+ {EM_INTEL209, "Reserved by Intel"},
+ {EM_KM32, "KM211 KM32 32-bit processor"},
+ {EM_KMX32, "KM211 KMX32 32-bit processor"},
+ {EM_KMX16, "KM211 KMX16 16-bit processor"},
+ {EM_KMX8, "KM211 KMX8 8-bit processor"},
+ {EM_KVARC, "KM211 KVARC processor"},
+ {EM_CDP, "Paneve CDP architecture family"},
+ {EM_COGE, "Cognitive Smart Memory Processor"},
+ {EM_COOL, "Bluechip Systems CoolEngine"},
+ {EM_NORC, "Nanoradio Optimized RISC"},
+ {EM_CSR_KALIMBA, "CSR Kalimba architecture family"},
+ {EM_Z80, "Zilog Z80"},
+ {EM_VISIUM, "Controls and Data Services VISIUMcore processor"},
+ {EM_FT32, "FTDI Chip FT32 high performance 32-bit RISC architecture"},
+ {EM_MOXIE, "Moxie processor family"},
+ {EM_AMDGPU, "AMD GPU architecture"},
+ {EM_RISCV, "RISC-V"}};
+
+const static QMap<unsigned, QString> s_elfTypes {
+ {ET_NONE, "None"},
+ {ET_REL, "Relocateable object file"},
+ {ET_EXEC, "Executable"},
+ {ET_DYN, "Dynamically linked"},
+};
+
+// clang-format on
+
+static QString getNameForElfMachine(unsigned machine) {
+ return s_elfMachineNames.contains(machine) ? s_elfMachineNames[machine] : "Unknown";
+}
+
+static QString getNameForElfType(unsigned machine) {
+ return s_elfTypes.contains(machine) ? s_elfTypes[machine] : "Unknown";
+}
+
+} // namespace Ripes

Add translations between ELF constants to descriptive names