diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-10-31 15:38:31 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-10-31 15:38:31 +0100 |
| commit | 362a3fde10a3bb2738fcf30ae2e2eaf4a53df042 (patch) | |
| tree | ff6233f6cba44c0326cbe366d79fb7a46e1b8d60 /src/elfs/elfloader_private.h | |
| parent | 5c13f8f10ac82ca642a6c930585989cc0d75a664 (diff) | |
| download | box64-362a3fde10a3bb2738fcf30ae2e2eaf4a53df042.tar.gz box64-362a3fde10a3bb2738fcf30ae2e2eaf4a53df042.zip | |
[ELFLOADER] Changed how memory is managed in elfloader
Diffstat (limited to 'src/elfs/elfloader_private.h')
| -rw-r--r-- | src/elfs/elfloader_private.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/elfs/elfloader_private.h b/src/elfs/elfloader_private.h index d2bc2559..b80c87db 100644 --- a/src/elfs/elfloader_private.h +++ b/src/elfs/elfloader_private.h @@ -9,7 +9,17 @@ typedef struct kh_defaultversion_s kh_defaultversion_t; #include <elf.h> #include "elfloader.h" -struct elfheader_s { +typedef struct multiblock_s { + void* p; + uintptr_t offs; + uintptr_t paddr; + uintptr_t align; + uint64_t size; + uint64_t asize; + uint8_t flags; +} multiblock_t; + +typedef struct elfheader_s { char* name; char* path; // Resolved path to file char* soname; // soname of the elf @@ -90,20 +100,21 @@ struct elfheader_s { int malloc_hook_2; // this elf hook malloc, hacking it char* memory; // char* and not void* to allow math on memory pointer - void** multiblock; - uintptr_t* multiblock_offs; - uint64_t* multiblock_size; + multiblock_t* multiblocks; int multiblock_n; library_t *lib; // attached lib (exept on main elf) needed_libs_t* needed; + FILE* file; + int fileno; + kh_mapsymbols_t *mapsymbols; kh_mapsymbols_t *weaksymbols; kh_mapsymbols_t *localsymbols; kh_defaultversion_t *globaldefver; // the global default version for symbols (the XXX@@vvvv of symbols) kh_defaultversion_t *weakdefver; // the weak default version for symbols (the XXX@@vvvv of symbols) -}; +} elfheader_t; #define R_X86_64_NONE 0 /* No reloc */ #define R_X86_64_64 1 /* Direct 64 bit */ |