The Pedigree Project
0.1
|
the kernel linker More...
Classes | |
class | Elf |
class | Module |
class | KernelElf |
Macros | |
#define | DEBUG NOTICE |
#define | ET_NONE 0x0 |
#define | ET_REL 0x1 |
#define | ET_EXEC 0x2 |
#define | ET_DYN 0x3 |
#define | ET_CORE 0x4 |
#define | SHT_PROGBITS 0x1 |
#define | SHT_SYMTAB 0x2 |
#define | SHT_STRTAB 0x3 |
#define | SHT_RELA 0x4 |
#define | SHT_HASH 0x5 |
#define | SHT_DYNAMIC 0x6 |
#define | SHT_NOTE 0x7 |
#define | SHT_NOBITS 0x8 |
#define | SHT_REL 0x9 |
#define | SHT_DYNSYM 0xb |
#define | SHT_INIT_ARRAY 0xe |
#define | SHT_FINI_ARRAY 0xf |
#define | SHT_PREINIT_ARRAY 0x10 |
#define | SHF_WRITE 0x1 |
#define | SHF_ALLOC 0x2 |
#define | SHF_EXECINSTR 0x4 |
#define | SHF_MASKPROC 0xf0000000 |
#define | PF_X 0x1 |
#define | PF_W 0x2 |
#define | PF_R 0x4 |
#define | PT_NULL 0 /* Program header table entry unused */ |
#define | PT_LOAD 1 /* Loadable program segment */ |
#define | PT_DYNAMIC 2 /* Dynamic linking information */ |
#define | PT_INTERP 3 /* Program interpreter */ |
#define | PT_NOTE 4 /* Auxiliary information */ |
#define | PT_SHLIB 5 /* Reserved */ |
#define | PT_PHDR 6 /* Entry for header table itself */ |
#define | PT_TLS 7 /* Thread-local storage segment */ |
#define | PT_NUM 8 /* Number of defined types */ |
#define | DT_NULL 0 /* Marks end of dynamic section */ |
#define | DT_NEEDED 1 /* Name of needed library */ |
#define | DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */ |
#define | DT_PLTGOT 3 /* Processor defined value */ |
#define | DT_HASH 4 /* Address of symbol hash table */ |
#define | DT_STRTAB 5 /* Address of string table */ |
#define | DT_SYMTAB 6 /* Address of symbol table */ |
#define | DT_RELA 7 /* Address of Rela relocs */ |
#define | DT_RELASZ 8 /* Total size of Rela relocs */ |
#define | DT_RELAENT 9 /* Size of one Rela reloc */ |
#define | DT_STRSZ 10 /* Size of string table */ |
#define | DT_SYMENT 11 /* Size of one symbol table entry */ |
#define | DT_INIT 12 /* Address of init function */ |
#define | DT_FINI 13 /* Address of termination function */ |
#define | DT_SONAME 14 /* Name of shared object */ |
#define | DT_RPATH 15 /* Library search path (deprecated) */ |
#define | DT_SYMBOLIC 16 /* Start symbol search here */ |
#define | DT_REL 17 /* Address of Rel relocs */ |
#define | DT_RELSZ 18 /* Total size of Rel relocs */ |
#define | DT_RELENT 19 /* Size of one Rel reloc */ |
#define | DT_PLTREL 20 /* Type of reloc in PLT */ |
#define | DT_DEBUG 21 /* For debugging; unspecified */ |
#define | DT_TEXTREL 22 /* Reloc might modify .text */ |
#define | DT_JMPREL 23 /* Address of PLT relocs */ |
#define | DT_BIND_NOW 24 /* Process relocations of object */ |
#define | DT_INIT_ARRAY 25 /* Array with addresses of init fct */ |
#define | DT_FINI_ARRAY 26 /* Array with addresses of fini fct */ |
#define | DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */ |
#define | DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */ |
#define | DT_RUNPATH 29 /* Library search path */ |
#define | DT_FLAGS 30 /* Flags for the object being loaded */ |
#define | DT_ENCODING 32 /* Start of encoded range */ |
#define | DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/ |
#define | DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */ |
#define | STT_NOTYPE 0 |
#define | STT_OBJECT 1 |
#define | STT_FUNC 2 |
#define | STT_SECTION 3 |
#define | STT_FILE 4 |
#define | STT_COMMON 5 |
#define | STT_TLS 6 |
#define | STB_LOCAL 0 |
#define | STB_GLOBAL 1 |
#define | STB_WEAK 2 |
#define | STV_DEFAULT 0 |
#define | STV_INTERNAL 1 |
#define | STV_HIDDEN 2 |
#define | STV_PROTECTED 3 |
#define | R_SYM(val) ((val) >> 32) |
#define | R_TYPE(val) ((val) &0xffffffffUL) |
#define | ST_BIND(i) ((i) >> 4) |
#define | ST_TYPE(i) ((i) &0xf) |
#define | ST_INFO(b, t) (((b) << 4) + ((t) &0xf)) |
#define | ST_TYPEOK(x) (ST_TYPE((x)) <= STT_FUNC) |
Functions | |
template const char * | Elf::lookupSymbol< Elf::ElfSymbol_t > (uintptr_t addr, uintptr_t *startAddr=0, ElfSymbol_t *symbolTable=0) |
template const char * | Elf::lookupSymbol< Elf::Elf32Symbol_t > (uintptr_t addr, uintptr_t *startAddr=0, Elf32Symbol_t *symbolTable=0) |
the kernel linker
the kernel linker
template const char* Elf::lookupSymbol< Elf::ElfSymbol_t > | ( | uintptr_t | addr, |
uintptr_t * | startAddr = 0 , |
||
ElfSymbol_t * | symbolTable = 0 |
||
) |
External specializations for ELF symbol types.