about summary refs log tree commit diff stats
path: root/src/libtools/obstack.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libtools/obstack.c')
-rw-r--r--src/libtools/obstack.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libtools/obstack.c b/src/libtools/obstack.c
index 08719adb..2522f37b 100644
--- a/src/libtools/obstack.c
+++ b/src/libtools/obstack.c
@@ -26,6 +26,9 @@
 #include "auxval.h"
 #include "elfloader.h"
 #include "bridge.h"
+#ifdef BOX32
+#include "myalign32.h"
+#endif
 
 typedef void    (*vFv_t)    ();
 typedef int32_t (*iFppp_t)  (void*, void*, void*);
@@ -230,6 +233,15 @@ EXPORT int32_t my_obstack_vprintf(x64emu_t* emu, struct obstack* obstack, void*
     int r = obstack_vprintf(obstack, (const char*)fmt, VARARGS);
     return r;
 }
+#ifdef BOX32
+EXPORT int32_t my32_obstack_vprintf(x64emu_t* emu, struct obstack* obstack, void* fmt, void* b)
+{
+    myStackAlign32((const char*)fmt, b, emu->scratch);
+    PREPARE_VALIST_32;
+    int r = obstack_vprintf(obstack, (const char*)fmt, VARARGS_32);
+    return r;
+}
+#endif
 #endif
 
 EXPORT void* my_obstack_alloc_failed_handler = NULL;