about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-09-29 08:10:06 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-09-29 08:10:06 +0200
commitfb5bc122cc4b6b8d5a2baa5af7bb2dc4961de6b8 (patch)
tree27f61dd34583cc4255247ba1275cbd154d1bdf8d /src
parent4c328d0fca2ca617341e338b4c3ca8a2d1c56509 (diff)
downloadbox64-fb5bc122cc4b6b8d5a2baa5af7bb2dc4961de6b8.tar.gz
box64-fb5bc122cc4b6b8d5a2baa5af7bb2dc4961de6b8.zip
Added mallinfo wrapped function (for #121)
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/generated/functions_list.txt1
-rw-r--r--src/wrapped/generated/wrappedlibctypes.h1
-rwxr-xr-xsrc/wrapped/wrappedlibc.c7
-rwxr-xr-xsrc/wrapped/wrappedlibc_private.h2
4 files changed, 10 insertions, 1 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index abea9103..49755fd6 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -2405,6 +2405,7 @@ wrappedlibc:
   - malloc
 - pFp:
   - __deregister_frame_info
+  - mallinfo
 - vFpi:
   - __longjmp_chk
   - _longjmp
diff --git a/src/wrapped/generated/wrappedlibctypes.h b/src/wrapped/generated/wrappedlibctypes.h
index 1cd6cfec..834efe64 100644
--- a/src/wrapped/generated/wrappedlibctypes.h
+++ b/src/wrapped/generated/wrappedlibctypes.h
@@ -92,6 +92,7 @@ typedef int64_t (*iFpippppp_t)(void*, int64_t, void*, void*, void*, void*, void*
 	GO(getauxval, LFL_t) \
 	GO(malloc, pFL_t) \
 	GO(__deregister_frame_info, pFp_t) \
+	GO(mallinfo, pFp_t) \
 	GO(__longjmp_chk, vFpi_t) \
 	GO(_longjmp, vFpi_t) \
 	GO(longjmp, vFpi_t) \
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index b4dd0a12..1d9ee570 100755
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -36,6 +36,7 @@
 #include <spawn.h>
 #include <fts.h>
 #include <syslog.h>
+#include <malloc.h>
 #include <getopt.h>
 #undef LOG_INFO
 #undef LOG_DEBUG
@@ -2200,6 +2201,12 @@ EXPORT int my_mprotect(x64emu_t* emu, void *addr, unsigned long len, int prot)
     return ret;
 }
 
+EXPORT void* my_mallinfo(x64emu_t* emu, void* p)
+{
+    *(struct mallinfo*)p = mallinfo();
+    return p;
+}
+
 EXPORT int my_getopt(int argc, char* const argv[], const char *optstring)
 {
     int ret = getopt(argc, argv, optstring);
diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h
index 275d89de..cc9fdf08 100755
--- a/src/wrapped/wrappedlibc_private.h
+++ b/src/wrapped/wrappedlibc_private.h
@@ -1106,7 +1106,7 @@ GOM(__lxstat64, iFEipp)
 GO(__madvise, iFpLi)
 GOW(madvise, iFpLi)
 GOWM(makecontext, iFEppiV)
-//GOW(mallinfo, ?Fv)
+GOWM(mallinfo, pFEp)
 GOM(malloc, pFL) // need to wrap to clear allocated memory?
 //GO(malloc_get_state, // Obsolete
 GOW(malloc_info, iFip)