Files
ircolib/external/capstone/suite/fuzz/platform.c
T

186 lines
6.0 KiB
C

#include "platform.h"
struct platform platforms[] = {
{ // item 0
CS_ARCH_X86, CS_MODE_32, "X86 32 (Intel syntax)", "x32" },
{ // item 1
CS_ARCH_X86, CS_MODE_64, "X86 64 (Intel syntax)", "x64" },
{ // item 2
CS_ARCH_ARM, CS_MODE_ARM, "ARM", "arm" },
{ // item 3
CS_ARCH_ARM, CS_MODE_THUMB, "THUMB", "thumb" },
{ // item 4
CS_ARCH_ARM, (cs_mode)(CS_MODE_ARM + CS_MODE_V8), "Arm-V8", "armv8" },
{ // item 5
CS_ARCH_ARM, (cs_mode)(CS_MODE_THUMB + CS_MODE_V8), "THUMB+V8",
"thumbv8" },
{ // item 6
CS_ARCH_ARM, (cs_mode)(CS_MODE_THUMB + CS_MODE_MCLASS),
"Thumb-MClass", "cortexm" },
{ // item 7
CS_ARCH_AARCH64, (cs_mode)0, "AARCH64", "aarch64" },
{ // item 8
CS_ARCH_MIPS, (cs_mode)(CS_MODE_MIPS32 + CS_MODE_BIG_ENDIAN),
"MIPS-32 (Big-endian)", "mipsbe" },
{ // item 9
CS_ARCH_MIPS, (cs_mode)(CS_MODE_MIPS32 + CS_MODE_MICRO),
"MIPS-32 (micro)", "mipsmicro" },
{ //item 10
CS_ARCH_MIPS, CS_MODE_MIPS64, "MIPS-64-EL (Little-endian)",
"mips64" },
{ //item 11
CS_ARCH_MIPS, CS_MODE_MIPS32, "MIPS-32-EL (Little-endian)", "mips" },
{ //item 12
CS_ARCH_MIPS, (cs_mode)(CS_MODE_MIPS64 + CS_MODE_BIG_ENDIAN),
"MIPS-64 (Big-endian)", "mips64be" },
{ //item 13
CS_ARCH_MIPS,
(cs_mode)(CS_MODE_MIPS32 + CS_MODE_MICRO + CS_MODE_BIG_ENDIAN),
"MIPS-32 | Micro (Big-endian)", "mipsbemicro" },
{ //item 14
CS_ARCH_PPC, CS_MODE_64 | CS_MODE_BIG_ENDIAN, "PPC-64", "ppc64be" },
{ //item 15
CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN, "Sparc", "sparc" },
{ //item 16
CS_ARCH_SPARC, (cs_mode)(CS_MODE_BIG_ENDIAN + CS_MODE_V9), "SparcV9",
"sparcv9" },
{ //item 17
CS_ARCH_SYSTEMZ, (cs_mode)CS_MODE_BIG_ENDIAN, "SystemZ", "systemz" },
{ //item 18
CS_ARCH_XCORE, (cs_mode)0, "XCore", "xcore" },
{ //item 19
CS_ARCH_MIPS, (cs_mode)(CS_MODE_MIPS32R6 + CS_MODE_BIG_ENDIAN),
"MIPS-32R6 (Big-endian)", "mipsbe32r6" },
{ //item 20
CS_ARCH_MIPS,
(cs_mode)(CS_MODE_MIPS32R6 + CS_MODE_MICRO + CS_MODE_BIG_ENDIAN),
"MIPS-32R6 (Micro+Big-endian)", "mipsbe32r6micro" },
{ //item 21
CS_ARCH_MIPS, CS_MODE_MIPS32R6, "MIPS-32R6 (Little-endian)",
"mips32r6" },
{ //item 22
CS_ARCH_MIPS, (cs_mode)(CS_MODE_MIPS32R6 + CS_MODE_MICRO),
"MIPS-32R6 (Micro+Little-endian)", "mips32r6micro" },
{ //item 23
CS_ARCH_M68K, (cs_mode)0, "M68K", "m68k" },
{ //item 24
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_6809, "M680X_M6809", "m6809" },
{ //item 25
CS_ARCH_EVM, (cs_mode)0, "EVM", "evm" },
{ //item 26
CS_ARCH_MOS65XX, (cs_mode)0, "MOS65XX", "mos65xx" },
{ //item 27
CS_ARCH_TMS320C64X, CS_MODE_BIG_ENDIAN, "tms320c64x", "tms320c64x" },
{ //item 28
CS_ARCH_WASM, (cs_mode)0, "WASM", "wasm" },
{ //item 29
CS_ARCH_BPF, CS_MODE_LITTLE_ENDIAN | CS_MODE_BPF_CLASSIC, "cBPF",
"bpf" },
{ //item 30
CS_ARCH_BPF, CS_MODE_LITTLE_ENDIAN | CS_MODE_BPF_EXTENDED, "eBPF",
"ebpf" },
{ //item 31
CS_ARCH_BPF, CS_MODE_BIG_ENDIAN | CS_MODE_BPF_CLASSIC, "cBPF",
"bpfbe" },
{ //item 32
CS_ARCH_BPF, CS_MODE_BIG_ENDIAN | CS_MODE_BPF_EXTENDED, "eBPF",
"ebpfbe" },
{ // item 33
CS_ARCH_X86, CS_MODE_16, "X86 16 (Intel syntax)", "x16" },
{ // item 34
CS_ARCH_M68K, CS_MODE_M68K_040, "M68K mode 40", "m68k40" },
{ //item 35
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_6800, "M680X_M6800", "m6800" },
{ //item 36
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_6801, "M680X_M6801", "m6801" },
{ //item 37
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_6805, "M680X_M6805", "m6805" },
{ //item 38
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_6808, "M680X_M6808", "m6808" },
{ //item 39
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_6811, "M680X_M6811", "m6811" },
{ //item 40
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_CPU12, "M680X_cpu12", "cpu12" },
{ //item 41
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_6301, "M680X_M6808", "hd6301" },
{ //item 42
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_6309, "M680X_M6808", "hd6309" },
{ //item 43
CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_HCS08, "M680X_M6808", "hcs08" },
{ CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_RS08, "M680X_RS08", "rs08" },
{ CS_ARCH_M680X, (cs_mode)CS_MODE_M680X_HCS12X, "M680X_HCS12X",
"hcs12x" },
{ //item 44
CS_ARCH_RISCV, CS_MODE_RISCV32, "RISCV", "riscv32" },
{ //item 45
CS_ARCH_RISCV, CS_MODE_RISCV64, "RISCV", "riscv64" },
{ //item 46
CS_ARCH_PPC, CS_MODE_64 | CS_MODE_BIG_ENDIAN | CS_MODE_QPX, "ppc+qpx",
"ppc64beqpx" },
{ //item 46
CS_ARCH_PPC, CS_MODE_32 | CS_MODE_BIG_ENDIAN | CS_MODE_PS, "ppc+ps",
"ppc32beps" },
{ CS_ARCH_TRICORE,
CS_MODE_32 | CS_MODE_BIG_ENDIAN | CS_MODE_TRICORE_110, "TRICORE",
"tc110" },
{ CS_ARCH_TRICORE,
CS_MODE_32 | CS_MODE_BIG_ENDIAN | CS_MODE_TRICORE_120, "TRICORE",
"tc120" },
{ CS_ARCH_TRICORE,
CS_MODE_32 | CS_MODE_BIG_ENDIAN | CS_MODE_TRICORE_130, "TRICORE",
"tc130" },
{ CS_ARCH_TRICORE,
CS_MODE_32 | CS_MODE_BIG_ENDIAN | CS_MODE_TRICORE_131, "TRICORE",
"tc131" },
{ CS_ARCH_TRICORE,
CS_MODE_32 | CS_MODE_BIG_ENDIAN | CS_MODE_TRICORE_160, "TRICORE",
"tc160" },
{ CS_ARCH_TRICORE,
CS_MODE_32 | CS_MODE_BIG_ENDIAN | CS_MODE_TRICORE_161, "TRICORE",
"tc161" },
{ CS_ARCH_TRICORE,
CS_MODE_32 | CS_MODE_BIG_ENDIAN | CS_MODE_TRICORE_162, "TRICORE",
"tc162" },
{ CS_ARCH_TRICORE,
CS_MODE_32 | CS_MODE_BIG_ENDIAN | CS_MODE_TRICORE_180, "TRICORE",
"tc180" },
{ CS_ARCH_XTENSA, CS_MODE_XTENSA_ESP32, "XTENSA ESP32", "esp32" },
{ CS_ARCH_XTENSA, CS_MODE_XTENSA_ESP32S2, "XTENSA ESP32S2", "esp32s2" },
{ CS_ARCH_XTENSA, CS_MODE_XTENSA_ESP8266, "XTENSA ESP8266", "esp8266" },
// dummy entry to mark the end of this array.
// DO NOT DELETE THIS
{
0,
0,
NULL,
NULL,
},
};
// get length of platforms[]
unsigned int platform_len(void)
{
unsigned int c;
for (c = 0; platforms[c].cstoolname; c++)
;
return c;
}
// get platform entry encoded n (first byte for input data of OSS fuzz)
unsigned int get_platform_entry(uint8_t n)
{
unsigned len = platform_len();
if (len == 0) {
return 0;
}
return n % len;
}
// get cstoolname from encoded n (first byte for input data of OSS fuzz)
const char *get_platform_cstoolname(uint8_t n)
{
return platforms[get_platform_entry(n)].cstoolname;
}