32 lines
868 B
C
32 lines
868 B
C
// This file is part of noxos and licensed under the MIT open source license
|
|
|
|
#ifndef NOX_ELF_H
|
|
#define NOX_ELF_H
|
|
|
|
#include "drivers/builtin/elf/header.h"
|
|
#include "drivers/builtin/elf/section.h"
|
|
#include "drivers/builtin/elf/mapping.h"
|
|
#include "utils/symbol.h"
|
|
|
|
typedef struct {
|
|
elf_header_T header;
|
|
uint64_t num_symbols;
|
|
symbol_T* symbols;
|
|
uint64_t num_mappings;
|
|
elf_mapping_T* mappings;
|
|
void* string_table;
|
|
} elf_executable_T;
|
|
|
|
typedef struct {
|
|
elf_executable_T* executable;
|
|
elf_section_T* symbol_table;
|
|
elf_section_T* section_header_string_table;
|
|
|
|
uint8_t* buffer;
|
|
} elf_executable_temp_T;
|
|
|
|
elf_executable_T* elf_executable_create (uint8_t* buffer);
|
|
void elf_executable_destruct (elf_executable_T* executable);
|
|
|
|
#endif //NOX_ELF_H
|