RetroArch
Classes | Namespaces | Enumerations | Functions | Variables
elf.h File Reference
#include <cstdint>
#include "be_val.h"
Include dependency graph for elf.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  elf::Header
 
struct  elf::SectionHeader
 
struct  elf::Symbol
 
struct  elf::Rela
 
struct  elf::RplImport
 
struct  elf::RplExport
 
struct  elf::RplExport::Export
 
struct  elf::RplCrc
 
struct  elf::RplFileInfo
 

Namespaces

 elf
 

Enumerations

enum  elf::Machine : uint32_t { elf::EM_PPC = 20 }
 
enum  elf::Encoding : uint32_t { elf::ELFDATANONE = 0, elf::ELFDATA2LSB = 1, elf::ELFDATA2MSB = 2 }
 
enum  elf::Class : uint32_t { elf::ELFCLASSNONE = 0, elf::ELFCLASS32 = 1, elf::ELFCLASS64 = 2 }
 
enum  elf::Version : uint32_t { elf::EV_NONE = 0, elf::EV_CURRENT = 1 }
 
enum  elf::FileType : uint32_t {
  elf::ET_NONE = 0, elf::ET_REL = 1, elf::ET_EXEC = 2, elf::ET_DYN = 3,
  elf::ET_CORE = 4, elf::ET_LOPROC = 0xff00, elf::ET_CAFE_RPL = 0xff01, elf::ET_HIPROC = 0xffff
}
 
enum  elf::EABI : uint32_t { elf::EABI_CAFE = 0xcafe }
 
enum  elf::SectionFlags : uint32_t {
  elf::SHF_WRITE = 0x1, elf::SHF_ALLOC = 0x2, elf::SHF_EXECINSTR = 0x4, elf::SHF_DEFLATED = 0x08000000,
  elf::SHF_MASKPROC = 0xF0000000
}
 
enum  elf::SectionType : uint32_t {
  elf::SHT_NULL = 0, elf::SHT_PROGBITS = 1, elf::SHT_SYMTAB = 2, elf::SHT_STRTAB = 3,
  elf::SHT_RELA = 4, elf::SHT_HASH = 5, elf::SHT_DYNAMIC = 6, elf::SHT_NOTE = 7,
  elf::SHT_NOBITS = 8, elf::SHT_REL = 9, elf::SHT_SHLIB = 10, elf::SHT_DYNSYM = 11,
  elf::SHT_INIT_ARRAY = 14, elf::SHT_FINI_ARRAY = 15, elf::SHT_PREINIT_ARRAY = 16, elf::SHT_GROUP = 17,
  elf::SHT_SYMTAB_SHNDX = 18, elf::SHT_LOPROC = 0x70000000, elf::SHT_HIPROC = 0x7fffffff, elf::SHT_LOUSER = 0x80000000,
  elf::SHT_RPL_EXPORTS = 0x80000001, elf::SHT_RPL_IMPORTS = 0x80000002, elf::SHT_RPL_CRCS = 0x80000003, elf::SHT_RPL_FILEINFO = 0x80000004,
  elf::SHT_HIUSER = 0xffffffff
}
 
enum  elf::SymbolBinding : uint32_t {
  elf::STB_LOCAL = 0, elf::STB_GLOBAL = 1, elf::STB_WEAK = 2, elf::STB_GNU_UNIQUE = 10,
  elf::STB_LOOS = 10, elf::STB_HIOS = 12, elf::STB_LOPROC = 13, elf::STB_HIPROC = 15
}
 
enum  elf::SymbolType : uint32_t {
  elf::STT_NOTYPE = 0, elf::STT_OBJECT = 1, elf::STT_FUNC = 2, elf::STT_SECTION = 3,
  elf::STT_FILE = 4, elf::STT_COMMON = 5, elf::STT_TLS = 6, elf::STT_LOOS = 7,
  elf::STT_HIOS = 8, elf::STT_GNU_IFUNC = 10, elf::STT_LOPROC = 13, elf::STT_HIPROC = 15
}
 
enum  elf::SectionIndex : uint16_t {
  elf::SHN_UNDEF = 0, elf::SHN_LORESERVE = 0xff00, elf::SHN_ABS = 0xfff1, elf::SHN_COMMON = 0xfff2,
  elf::SHN_XINDEX = 0xffff, elf::SHN_HIRESERVE = 0xffff
}
 
enum  elf::RelocationType : uint32_t {
  elf::R_PPC_NONE = 0, elf::R_PPC_ADDR32 = 1, elf::R_PPC_ADDR24 = 2, elf::R_PPC_ADDR16 = 3,
  elf::R_PPC_ADDR16_LO = 4, elf::R_PPC_ADDR16_HI = 5, elf::R_PPC_ADDR16_HA = 6, elf::R_PPC_ADDR14 = 7,
  elf::R_PPC_ADDR14_BRTAKEN = 8, elf::R_PPC_ADDR14_BRNTAKEN = 9, elf::R_PPC_REL24 = 10, elf::R_PPC_REL14 = 11,
  elf::R_PPC_REL14_BRTAKEN = 12, elf::R_PPC_REL14_BRNTAKEN = 13, elf::R_PPC_GOT16 = 14, elf::R_PPC_GOT16_LO = 15,
  elf::R_PPC_GOT16_HI = 16, elf::R_PPC_GOT16_HA = 17, elf::R_PPC_PLTREL24 = 18, elf::R_PPC_JMP_SLOT = 21,
  elf::R_PPC_RELATIVE = 22, elf::R_PPC_LOCAL24PC = 23, elf::R_PPC_REL32 = 26, elf::R_PPC_TLS = 67,
  elf::R_PPC_DTPMOD32 = 68, elf::R_PPC_TPREL16 = 69, elf::R_PPC_TPREL16_LO = 70, elf::R_PPC_TPREL16_HI = 71,
  elf::R_PPC_TPREL16_HA = 72, elf::R_PPC_TPREL32 = 73, elf::R_PPC_DTPREL16 = 74, elf::R_PPC_DTPREL16_LO = 75,
  elf::R_PPC_DTPREL16_HI = 76, elf::R_PPC_DTPREL16_HA = 77, elf::R_PPC_DTPREL32 = 78, elf::R_PPC_GOT_TLSGD16 = 79,
  elf::R_PPC_GOT_TLSGD16_LO = 80, elf::R_PPC_GOT_TLSGD16_HI = 81, elf::R_PPC_GOT_TLSGD16_HA = 82, elf::R_PPC_GOT_TLSLD16 = 83,
  elf::R_PPC_GOT_TLSLD16_LO = 84, elf::R_PPC_GOT_TLSLD16_HI = 85, elf::R_PPC_GOT_TLSLD16_HA = 86, elf::R_PPC_GOT_TPREL16 = 87,
  elf::R_PPC_GOT_TPREL16_LO = 88, elf::R_PPC_GOT_TPREL16_HI = 89, elf::R_PPC_GOT_TPREL16_HA = 90, elf::R_PPC_GOT_DTPREL16 = 91,
  elf::R_PPC_GOT_DTPREL16_LO = 92, elf::R_PPC_GOT_DTPREL16_HI = 93, elf::R_PPC_GOT_DTPREL16_HA = 94, elf::R_PPC_TLSGD = 95,
  elf::R_PPC_TLSLD = 96, elf::R_PPC_EMB_SDA21 = 109, elf::R_PPC_REL16 = 249, elf::R_PPC_REL16_LO = 250,
  elf::R_PPC_REL16_HI = 251, elf::R_PPC_REL16_HA = 252
}
 
enum  elf::RplFileInfoFlag : uint32_t { elf::RPL_IS_RPX = 0x2 }
 

Functions

 elf::CHECK_SIZE (Header, 0x34)
 
 elf::CHECK_SIZE (SectionHeader, 0x28)
 
 elf::CHECK_SIZE (Symbol, 0x10)
 
 elf::CHECK_SIZE (Rela, 0x0C)
 
 elf::CHECK_SIZE (RplCrc, 0x04)
 
 elf::CHECK_SIZE (RplFileInfo, 0x60)
 

Variables

static const unsigned elf::HeaderMagic = 0x7f454c46