CLRX  1
An unofficial OpenCL extensions designed for Radeon GPUs
Classes | Namespaces | Typedefs | Enumerations | Functions
ElfBinaries.h File Reference

Elf binaries handling. More...

#include <CLRX/Config.h>
#include <cstddef>
#include <cstdint>
#include <climits>
#include <string>
#include <utility>
#include <ostream>
#include <CLRX/amdbin/Elf.h>
#include <CLRX/utils/MemAccess.h>
#include <CLRX/utils/Utilities.h>
#include <CLRX/utils/Containers.h>
#include <CLRX/utils/InputOutput.h>

Go to the source code of this file.

Classes

struct  CLRX::Elf32Types
 ELF 32-bit types. More...
 
struct  CLRX::Elf64Types
 ELF 32-bit types. More...
 
class  CLRX::ElfBinaryTemplate< Types >
 ELF binary class. More...
 
class  CLRX::ElfRegionContent
 elf region content generator for elf region More...
 
struct  CLRX::ElfHeaderTemplate< Types >
 elf header template More...
 
struct  CLRX::BinSection
 section structure to external usage (for example in the binary generator input) More...
 
struct  CLRX::BinSymbol
 symbol structure to external usage (fo example in the binary generator input) More...
 
struct  CLRX::ElfRegionTemplate< Types >
 template of ElfRegion More...
 
struct  CLRX::ElfNote
 ELF note structure. More...
 
struct  CLRX::ElfProgramHeaderTemplate< Types >
 template of ELF program header More...
 
struct  CLRX::ElfSymbolTemplate< Types >
 ELF symbol template. More...
 
class  CLRX::ElfBinaryGenTemplate< Types >
 ELF binary generator. More...
 

Namespaces

 CLRX
 main namespace
 

Typedefs

typedef class ElfBinaryTemplate< Elf32Types > CLRX::ElfBinary32
 type for 32-bit ELF binary
 
typedef class ElfBinaryTemplate< Elf64Types > CLRX::ElfBinary64
 type for 64-bit ELF binary
 
typedef ElfHeaderTemplate< Elf32Types > CLRX::ElfHeader32
 32-bit elf header
 
typedef ElfHeaderTemplate< Elf64Types > CLRX::ElfHeader64
 64-bit elf header
 
typedef ElfRegionTemplate< Elf32Types > CLRX::ElfRegion32
 32-bit region (for 32-bit elf)
 
typedef ElfRegionTemplate< Elf64Types > CLRX::ElfRegion64
 64-bit region (for 64-bit elf)
 
typedef ElfProgramHeaderTemplate< Elf32Types > CLRX::ElfProgramHeader32
 32-bit elf program header
 
typedef ElfProgramHeaderTemplate< Elf64Types > CLRX::ElfProgramHeader64
 64-bit elf program header
 
typedef ElfSymbolTemplate< Elf32Types > CLRX::ElfSymbol32
 32-bit elf symbol
 
typedef ElfSymbolTemplate< Elf64Types > CLRX::ElfSymbol64
 64-bit elf symbol
 
typedef class ElfBinaryGenTemplate< Elf32Types > CLRX::ElfBinaryGen32
 type for 32-bit ELF binary generator
 
typedef class ElfBinaryGenTemplate< Elf64Types > CLRX::ElfBinaryGen64
 type for 64-bit ELF binary generator
 

Enumerations

enum  : cxuint { CLRX::BINGEN_DEFAULT = UINT_MAX, CLRX::BINGEN_NOTSUPPLIED = UINT_MAX-1 }
 
enum  : uint64_t { CLRX::BINGEN64_DEFAULT = UINT64_MAX, CLRX::BINGEN64_NOTSUPPLIED = UINT64_MAX-1 }
 
enum  : uint16_t { CLRX::BINGEN16_DEFAULT = UINT16_MAX, CLRX::BINGEN16_NOTSUPPLIED = UINT16_MAX-1 }
 
enum  : uint8_t { CLRX::BINGEN8_DEFAULT = UINT8_MAX, CLRX::BINGEN8_NOTSUPPLIED = UINT8_MAX-1 }
 
enum  : Flags { CLRX::ELF_CREATE_SECTIONMAP = 1, CLRX::ELF_CREATE_SYMBOLMAP = 2, CLRX::ELF_CREATE_DYNSYMMAP = 4, CLRX::ELF_CREATE_ALL = 0xf }
 
enum  CLRX::ElfRegionType : cxbyte { CLRX::ElfRegionType::PHDR_TABLE, CLRX::ElfRegionType::SHDR_TABLE, CLRX::ElfRegionType::SECTION, CLRX::ElfRegionType::USER }
 type of Elf region More...
 
enum  : cxuint {
  ELFSECTID_START = UINT_MAX-255, ELFSECTID_SHSTRTAB = ELFSECTID_START, ELFSECTID_STRTAB, ELFSECTID_SYMTAB,
  ELFSECTID_DYNSTR, ELFSECTID_DYNSYM, ELFSECTID_TEXT, ELFSECTID_RODATA,
  ELFSECTID_DATA, ELFSECTID_BSS, ELFSECTID_COMMENT, ELFSECTID_STD_MAX = ELFSECTID_COMMENT,
  ELFSECTID_OTHER_BUILTIN = ELFSECTID_STD_MAX+1, ELFSECTID_NULL = UINT_MAX-2, ELFSECTID_ABS = UINT_MAX-1, ELFSECTID_UNDEF = UINT_MAX
}
 
enum  : cxuint { PHREGION_FILESTART = UINT_MAX }
 

Functions

bool CLRX::isElfBinary (size_t binarySize, const cxbyte *binary)
 check whether binary data is is ELF binary
 
uint16_t CLRX::convertSectionId (cxuint sectionIndex, const uint16_t *builtinSections, cxuint maxBuiltinSection, cxuint extraSectionIndex)
 convert section id to elf section id
 

Detailed Description

Elf binaries handling.