#include "stdafx.h" #include "ELF.h" // ELF loading error information template <> void fmt_class_string::format(std::string& out, u64 arg) { format_enum(out, arg, [](elf_error error) { switch (error) { case elf_error::ok: return "OK"; case elf_error::stream: return "File not found"; case elf_error::stream_header: return "Failed to read ELF header"; case elf_error::stream_phdrs: return "Failed to read ELF program headers"; case elf_error::stream_shdrs: return "Failed to read ELF section headers"; case elf_error::stream_data: return "Failed to read ELF program data"; case elf_error::header_magic: return "Not an ELF"; case elf_error::header_version: return "Invalid or unsupported ELF format"; case elf_error::header_class: return "Invalid ELF class"; case elf_error::header_machine: return "Invalid ELF machine"; case elf_error::header_endianness: return "Invalid ELF data (endianness)"; case elf_error::header_type: return "Invalid ELF type"; case elf_error::header_os: return "Invalid ELF OS ABI"; } return unknown; }); }