8#include "elf_api_interface.h"
22 uint32_t debug_link_size;
27 uint32_t mmap_entry_count;
34 ELFFileLoadStatusSuccess = 0,
35 ELFFileLoadStatusUnspecifiedError,
36 ELFFileLoadStatusMissingImports,
40 ElfProcessSectionResultNotFound,
41 ElfProcessSectionResultCannotProcess,
42 ElfProcessSectionResultSuccess,
43} ElfProcessSectionResult;
46 ElfLoadSectionTableResultError,
47 ElfLoadSectionTableResultNoMemory,
48 ElfLoadSectionTableResultSuccess,
49} ElfLoadSectionTableResult;
51typedef bool(ElfProcessSection)(
File* file,
size_t offset,
size_t size,
void* context);
150 ElfProcessSection* process_section,
Flipper application manifest.
ElfLoadSectionTableResult elf_file_load_section_table(ELFFile *elf_file)
Load ELF file section table (load stage #1)
Definition elf_file.c:885
bool elf_file_is_init_complete(ELFFile *elf)
Check if ELF file pre-run stage was executed and its code is runnable.
Definition elf_file.c:1026
void elf_file_call_fini(ELFFile *elf)
Execute ELF file post-run stage, call static destructors for example (load stage #5) Must be done if ...
Definition elf_file.c:1035
const ElfApiInterface * elf_file_get_api_interface(ELFFile *elf_file)
Get ELF file API interface.
Definition elf_file.c:1041
void elf_file_call_init(ELFFile *elf)
Execute ELF file pre-run stage, call static constructors for example (load stage #3) Must be done bef...
Definition elf_file.c:1019
ELFFile * elf_file_alloc(Storage *storage, const ElfApiInterface *api_interface)
Allocate ELFFile instance.
Definition elf_file.c:810
void elf_file_init_debug_info(ELFFile *elf_file, ELFDebugInfo *debug_info)
Get ELF file debug info.
Definition elf_file.c:1045
ELFFileLoadStatus elf_file_load_sections(ELFFile *elf_file)
Load and relocate ELF file sections (load stage #2)
Definition elf_file.c:973
ElfProcessSectionResult elf_process_section(ELFFile *elf_file, const char *name, ElfProcessSection *process_section, void *context)
Process ELF file section.
Definition elf_file.c:938
bool elf_file_open(ELFFile *elf_file, const char *path)
Open ELF file.
Definition elf_file.c:866
void elf_file_free(ELFFile *elf_file)
Free ELFFile instance.
Definition elf_file.c:820
void elf_file_clear_debug_info(ELFDebugInfo *debug_info)
Clear ELF file debug info generated by elf_file_init_debug_info.
Definition elf_file.c:1071
void * elf_file_get_entry_point(ELFFile *elf_file)
Get actual entry point for ELF file.
Definition elf_file.c:1030
APIs for working with storages, directories and files.
Definition elf_file_i.h:31
Interface for ELF loader to resolve symbols.
Definition elf_api_interface.h:9
Structure that hold file index and returned api errors.
Definition filesystem_api_internal.h:17
Definition storage_i.h:23