about summary refs log tree commit diff stats
path: root/src/include
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-10-29 22:32:47 +0200
committerGitHub <noreply@github.com>2022-10-29 22:32:47 +0200
commit0e47d1269cc660d2b1451e76375b2d3545ce66f4 (patch)
tree27c958e5ef3cd147625112a82626624d51fd6fe5 /src/include
parent7dc5359c2b10521696e7d251627eff029d53ee28 (diff)
downloadbox64-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-xsrc/include/callback.h2
-rwxr-xr-xsrc/include/debug.h4
-rwxr-xr-xsrc/include/elfloader.h1
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);