about summary refs log tree commit diff stats
path: root/src/libtools/auxval.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-03 19:36:42 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-03 19:36:42 +0200
commit9e853e487deb89e38a0eb105814f6f6846ec9f2b (patch)
tree418374032e47f00e8964fe9e1959af8f858f53f3 /src/libtools/auxval.c
parent0e91ad3ed3f2720b988d6aefec0d09b0cadf6dad (diff)
downloadbox64-9e853e487deb89e38a0eb105814f6f6846ec9f2b.tar.gz
box64-9e853e487deb89e38a0eb105814f6f6846ec9f2b.zip
[BOX32] Added more 32bits wrapped function and reworked 32bits memory allocator
Diffstat (limited to 'src/libtools/auxval.c')
-rw-r--r--src/libtools/auxval.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libtools/auxval.c b/src/libtools/auxval.c
index 789902df..1e4b6045 100644
--- a/src/libtools/auxval.c
+++ b/src/libtools/auxval.c
@@ -49,8 +49,25 @@ unsigned long real_getauxval(unsigned long type)
     return 0;
 }
 
+#ifdef BOX32
+EXPORT unsigned long my32_getauxval(x64emu_t* emu, unsigned long type)
+{
+    ptr_t* p = (ptr_t*)emu->context->auxval_start;
+    while(*p) {
+        if(*p == type)
+            return p[1];
+        p+=2;
+    }
+    return 0;
+}
+#endif
+
 EXPORT unsigned long my_getauxval(x64emu_t* emu, unsigned long type)
 {
+    #ifdef BOX32
+    if(box64_is32bits)
+        return my32_getauxval(emu, type);
+    #endif
     uintptr_t* p = emu->context->auxval_start;
     while(*p) {
         if(*p == type)