Turnstone Operating System
|
Linker implementation for both efi and turnstone executables. More...
#include <linker.h>
#include <cpu.h>
#include <memory.h>
#include <memory/frame.h>
#include <memory/paging.h>
#include <systeminfo.h>
#include <logging.h>
#include <strings.h>
#include <efi.h>
#include <list.h>
Functions | |
MODULE ("turnstone.lib.linker") | |
int8_t | linker_link_module (linker_context_t *ctx, linker_module_t *module) |
int8_t | linker_efi_image_relocation_entry_cmp (const void *a, const void *b) |
int8_t | linker_efi_image_section_header_cmp (const void *a, const void *b) |
buffer_t * | linker_build_relocation_table_buffer (linker_context_t *ctx) |
buffer_t * | linker_build_metadata_buffer (linker_context_t *ctx) |
int8_t | linker_destroy_context (linker_context_t *ctx) |
int8_t | linker_build_symbols (linker_context_t *ctx, uint64_t module_id, uint64_t section_id, uint8_t section_type, uint64_t section_offset) |
_Static_assert (sizeof(linker_vm_plt0_entry_data)==0x80, "plt0 entry size mismatch") | |
_Static_assert (sizeof(linker_plt_entry_data)==0x40, "plt entry size mismatch") | |
int8_t | linker_build_relocations (linker_context_t *ctx, uint64_t section_id, uint8_t section_type, uint64_t section_offset, linker_module_t *module, boolean_t recursive) |
int8_t | linker_build_module (linker_context_t *ctx, uint64_t module_id, boolean_t recursive) |
int8_t | linker_calculate_program_size (linker_context_t *ctx) |
int8_t | linker_bind_linear_addresses (linker_context_t *ctx) |
int64_t | linker_get_section_count_without_relocations (linker_context_t *ctx) |
int8_t | linker_bind_got_entry_values (linker_context_t *ctx) |
boolean_t | linker_is_all_symbols_resolved (linker_context_t *ctx) |
int8_t | linker_link_program (linker_context_t *ctx) |
buffer_t * | linker_build_efi_image_relocations (linker_context_t *ctx) |
buffer_t * | linker_build_efi_image_section_headers_without_relocations (linker_context_t *ctx) |
buffer_t * | linker_build_efi (linker_context_t *ctx) |
int8_t | linker_dump_program_to_array (linker_context_t *ctx, linker_program_dump_type_t dump_type, uint8_t *array) |
static int8_t | linker_build_metadata_buffer_null_terminator (buffer_t *metadata_buffer, uint64_t count) |
Variables | |
const char_t *const | linker_section_type_names [LINKER_SECTION_TYPE_NR_SECTIONS] |
linker section type names More... | |
const uint8_t | linker_vm_plt0_entry_data [] |
const uint8_t | linker_plt_entry_data [] |
const uint8_t | linker_program_header_trampoline_code [] |
Linker implementation for both efi and turnstone executables.
This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.
const uint8_t linker_plt_entry_data[] |
const uint8_t linker_program_header_trampoline_code[] |
linker_section_type_names |
linker section type names