about summary refs log tree commit diff stats
path: root/src/libtools
diff options
context:
space:
mode:
Diffstat (limited to 'src/libtools')
-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)