diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-10-29 22:32:47 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-29 22:32:47 +0200 |
| commit | 0e47d1269cc660d2b1451e76375b2d3545ce66f4 (patch) | |
| tree | 27c958e5ef3cd147625112a82626624d51fd6fe5 /src/include | |
| parent | 7dc5359c2b10521696e7d251627eff029d53ee28 (diff) | |
| download | box64-0e47d1269cc660d2b1451e76375b2d3545ce66f4.tar.gz box64-0e47d1269cc660d2b1451e76375b2d3545ce66f4.zip | |
Malloc override (#437)
* Add some malloc override mecanism, but missing c++ function overriding * Add c++ new/delete redirection too * Added support for libtbbmalloc_proxy
Diffstat (limited to 'src/include')
| -rwxr-xr-x | src/include/callback.h | 2 | ||||
| -rwxr-xr-x | src/include/debug.h | 4 | ||||
| -rwxr-xr-x | src/include/elfloader.h | 1 |
3 files changed, 6 insertions, 1 deletions
diff --git a/src/include/callback.h b/src/include/callback.h index dba59ee8..dae26f1e 100755 --- a/src/include/callback.h +++ b/src/include/callback.h @@ -6,6 +6,8 @@ typedef struct x64emu_s x64emu_t; uint64_t RunFunction(box64context_t *context, uintptr_t fnc, int nargs, ...); +// save all modified register +uint64_t RunSafeFunction(box64context_t *context, uintptr_t fnc, int nargs, ...); // use emu state to run function uint64_t RunFunctionWithEmu(x64emu_t *emu, int QuitOnLongJumpExit, uintptr_t fnc, int nargs, ...); diff --git a/src/include/debug.h b/src/include/debug.h index c03fc0b0..7c14a6ee 100755 --- a/src/include/debug.h +++ b/src/include/debug.h @@ -75,8 +75,9 @@ extern FILE* ftrace; #define EXPORTDYN #endif -#ifdef ANDROID void init_malloc_hook(); +extern size_t(*box_malloc_usable_size)(void*); +#ifdef ANDROID extern void*(*__libc_malloc)(size_t); extern void*(*__libc_realloc)(void*, size_t); extern void*(*__libc_calloc)(size_t, size_t); @@ -95,5 +96,6 @@ extern void* __libc_memalign(size_t, size_t); #define box_free __libc_free #define box_memalign __libc_memalign extern char* box_strdup(const char* s); +extern char* box_realpath(const char* path, char* ret); #endif //__DEBUG_H_ diff --git a/src/include/elfloader.h b/src/include/elfloader.h index 6846dcd4..a4f59719 100755 --- a/src/include/elfloader.h +++ b/src/include/elfloader.h @@ -38,6 +38,7 @@ void RefreshElfTLS(elfheader_t* h); void RunElfInit(elfheader_t* h, x64emu_t *emu); void RunElfFini(elfheader_t* h, x64emu_t *emu); void RunDeferedElfInit(x64emu_t *emu); +void MarkElfInitDone(elfheader_t* h); void* GetBaseAddress(elfheader_t* h); void* GetElfDelta(elfheader_t* h); uint32_t GetBaseSize(elfheader_t* h); |