about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-04-26 10:12:28 +0200
committerptitSeb <sebastien.chev@gmail.com>2025-04-26 10:12:28 +0200
commit6796b9ca02405523d790857eebcfafc04e6486e8 (patch)
tree2778e7230e5f56d57901ea6b7e0323d1411c5ab3 /src
parente4da025dc00257b2b6ad1f5d97df7960e80bcf0e (diff)
downloadbox64-6796b9ca02405523d790857eebcfafc04e6486e8.tar.gz
box64-6796b9ca02405523d790857eebcfafc04e6486e8.zip
[WRAPPER] Added some missing function to wrapped libgio-2 (for #2575)
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64printer.c4
-rw-r--r--src/wrapped/generated/functions_list.txt4
-rw-r--r--src/wrapped/generated/wrappedgio2types.h2
-rw-r--r--src/wrapped/generated/wrapper.c4
-rw-r--r--src/wrapped/generated/wrapper.h2
-rw-r--r--src/wrapped/wrappedgio2.c16
-rw-r--r--src/wrapped/wrappedgio2_private.h4
7 files changed, 34 insertions, 2 deletions
diff --git a/src/emu/x64printer.c b/src/emu/x64printer.c
index 733563d1..34168211 100644
--- a/src/emu/x64printer.c
+++ b/src/emu/x64printer.c
@@ -2861,6 +2861,10 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIu32 ", %" PRIi32 ", %" PRIi64 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8);
     } else if (w == vFpuipp) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIu32 ", %" PRIi32 ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8);
+    } else if (w == vFpuipV) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIu32 ", %" PRIi32 ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8));
+    } else if (w == vFpuipA) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIu32 ", %" PRIi32 ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8);
     } else if (w == vFpuuuu) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8);
     } else if (w == vFpuuup) {
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index a2dee26b..364aa8a0 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -1601,6 +1601,8 @@
 #() vFpuiip
 #() vFpuill
 #() vFpuipp
+#() vFpuipV
+#() vFpuipA
 #() vFpuuuu
 #() vFpuuup
 #() vFpuupp
@@ -3820,9 +3822,11 @@ wrappedgio2:
 - vFpippp:
   - g_async_initable_init_async
 - vFpuipV:
+  - g_dbus_method_invocation_return_error
   - g_simple_async_result_set_error
   - g_task_return_new_error
 - vFpuipA:
+  - g_dbus_method_invocation_return_error_valist
   - g_simple_async_result_set_error_va
 - pFLpppV:
   - g_initable_new
diff --git a/src/wrapped/generated/wrappedgio2types.h b/src/wrapped/generated/wrappedgio2types.h
index 403ce7eb..c6a01462 100644
--- a/src/wrapped/generated/wrappedgio2types.h
+++ b/src/wrapped/generated/wrappedgio2types.h
@@ -60,8 +60,10 @@ typedef void (*vFpppppppuippp_t)(void*, void*, void*, void*, void*, void*, void*
 	GO(g_simple_async_result_new_take_error, pFpppp_t) \
 	GO(g_task_new, pFpppp_t) \
 	GO(g_async_initable_init_async, vFpippp_t) \
+	GO(g_dbus_method_invocation_return_error, vFpuipV_t) \
 	GO(g_simple_async_result_set_error, vFpuipV_t) \
 	GO(g_task_return_new_error, vFpuipV_t) \
+	GO(g_dbus_method_invocation_return_error_valist, vFpuipA_t) \
 	GO(g_simple_async_result_set_error_va, vFpuipA_t) \
 	GO(g_initable_new, pFLpppV_t) \
 	GO(g_initable_new_valist, pFLpApp_t) \
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 40718c6b..cb3ccc15 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -1630,6 +1630,8 @@ typedef void (*vFpuiil_t)(void*, uint32_t, int32_t, int32_t, intptr_t);
 typedef void (*vFpuiip_t)(void*, uint32_t, int32_t, int32_t, void*);
 typedef void (*vFpuill_t)(void*, uint32_t, int32_t, intptr_t, intptr_t);
 typedef void (*vFpuipp_t)(void*, uint32_t, int32_t, void*, void*);
+typedef void (*vFpuipV_t)(void*, uint32_t, int32_t, void*, void*);
+typedef void (*vFpuipA_t)(void*, uint32_t, int32_t, void*, void*);
 typedef void (*vFpuuuu_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void (*vFpuuup_t)(void*, uint32_t, uint32_t, uint32_t, void*);
 typedef void (*vFpuupp_t)(void*, uint32_t, uint32_t, void*, void*);
@@ -5131,6 +5133,8 @@ void vFpuiil(x64emu_t *emu, uintptr_t fcn) { vFpuiil_t fn = (vFpuiil_t)fcn; fn((
 void vFpuiip(x64emu_t *emu, uintptr_t fcn) { vFpuiip_t fn = (vFpuiip_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
 void vFpuill(x64emu_t *emu, uintptr_t fcn) { vFpuill_t fn = (vFpuill_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8); }
 void vFpuipp(x64emu_t *emu, uintptr_t fcn) { vFpuipp_t fn = (vFpuipp_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
+void vFpuipV(x64emu_t *emu, uintptr_t fcn) { vFpuipV_t fn = (vFpuipV_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8)); }
+void vFpuipA(x64emu_t *emu, uintptr_t fcn) { vFpuipA_t fn = (vFpuipA_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void vFpuuuu(x64emu_t *emu, uintptr_t fcn) { vFpuuuu_t fn = (vFpuuuu_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
 void vFpuuup(x64emu_t *emu, uintptr_t fcn) { vFpuuup_t fn = (vFpuuup_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8); }
 void vFpuupp(x64emu_t *emu, uintptr_t fcn) { vFpuupp_t fn = (vFpuupp_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 6c51f036..0797f202 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -1638,6 +1638,8 @@ void vFpuiil(x64emu_t *emu, uintptr_t fnc);
 void vFpuiip(x64emu_t *emu, uintptr_t fnc);
 void vFpuill(x64emu_t *emu, uintptr_t fnc);
 void vFpuipp(x64emu_t *emu, uintptr_t fnc);
+void vFpuipV(x64emu_t *emu, uintptr_t fnc);
+void vFpuipA(x64emu_t *emu, uintptr_t fnc);
 void vFpuuuu(x64emu_t *emu, uintptr_t fnc);
 void vFpuuup(x64emu_t *emu, uintptr_t fnc);
 void vFpuupp(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedgio2.c b/src/wrapped/wrappedgio2.c
index ca5ee25e..45c650f1 100644
--- a/src/wrapped/wrappedgio2.c
+++ b/src/wrapped/wrappedgio2.c
@@ -623,6 +623,22 @@ EXPORT void my_g_input_stream_read_async(x64emu_t* emu, void* stream, void* buff
     my->g_input_stream_read_async(stream, buffer, count, io_prio, cancel, findGAsyncReadyCallbackFct(f), data);
 }
 
+EXPORT void my_g_dbus_method_invocation_return_error_valist(x64emu_t* emu, void* invocation, uint32_t domain, int code, void* fmt, x64_va_list_t V)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(V);
+    #else
+    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+    #endif
+    my->g_dbus_method_invocation_return_error_valist(invocation, domain, code, fmt, VARARGS);
+}
+
+EXPORT void my_g_dbus_method_invocation_return_error(x64emu_t* emu, void* invocation, uint32_t domain, int code, void* fmt, uintptr_t* b)
+{
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 4);
+    my->g_dbus_method_invocation_return_error(invocation, domain, code, fmt, VARARGS);
+}
+
 #define PRE_INIT    \
     if(BOX64ENV(nogtk)) \
         return -1;
diff --git a/src/wrapped/wrappedgio2_private.h b/src/wrapped/wrappedgio2_private.h
index 33caa31f..f516745c 100644
--- a/src/wrapped/wrappedgio2_private.h
+++ b/src/wrapped/wrappedgio2_private.h
@@ -458,9 +458,9 @@ GO(g_dbus_method_invocation_get_sender, pFp)
 GO(g_dbus_method_invocation_get_type, LFv)
 GO(g_dbus_method_invocation_get_user_data, pFp)
 GO(g_dbus_method_invocation_return_dbus_error, vFppp)
-//GOM(g_dbus_method_invocation_return_error, vFpuipV)
+GOM(g_dbus_method_invocation_return_error, vFpuipV)
 GO(g_dbus_method_invocation_return_error_literal, vFpuip)
-//GOM(g_dbus_method_invocation_return_error_valist, vFpuipA)
+GOM(g_dbus_method_invocation_return_error_valist, vFpuipA)
 GO(g_dbus_method_invocation_return_gerror, vFpp)
 GO(g_dbus_method_invocation_return_value, vFpp)
 GO(g_dbus_method_invocation_return_value_with_unix_fd_list, vFppp)