UbixOS
2.0
|
#include <sys/elf.h>
#include <ubixos/sched.h>
#include <ubixos/kpanic.h>
#include <lib/kmalloc.h>
#include <vmm/vmm.h>
#include <lib/kprintf.h>
#include <string.h>
Go to the source code of this file.
Functions | |
int | elf_load_file (kTask_t *p, const char *file, uint32_t *addr, uint32_t *entry) |
char * | elfGetPhType (int phType) |
char * | elfGetRelType (int relType) |
char * | elfGetShType (int shType) |
Variables | |
struct { | |
uInt32 id | |
char * phTypeName | |
} | elfPhType [] = { { "PT_NULL", 0 }, { "PT_LOAD", 1 }, { "PT_DYNAMIC", 2 }, { "PT_INTERP", 3 }, { "PT_NOTE", 4 }, { "PT_SHLIB", 5 }, { "PT_PHDR", 6 }, { "PT_LOPROC", 0x70000000 }, { "PT_HIPROC", 0x7fffffff }, } |
struct { | |
uInt32 id | |
char * relTypeName | |
} | elfRelType [] = { { "R_386_NONE", 0 }, { "R_386_32", 1 }, { "R_386_PC32", 2 }, { "R_386_GOT32", 3 }, { "R_386_PLT32", 4 }, { "R_386_COPY", 5 }, { "R_386_GLOB_DAT", 6 }, { "R_386_JMP_SLOT", 7 }, { "R_386_RELATIVE", 8 }, { "R_386_GOTOFF", 9 }, { "R_386_GOTPC", 10 }, } |
struct { | |
uInt32 id | |
char * shTypeName | |
} | elfShType [] = { { "SHT_NULL", 0 }, { "SHT_PROGBITS", 1 }, { "SHT_SYMTAB", 2 }, { "SHT_STRTAB", 3 }, { "SHT_RELA", 4 }, { "SHT_HASH", 5 }, { "SHT_DYNAMIC", 6 }, { "SHT_NOTE", 7 }, { "SHT_NOBITS", 8 }, { "SHT_REL", 9 }, { "SHT_SHLIB", 10 }, { "SHT_DYNSYM", 11 }, } |
struct { | |
char * elfTypeName | |
uInt32 id | |
} | elfType [] = { { "ET_NONE", 0 }, { "ET_REL", 1 }, { "ET_EXEC", 2 }, { "ET_DYN", 3 }, { "ET_CORE", 4 }, { "ET_LOPROC", 0xff00 }, { "ET_HIPROC", 0xffff }, } |
Definition at line 37 of file elf.c.
References _current, Elf32_Ehdr::e_entry, Elf32_Ehdr::e_ident, Elf32_Ehdr::e_phnum, Elf32_Ehdr::e_phoff, Elf32_Ehdr::e_type, ET_DYN, ET_EXEC, fclose(), fopen(), fread(), fseek(), taskStruct::id, K_PANIC, kfree(), kmalloc(), memset(), Elf32_Phdr::p_memsz, Elf32_Phdr::p_vaddr, PAGE_DEFAULT, PAGE_PRESENT, PAGE_USER, PT_LOAD, vmm_findFreePage(), vmm_remapPage(), and vmm_setPageAttributes().
char* elfGetPhType | ( | int | phType | ) |
Definition at line 163 of file elf.c.
References elfPhType, and phTypeName.
char* elfGetRelType | ( | int | relType | ) |
Definition at line 167 of file elf.c.
References elfRelType, and relTypeName.
Referenced by kmod_load(), and ldEnable().
char* elfGetShType | ( | int | shType | ) |
Definition at line 159 of file elf.c.
References elfShType, and shTypeName.
const { ... } elfPhType[] |
Referenced by elfGetPhType().
const { ... } elfRelType[] |
Referenced by elfGetRelType().
const { ... } elfShType[] |
Referenced by elfGetShType().
const { ... } elfType[] |
char* phTypeName |
Definition at line 145 of file elf.c.
Referenced by elfGetPhType().
char* relTypeName |
Definition at line 155 of file elf.c.
Referenced by elfGetRelType().
char* shTypeName |
Definition at line 150 of file elf.c.
Referenced by elfGetShType().