diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-26 15:24:40 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-26 15:24:40 +0100 |
| commit | 8c2ea218a5d14527cef0eb957e97de27af28d5b1 (patch) | |
| tree | ff0c99994c84630077956fbd9903a034e892655a /src | |
| parent | 9f01b2ec0d43ea0547f5ae81b76a84bf16f5583a (diff) | |
| download | box64-8c2ea218a5d14527cef0eb957e97de27af28d5b1.tar.gz box64-8c2ea218a5d14527cef0eb957e97de27af28d5b1.zip | |
Added wrapped libdbus-1
Diffstat (limited to 'src')
| -rwxr-xr-x | src/library_list.h | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 6 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 3 | ||||
| -rwxr-xr-x | src/wrapped/wrappeddbus.c | 555 | ||||
| -rwxr-xr-x | src/wrapped/wrappeddbus_private.h | 225 |
6 files changed, 793 insertions, 1 deletions
diff --git a/src/library_list.h b/src/library_list.h index 23257e82..aa559bb1 100755 --- a/src/library_list.h +++ b/src/library_list.h @@ -73,7 +73,7 @@ GO("libalure.so.1", alure) //GO("libcurl-gnutls.so.4", curl) //GO("libudev.so.0", udev0) //GO("libudev.so.1", udev1) -//GO("libdbus-1.so.3", dbus) +GO("libdbus-1.so.3", dbus) //GO("libiconv.so.2", iconv) //GO("libdrm.so.2", libdrm) //GO("libcrypto.so.1", crypto) diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 4f7a1a53..e04c973a 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -284,6 +284,7 @@ #() uFpLp #() uFppi #() uFppu +#() uFppp #() UFppi #() fFuii #() fFfff @@ -995,6 +996,7 @@ #() vFuffiiffiip #() vFuddiiddiip #() vFffffffffff +#() vFpppppppppp #() iFiiiiiiiiip #() iFpuupiuiipp #() iFppuuiiiiii @@ -1037,6 +1039,7 @@ #() pFpCuuWWwwCCup #() pFpuuuWWWWWWWW #() pFppiiuuuiupLp +#() pFpppppppppppp #() vFuiiiiiiiiiuup #() vFuuuuuuuuuuuuu #() vFuffffffffffff diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 1041424c..cdbf83f6 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -317,6 +317,7 @@ typedef uint32_t (*uFpip_t)(void*, int32_t, void*); typedef uint32_t (*uFpLp_t)(void*, uintptr_t, void*); typedef uint32_t (*uFppi_t)(void*, void*, int32_t); typedef uint32_t (*uFppu_t)(void*, void*, uint32_t); +typedef uint32_t (*uFppp_t)(void*, void*, void*); typedef uint64_t (*UFppi_t)(void*, void*, int32_t); typedef float (*fFuii_t)(uint32_t, int32_t, int32_t); typedef float (*fFfff_t)(float, float, float); @@ -1028,6 +1029,7 @@ typedef void (*vFuupiiupuuf_t)(uint32_t, uint32_t, void*, int32_t, int32_t, uint typedef void (*vFuffiiffiip_t)(uint32_t, float, float, int32_t, int32_t, float, float, int32_t, int32_t, void*); typedef void (*vFuddiiddiip_t)(uint32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, void*); typedef void (*vFffffffffff_t)(float, float, float, float, float, float, float, float, float, float); +typedef void (*vFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef int32_t (*iFiiiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*); typedef int32_t (*iFpuupiuiipp_t)(void*, uint32_t, uint32_t, void*, int32_t, uint32_t, int32_t, int32_t, void*, void*); typedef int32_t (*iFppuuiiiiii_t)(void*, void*, uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); @@ -1070,6 +1072,7 @@ typedef void* (*pFEppiiuuuipii_t)(x64emu_t*, void*, void*, int32_t, int32_t, uin typedef void* (*pFpCuuWWwwCCup_t)(void*, uint8_t, uint32_t, uint32_t, uint16_t, uint16_t, int16_t, int16_t, uint8_t, uint8_t, uint32_t, void*); typedef void* (*pFpuuuWWWWWWWW_t)(void*, uint32_t, uint32_t, uint32_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t); typedef void* (*pFppiiuuuiupLp_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, int32_t, uint32_t, void*, uintptr_t, void*); +typedef void* (*pFpppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef void (*vFuiiiiiiiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*); typedef void (*vFuuuuuuuuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); typedef void (*vFuffffffffffff_t)(uint32_t, float, float, float, float, float, float, float, float, float, float, float, float); @@ -1385,6 +1388,7 @@ void uFpip(x64emu_t *emu, uintptr_t fcn) { uFpip_t fn = (uFpip_t)fcn; R_RAX=(uin void uFpLp(x64emu_t *emu, uintptr_t fcn) { uFpLp_t fn = (uFpLp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX); } void uFppi(x64emu_t *emu, uintptr_t fcn) { uFppi_t fn = (uFppi_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); } void uFppu(x64emu_t *emu, uintptr_t fcn) { uFppu_t fn = (uFppu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); } +void uFppp(x64emu_t *emu, uintptr_t fcn) { uFppp_t fn = (uFppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } void UFppi(x64emu_t *emu, uintptr_t fcn) { UFppi_t fn = (UFppi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); } void fFuii(x64emu_t *emu, uintptr_t fcn) { fFuii_t fn = (fFuii_t)fcn; emu->xmm[0].f[0]=fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX); } void fFfff(x64emu_t *emu, uintptr_t fcn) { fFfff_t fn = (fFfff_t)fcn; emu->xmm[0].f[0]=fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0]); } @@ -2096,6 +2100,7 @@ void vFuupiiupuuf(x64emu_t *emu, uintptr_t fcn) { vFuupiiupuuf_t fn = (vFuupiiup void vFuffiiffiip(x64emu_t *emu, uintptr_t fcn) { vFuffiiffiip_t fn = (vFuffiiffiip_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].f[0], emu->xmm[3].f[0], (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); } void vFuddiiddiip(x64emu_t *emu, uintptr_t fcn) { vFuddiiddiip_t fn = (vFuddiiddiip_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].d[0], emu->xmm[3].d[0], (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); } void vFffffffffff(x64emu_t *emu, uintptr_t fcn) { vFffffffffff_t fn = (vFffffffffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16)); } +void vFpppppppppp(x64emu_t *emu, uintptr_t fcn) { vFpppppppppp_t fn = (vFpppppppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiiip_t fn = (iFiiiiiiiiip_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFpuupiuiipp(x64emu_t *emu, uintptr_t fcn) { iFpuupiuiipp_t fn = (iFpuupiuiipp_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFppuuiiiiii(x64emu_t *emu, uintptr_t fcn) { iFppuuiiiiii_t fn = (iFppuuiiiiii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32)); } @@ -2138,6 +2143,7 @@ void pFEppiiuuuipii(x64emu_t *emu, uintptr_t fcn) { pFEppiiuuuipii_t fn = (pFEpp void pFpCuuWWwwCCup(x64emu_t *emu, uintptr_t fcn) { pFpCuuWWwwCCup_t fn = (pFpCuuWWwwCCup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint16_t)R_R8, (uint16_t)R_R9, *(int16_t*)(R_RSP + 8), *(int16_t*)(R_RSP + 16), *(uint8_t*)(R_RSP + 24), *(uint8_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(void**)(R_RSP + 48)); } void pFpuuuWWWWWWWW(x64emu_t *emu, uintptr_t fcn) { pFpuuuWWWWWWWW_t fn = (pFpuuuWWWWWWWW_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint16_t)R_R8, (uint16_t)R_R9, *(uint16_t*)(R_RSP + 8), *(uint16_t*)(R_RSP + 16), *(uint16_t*)(R_RSP + 24), *(uint16_t*)(R_RSP + 32), *(uint16_t*)(R_RSP + 40), *(uint16_t*)(R_RSP + 48)); } void pFppiiuuuiupLp(x64emu_t *emu, uintptr_t fcn) { pFppiiuuuiupLp_t fn = (pFppiiuuuiupLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(void**)(R_RSP + 32), *(uintptr_t*)(R_RSP + 40), *(void**)(R_RSP + 48)); } +void pFpppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFpppppppppppp_t fn = (pFpppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48)); } void vFuiiiiiiiiiuup(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiiuup_t fn = (vFuiiiiiiiiiuup_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(uint32_t*)(R_RSP + 48), *(void**)(R_RSP + 56)); } void vFuuuuuuuuuuuuu(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuuu_t fn = (vFuuuuuuuuuuuuu_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(uint32_t*)(R_RSP + 48), *(uint32_t*)(R_RSP + 56)); } void vFuffffffffffff(x64emu_t *emu, uintptr_t fcn) { vFuffffffffffff_t fn = (vFuffffffffffff_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16), *(float*)(R_RSP + 24), *(float*)(R_RSP + 32)); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 58feb27a..68614fba 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -314,6 +314,7 @@ void uFpip(x64emu_t *emu, uintptr_t fnc); void uFpLp(x64emu_t *emu, uintptr_t fnc); void uFppi(x64emu_t *emu, uintptr_t fnc); void uFppu(x64emu_t *emu, uintptr_t fnc); +void uFppp(x64emu_t *emu, uintptr_t fnc); void UFppi(x64emu_t *emu, uintptr_t fnc); void fFuii(x64emu_t *emu, uintptr_t fnc); void fFfff(x64emu_t *emu, uintptr_t fnc); @@ -1025,6 +1026,7 @@ void vFuupiiupuuf(x64emu_t *emu, uintptr_t fnc); void vFuffiiffiip(x64emu_t *emu, uintptr_t fnc); void vFuddiiddiip(x64emu_t *emu, uintptr_t fnc); void vFffffffffff(x64emu_t *emu, uintptr_t fnc); +void vFpppppppppp(x64emu_t *emu, uintptr_t fnc); void iFiiiiiiiiip(x64emu_t *emu, uintptr_t fnc); void iFpuupiuiipp(x64emu_t *emu, uintptr_t fnc); void iFppuuiiiiii(x64emu_t *emu, uintptr_t fnc); @@ -1067,6 +1069,7 @@ void pFEppiiuuuipii(x64emu_t *emu, uintptr_t fnc); void pFpCuuWWwwCCup(x64emu_t *emu, uintptr_t fnc); void pFpuuuWWWWWWWW(x64emu_t *emu, uintptr_t fnc); void pFppiiuuuiupLp(x64emu_t *emu, uintptr_t fnc); +void pFpppppppppppp(x64emu_t *emu, uintptr_t fnc); void vFuiiiiiiiiiuup(x64emu_t *emu, uintptr_t fnc); void vFuuuuuuuuuuuuu(x64emu_t *emu, uintptr_t fnc); void vFuffffffffffff(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappeddbus.c b/src/wrapped/wrappeddbus.c new file mode 100755 index 00000000..3db5a8da --- /dev/null +++ b/src/wrapped/wrappeddbus.c @@ -0,0 +1,555 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "myalign.h" + +const char* dbusName = "libdbus-1.so.3"; +#define LIBNAME dbus +static library_t* my_lib = NULL; + +typedef void (*vFppp_t)(void*, void*, void*); +typedef void (*vFpppp_t)(void*, void*, void*, void*); +typedef int32_t (*iFpppp_t)(void*, void*, void*, void*); +typedef int32_t (*iFppiA_t)(void*, void*, int32_t, va_list); +typedef int32_t (*iFpipp_t)(void*, int32_t, void*, void*); +typedef int32_t (*iFppppp_t)(void*, void*, void*, void*, void*); +typedef int32_t (*iFpppppp_t)(void*, void*, void*, void*, void*, void*); + +#define SUPER() \ + GO(dbus_timeout_set_data, vFppp_t) \ + GO(dbus_connection_set_timeout_functions, iFpppppp_t) \ + GO(dbus_connection_add_filter, iFpppp_t) \ + GO(dbus_connection_remove_filter, vFppp_t) \ + GO(dbus_message_get_args_valist, iFppiA_t) \ + GO(dbus_message_set_data, iFpipp_t) \ + GO(dbus_pending_call_set_notify, iFpppp_t) \ + GO(dbus_pending_call_set_data, iFpipp_t) \ + GO(dbus_watch_set_data, vFppp_t) \ + GO(dbus_connection_set_dispatch_status_function, vFpppp_t) \ + GO(dbus_connection_set_watch_functions, iFpppppp_t) \ + GO(dbus_connection_try_register_object_path, iFppppp_t) \ + GO(dbus_connection_set_data, iFpipp_t) \ + GO(dbus_connection_set_wakeup_main_function, vFpppp_t) \ + GO(dbus_connection_try_register_fallback, iFppppp_t) \ + + +typedef struct dbus_my_s { + // functions + #define GO(A, B) B A; + SUPER() + #undef GO +} dbus_my_t; + +static void* getDBusMy(library_t* lib) +{ + dbus_my_t* my = (dbus_my_t*)calloc(1, sizeof(dbus_my_t)); + #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + SUPER() + #undef GO + return my; +} +#undef SUPER + +static void freeDBusMy(void* lib) +{ + //dbus_my_t *my = (dbus_my_t *)lib; +} + +#define NF 4 +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) + +// DBusFreeFunction +#define GO(A) \ +static uintptr_t my_DBusFreeFunction_fct_##A = 0; \ +static void my_DBusFreeFunction_##A(void* p) \ +{ \ + RunFunction(my_context, my_DBusFreeFunction_fct_##A, 1, p); \ +} +SUPER() +#undef GO +static void* find_DBusFreeFunction_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusFreeFunction_fct_##A == (uintptr_t)fct) return my_DBusFreeFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusFreeFunction_fct_##A == 0) {my_DBusFreeFunction_fct_##A = (uintptr_t)fct; return my_DBusFreeFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libdbus-1.so DBusFreeFunction callback\n"); + return NULL; +} +// DBusHandleMessageFunction +#define GO(A) \ +static uintptr_t my_DBusHandleMessageFunction_fct_##A = 0; \ +static int my_DBusHandleMessageFunction_##A(void* a, void* b, void* c) \ +{ \ + return RunFunction(my_context, my_DBusHandleMessageFunction_fct_##A, 3, a, b, c); \ +} +SUPER() +#undef GO +static void* find_DBusHandleMessageFunction_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusHandleMessageFunction_fct_##A == (uintptr_t)fct) return my_DBusHandleMessageFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusHandleMessageFunction_fct_##A == 0) {my_DBusHandleMessageFunction_fct_##A = (uintptr_t)fct; return my_DBusHandleMessageFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libdbus-1.so DBusHandleMessageFunction callback\n"); + return NULL; +} +// DBusAddTimeoutFunction +#define GO(A) \ +static uintptr_t my_DBusAddTimeoutFunction_fct_##A = 0; \ +static int my_DBusAddTimeoutFunction_##A(void* a, void* b) \ +{ \ + return RunFunction(my_context, my_DBusAddTimeoutFunction_fct_##A, 2, a, b); \ +} +SUPER() +#undef GO +static void* find_DBusAddTimeoutFunction_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusAddTimeoutFunction_fct_##A == (uintptr_t)fct) return my_DBusAddTimeoutFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusAddTimeoutFunction_fct_##A == 0) {my_DBusAddTimeoutFunction_fct_##A = (uintptr_t)fct; return my_DBusAddTimeoutFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libdbus-1.so DBusAddTimeoutFunction callback\n"); + return NULL; +} +// DBusRemoveTimeoutFunction +#define GO(A) \ +static uintptr_t my_DBusRemoveTimeoutFunction_fct_##A = 0; \ +static void my_DBusRemoveTimeoutFunction_##A(void* a, void* b) \ +{ \ + RunFunction(my_context, my_DBusRemoveTimeoutFunction_fct_##A, 2, a, b); \ +} +SUPER() +#undef GO +static void* find_DBusRemoveTimeoutFunction_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusRemoveTimeoutFunction_fct_##A == (uintptr_t)fct) return my_DBusRemoveTimeoutFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusRemoveTimeoutFunction_fct_##A == 0) {my_DBusRemoveTimeoutFunction_fct_##A = (uintptr_t)fct; return my_DBusRemoveTimeoutFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libdbus-1.so DBusRemoveTimeoutFunction callback\n"); + return NULL; +} +// DBusTimeoutToggledFunction +#define GO(A) \ +static uintptr_t my_DBusTimeoutToggledFunction_fct_##A = 0; \ +static void my_DBusTimeoutToggledFunction_##A(void* a, void* b) \ +{ \ + RunFunction(my_context, my_DBusTimeoutToggledFunction_fct_##A, 2, a, b); \ +} +SUPER() +#undef GO +static void* find_DBusTimeoutToggledFunction_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusTimeoutToggledFunction_fct_##A == (uintptr_t)fct) return my_DBusTimeoutToggledFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusTimeoutToggledFunction_fct_##A == 0) {my_DBusTimeoutToggledFunction_fct_##A = (uintptr_t)fct; return my_DBusTimeoutToggledFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libdbus-1.so DBusTimeoutToggledFunction callback\n"); + return NULL; +} +// DBusWakeupMainFunction +#define GO(A) \ +static uintptr_t my_DBusWakeupMainFunction_fct_##A = 0; \ +static void my_DBusWakeupMainFunction_##A(void* a) \ +{ \ + RunFunction(my_context, my_DBusWakeupMainFunction_fct_##A, 1, a); \ +} +SUPER() +#undef GO +static void* find_DBusWakeupMainFunction_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusWakeupMainFunction_fct_##A == (uintptr_t)fct) return my_DBusWakeupMainFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusWakeupMainFunction_fct_##A == 0) {my_DBusWakeupMainFunction_fct_##A = (uintptr_t)fct; return my_DBusWakeupMainFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libdbus-1.so DBusWakeupMainFunction callback\n"); + return NULL; +} + +// DBusPendingCallNotifyFunction +#define GO(A) \ +static uintptr_t my_DBusPendingCallNotifyFunction_fct_##A = 0; \ +static void my_DBusPendingCallNotifyFunction_##A(void* pending, void* data) \ +{ \ + RunFunction(my_context, my_DBusPendingCallNotifyFunction_fct_##A, 2, pending, data);\ +} +SUPER() +#undef GO +static void* findDBusPendingCallNotifyFunctionFct(void* fct) +{ + if(!fct) return NULL; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusPendingCallNotifyFunction_fct_##A == (uintptr_t)fct) return my_DBusPendingCallNotifyFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusPendingCallNotifyFunction_fct_##A == 0) {my_DBusPendingCallNotifyFunction_fct_##A = (uintptr_t)fct; return my_DBusPendingCallNotifyFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbus DBusPendingCallNotifyFunction callback\n"); + return NULL; +} + +// DBusDispatchStatusFunction +#define GO(A) \ +static uintptr_t my_DBusDispatchStatusFunction_fct_##A = 0; \ +static void my_DBusDispatchStatusFunction_##A(void* connection, int new_status, void* data) \ +{ \ + RunFunction(my_context, my_DBusDispatchStatusFunction_fct_##A, 3, connection, new_status, data);\ +} +SUPER() +#undef GO +static void* findDBusDispatchStatusFunctionFct(void* fct) +{ + if(!fct) return NULL; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusDispatchStatusFunction_fct_##A == (uintptr_t)fct) return my_DBusDispatchStatusFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusDispatchStatusFunction_fct_##A == 0) {my_DBusDispatchStatusFunction_fct_##A = (uintptr_t)fct; return my_DBusDispatchStatusFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbus DBusDispatchStatusFunction callback\n"); + return NULL; +} + +// DBusAddWatchFunction +#define GO(A) \ +static uintptr_t my_DBusAddWatchFunction_fct_##A = 0; \ +static int my_DBusAddWatchFunction_##A(void* watch, void* data) \ +{ \ + return (int)RunFunction(my_context, my_DBusAddWatchFunction_fct_##A, 2, watch, data);\ +} +SUPER() +#undef GO +static void* findDBusAddWatchFunctionFct(void* fct) +{ + if(!fct) return NULL; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusAddWatchFunction_fct_##A == (uintptr_t)fct) return my_DBusAddWatchFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusAddWatchFunction_fct_##A == 0) {my_DBusAddWatchFunction_fct_##A = (uintptr_t)fct; return my_DBusAddWatchFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbus DBusAddWatchFunction callback\n"); + return NULL; +} + +// DBusRemoveWatchFunction +#define GO(A) \ +static uintptr_t my_DBusRemoveWatchFunction_fct_##A = 0; \ +static void my_DBusRemoveWatchFunction_##A(void* watch, void* data) \ +{ \ + RunFunction(my_context, my_DBusRemoveWatchFunction_fct_##A, 2, watch, data);\ +} +SUPER() +#undef GO +static void* findDBusRemoveWatchFunctionFct(void* fct) +{ + if(!fct) return NULL; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusRemoveWatchFunction_fct_##A == (uintptr_t)fct) return my_DBusRemoveWatchFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusRemoveWatchFunction_fct_##A == 0) {my_DBusRemoveWatchFunction_fct_##A = (uintptr_t)fct; return my_DBusRemoveWatchFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbus DBusRemoveWatchFunction callback\n"); + return NULL; +} + +// DBusWatchToggledFunction +#define GO(A) \ +static uintptr_t my_DBusWatchToggledFunction_fct_##A = 0; \ +static void my_DBusWatchToggledFunction_##A(void* watch, void* data) \ +{ \ + RunFunction(my_context, my_DBusWatchToggledFunction_fct_##A, 2, watch, data);\ +} +SUPER() +#undef GO +static void* findDBusWatchToggledFunctionFct(void* fct) +{ + if(!fct) return NULL; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusWatchToggledFunction_fct_##A == (uintptr_t)fct) return my_DBusWatchToggledFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusWatchToggledFunction_fct_##A == 0) {my_DBusWatchToggledFunction_fct_##A = (uintptr_t)fct; return my_DBusWatchToggledFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbus DBusWatchToggledFunction callback\n"); + return NULL; +} + +// DBusObjectPathUnregisterFunction +#define GO(A) \ +static uintptr_t my_DBusObjectPathUnregisterFunction_fct_##A = 0; \ +static void my_DBusObjectPathUnregisterFunction_##A(void* connection, void* data) \ +{ \ + RunFunction(my_context, my_DBusObjectPathUnregisterFunction_fct_##A, 2, connection, data);\ +} +SUPER() +#undef GO +static void* findDBusObjectPathUnregisterFunctionFct(void* fct) +{ + if(!fct) return NULL; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusObjectPathUnregisterFunction_fct_##A == (uintptr_t)fct) return my_DBusObjectPathUnregisterFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusObjectPathUnregisterFunction_fct_##A == 0) {my_DBusObjectPathUnregisterFunction_fct_##A = (uintptr_t)fct; return my_DBusObjectPathUnregisterFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbus DBusObjectPathUnregisterFunction callback\n"); + return NULL; +} + +// DBusObjectPathMessageFunction +#define GO(A) \ +static uintptr_t my_DBusObjectPathMessageFunction_fct_##A = 0; \ +static void my_DBusObjectPathMessageFunction_##A(void* connection, void* message, void* data) \ +{ \ + RunFunction(my_context, my_DBusObjectPathMessageFunction_fct_##A, 3, connection, message, data);\ +} +SUPER() +#undef GO +static void* findDBusObjectPathMessageFunctionFct(void* fct) +{ + if(!fct) return NULL; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DBusObjectPathMessageFunction_fct_##A == (uintptr_t)fct) return my_DBusObjectPathMessageFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_DBusObjectPathMessageFunction_fct_##A == 0) {my_DBusObjectPathMessageFunction_fct_##A = (uintptr_t)fct; return my_DBusObjectPathMessageFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbus DBusObjectPathMessageFunction callback\n"); + return NULL; +} + +// dbus_internal_pad +#define GO(A) \ +static uintptr_t my_dbus_internal_pad_fct_##A = 0; \ +static void my_dbus_internal_pad_##A(void* a, void* b, void* c, void* d) \ +{ \ + RunFunction(my_context, my_dbus_internal_pad_fct_##A, 4, a, b, c, d);\ +} +SUPER() +#undef GO +static void* finddbus_internal_padFct(void* fct) +{ + if(!fct) return NULL; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_dbus_internal_pad_fct_##A == (uintptr_t)fct) return my_dbus_internal_pad_##A; + SUPER() + #undef GO + #define GO(A) if(my_dbus_internal_pad_fct_##A == 0) {my_dbus_internal_pad_fct_##A = (uintptr_t)fct; return my_dbus_internal_pad_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbus dbus_internal_pad callback\n"); + return NULL; +} +#undef SUPER + +EXPORT void my_dbus_timeout_set_data(x64emu_t* emu, void* e, void* p, void* f) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + my->dbus_timeout_set_data(e, p, find_DBusFreeFunction_Fct(f)); +} + + +EXPORT int32_t my_dbus_connection_set_timeout_functions(x64emu_t* emu, void* c, void* a, void* r, void* t, void* d, void* f) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + return my->dbus_connection_set_timeout_functions(c, + find_DBusAddTimeoutFunction_Fct(a), + find_DBusRemoveTimeoutFunction_Fct(r), + find_DBusTimeoutToggledFunction_Fct(t), + d, find_DBusFreeFunction_Fct(f)); +} + +EXPORT int my_dbus_connection_add_filter(x64emu_t* emu, void* connection, void* fnc, void* data, void* fr) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + return my->dbus_connection_add_filter(connection, find_DBusHandleMessageFunction_Fct(fnc), data, find_DBusFreeFunction_Fct(fr)); +} + +EXPORT void my_dbus_connection_remove_filter(x64emu_t* emu, void* connection, void* fnc, void* data) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + my->dbus_connection_remove_filter(connection, find_DBusHandleMessageFunction_Fct(fnc), data); +} + +EXPORT int my_dbus_message_get_args_valist(x64emu_t* emu, void* message, void* e, int arg, x64_va_list_t b) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + CONVERT_VALIST(b); + return my->dbus_message_get_args_valist(message, e, arg, VARARGS); +} + +/*EXPORT int my_dbus_message_get_args(x64emu_t* emu, void* message, void* e, int arg, uint64_t* V) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + return my->dbus_message_get_args_valist(message, e, arg, V); +}*/ + +EXPORT int my_dbus_message_set_data(x64emu_t* emu, void* message, int32_t slot, void* data, void* free_func) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + return my->dbus_message_set_data(message, slot, data, find_DBusFreeFunction_Fct(free_func)); +} + +EXPORT int my_dbus_pending_call_set_notify(x64emu_t* emu, void* pending, void* func, void* data, void* free_func) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + return my->dbus_pending_call_set_notify(pending, findDBusPendingCallNotifyFunctionFct(func), data, find_DBusFreeFunction_Fct(free_func)); +} + +EXPORT int my_dbus_pending_call_set_data(x64emu_t* emu, void* pending, int32_t slot, void* data, void* free_func) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + return my->dbus_pending_call_set_data(pending, slot, data, find_DBusFreeFunction_Fct(free_func)); +} + +EXPORT void my_dbus_watch_set_data(x64emu_t* emu, void* watch, void* data, void* free_func) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + my->dbus_watch_set_data(watch, data, find_DBusFreeFunction_Fct(free_func)); +} + +EXPORT void my_dbus_connection_set_dispatch_status_function(x64emu_t* emu, void* connection, void* dispatch, void* data, void* free_func) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + my->dbus_connection_set_dispatch_status_function(connection, findDBusDispatchStatusFunctionFct(dispatch), data, find_DBusFreeFunction_Fct(free_func)); +} + +EXPORT int my_dbus_connection_set_watch_functions(x64emu_t* emu, void* connection, void* add, void* remove, void* toggled, void* data, void* free_func) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + return my->dbus_connection_set_watch_functions(connection, findDBusAddWatchFunctionFct(add), findDBusRemoveWatchFunctionFct(remove), findDBusWatchToggledFunctionFct(toggled), data, find_DBusFreeFunction_Fct(free_func)); +} + +typedef struct my_DBusObjectPathVTable_s +{ + void* unregister_function; + void* message_function; + void* pad1; + void* pad2; + void* pad3; + void* pad4; +} my_DBusObjectPathVTable_t; + +EXPORT int my_dbus_connection_try_register_object_path(x64emu_t* emu, void* connection, void* path, my_DBusObjectPathVTable_t* vtable, void* data, void* error) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + my_DBusObjectPathVTable_t vt = {0}; + if(vtable) { + vt.unregister_function = findDBusObjectPathUnregisterFunctionFct(vtable->unregister_function); + vt.message_function = findDBusObjectPathMessageFunctionFct(vtable->message_function); + vt.pad1 = finddbus_internal_padFct(vtable->pad1); + vt.pad2 = finddbus_internal_padFct(vtable->pad2); + vt.pad3 = finddbus_internal_padFct(vtable->pad3); + vt.pad4 = finddbus_internal_padFct(vtable->pad4); + } + + return my->dbus_connection_try_register_object_path(connection, path, vtable?&vt:NULL, data, error); +} + +EXPORT int my_dbus_connection_set_data(x64emu_t* emu, void* connection, int slot, void* data, void* free_func) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + return my->dbus_connection_set_data(connection, slot, data, find_DBusFreeFunction_Fct(free_func)); +} + +EXPORT void my_dbus_connection_set_wakeup_main_function(x64emu_t* emu, void* connection, void* wakeup, void* data, void* free_func) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + my->dbus_connection_set_wakeup_main_function(connection, find_DBusWakeupMainFunction_Fct(wakeup), data, find_DBusFreeFunction_Fct(free_func)); +} + +EXPORT int my_dbus_connection_try_register_fallback(x64emu_t* emu, void* connection, void* path, my_DBusObjectPathVTable_t* vtable, void* data, void* error) +{ + dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; + + my_DBusObjectPathVTable_t vt = {0}; + if(vtable) { + vt.unregister_function = findDBusObjectPathUnregisterFunctionFct(vtable->unregister_function); + vt.message_function = findDBusObjectPathMessageFunctionFct(vtable->message_function); + vt.pad1 = finddbus_internal_padFct(vtable->pad1); + vt.pad2 = finddbus_internal_padFct(vtable->pad2); + vt.pad3 = finddbus_internal_padFct(vtable->pad3); + vt.pad4 = finddbus_internal_padFct(vtable->pad4); + } + + return my->dbus_connection_try_register_fallback(connection, path, vtable?&vt:NULL, data, error); +} + + + +#define CUSTOM_INIT \ + lib->priv.w.p2 = getDBusMy(lib); \ + my_lib = lib; + +#define CUSTOM_FINI \ + freeDBusMy(lib->priv.w.p2); \ + free(lib->priv.w.p2); \ + my_lib = NULL; + +#include "wrappedlib_init.h" + diff --git a/src/wrapped/wrappeddbus_private.h b/src/wrapped/wrappeddbus_private.h new file mode 100755 index 00000000..006874d3 --- /dev/null +++ b/src/wrapped/wrappeddbus_private.h @@ -0,0 +1,225 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +GO(dbus_address_entries_free, vFp) +GO(dbus_address_entry_get_method, pFp) +GO(dbus_address_entry_get_value, pFpp) +GO(dbus_address_escape_value, pFp) +GO(dbus_address_unescape_value, pFpp) +GO(dbus_bus_add_match, vFppp) +GO(dbus_bus_get, pFip) +GO(dbus_bus_get_id, pFpp) +GO(dbus_bus_get_private, pFip) +GO(dbus_bus_get_unique_name, pFp) +GO(dbus_bus_get_unix_user, uFppp) +GO(dbus_bus_name_has_owner, iFppp) +GO(dbus_bus_register, iFpp) +GO(dbus_bus_release_name, iFppp) +GO(dbus_bus_remove_match, vFppp) +GO(dbus_bus_request_name, iFppup) +GO(dbus_bus_set_unique_name, iFpp) +GO(dbus_bus_start_service_by_name, iFppupp) +GOM(dbus_connection_add_filter, iFEpppp) +GO(dbus_connection_allocate_data_slot, iFp) +GO(dbus_connection_borrow_message, pFp) +GO(dbus_connection_can_send_type, iFpi) +GO(dbus_connection_close, vFp) +GO(dbus_connection_dispatch, iFp) +GO(dbus_connection_flush, vFp) +GO(dbus_connection_free_data_slot, vFp) +GO(dbus_connection_free_preallocated_send, vFpp) +GO(dbus_connection_get_adt_audit_session_data, iFppp) +GO(dbus_connection_get_data, pFpi) +GO(dbus_connection_get_dispatch_status, iFp) +GO(dbus_connection_get_is_anonymous, iFp) +GO(dbus_connection_get_is_authenticated, iFp) +GO(dbus_connection_get_is_connected, iFp) +GO(dbus_connection_get_max_message_size, lFp) +GO(dbus_connection_get_max_received_size, lFp) +GO(dbus_connection_get_object_path_data, iFppp) +GO(dbus_connection_get_outgoing_size, lFp) +GO(dbus_connection_get_server_id, pFp) +GO(dbus_connection_get_socket, iFpp) +GO(dbus_connection_get_unix_fd, iFpp) +GO(dbus_connection_get_unix_process_id, iFpp) +GO(dbus_connection_get_unix_user, iFpp) +GO(dbus_connection_get_windows_user, iFpp) +GO(dbus_connection_has_messages_to_send, iFp) +GO(dbus_connection_list_registered, iFppp) +GO(dbus_connection_open, pFpp) +GO(dbus_connection_open_private, pFpp) +GO(dbus_connection_pop_message, pFp) +GO(dbus_connection_preallocate_send, pFp) +GO(dbus_connection_read_write, iFpi) +GO(dbus_connection_read_write_dispatch, iFpi) +GO(dbus_connection_ref, pFp) +//GO(dbus_connection_register_fallback, +//GO(dbus_connection_register_object_path, +GOM(dbus_connection_remove_filter, vFEppp) +GO(dbus_connection_return_message, vFpp) +GO(dbus_connection_send, iFppp) +GO(dbus_connection_send_preallocated, vFpppp) +GO(dbus_connection_send_with_reply, iFpppi) +GO(dbus_connection_send_with_reply_and_block, pFppip) +GO(dbus_connection_set_allow_anonymous, vFpi) +GO(dbus_connection_set_change_sigpipe, vFi) +GOM(dbus_connection_set_data, iFEpipp) +GOM(dbus_connection_set_dispatch_status_function, vFEpppp) +GO(dbus_connection_set_exit_on_disconnect, vFpi) +GO(dbus_connection_set_max_message_size, vFpl) +GO(dbus_connection_set_max_received_size, vFpl) +GO(dbus_connection_set_route_peer_messages, vFpi) +GOM(dbus_connection_set_timeout_functions, iFEpppppp) +//GO(dbus_connection_set_unix_user_function, +GOM(dbus_connection_set_wakeup_main_function, vFEpppp) +GOM(dbus_connection_set_watch_functions, iFEpppppp) +//GO(dbus_connection_set_windows_user_function, +GO(dbus_connection_steal_borrowed_message, vFpp) +GOM(dbus_connection_try_register_fallback, iFEppppp) +GOM(dbus_connection_try_register_object_path, iFEppppp) +GO(dbus_connection_unref, vFp) +GO(dbus_connection_unregister_object_path, iFpp) +GO(dbus_error_free, vFp) +GO(dbus_error_has_name, iFpp) +GO(dbus_error_init, vFp) +GO(dbus_error_is_set, iFp) +GO(dbus_free, vFp) +GO(dbus_free_string_array, vFp) +GO(dbus_get_local_machine_id, pFv) +GO(dbus_get_version, vFppp) +//GO(dbus_internal_do_not_use_create_uuid, +//GO(dbus_internal_do_not_use_get_uuid, +GO(dbus_malloc, pFL) +GO(dbus_malloc0, pFL) +GO(dbus_message_allocate_data_slot, iFp) +//GO2(dbus_message_append_args, iFpiV, dbus_message_append_args_valist) +//GO(dbus_message_append_args_valist, iFpip) +GO(dbus_message_copy, pFp) +GO(dbus_message_demarshal, pFpip) +GO(dbus_message_demarshal_bytes_needed, iFpi) +GO(dbus_message_free_data_slot, vFp) +//GOM(dbus_message_get_args, iFEppiV) +GOM(dbus_message_get_args_valist, iFEppip) +GO(dbus_message_get_auto_start, iFp) +GO(dbus_message_get_data, pFpi) +GO(dbus_message_get_destination, pFp) +GO(dbus_message_get_error_name, pFp) +GO(dbus_message_get_interface, pFp) +GO(dbus_message_get_member, pFp) +GO(dbus_message_get_no_reply, iFp) +GO(dbus_message_get_path, pFp) +GO(dbus_message_get_path_decomposed, iFpp) +GO(dbus_message_get_reply_serial, uFp) +GO(dbus_message_get_sender, pFp) +GO(dbus_message_get_serial, iFp) +GO(dbus_message_get_signature, pFp) +GO(dbus_message_get_type, iFp) +GO(dbus_message_has_destination, iFpp) +GO(dbus_message_has_interface, iFpp) +GO(dbus_message_has_member, iFpp) +GO(dbus_message_has_path, iFpp) +GO(dbus_message_has_sender, iFpp) +GO(dbus_message_has_signature, iFpp) +GO(dbus_message_is_error, iFpp) +GO(dbus_message_is_method_call, iFppp) +GO(dbus_message_is_signal, iFppp) +GO(dbus_message_iter_abandon_container, vFpp) +GO(dbus_message_iter_append_basic, iFpip) +GO(dbus_message_iter_append_fixed_array, iFpipi) +GO(dbus_message_iter_close_container, iFpp) +GO(dbus_message_iter_get_arg_type, iFp) +GO(dbus_message_iter_get_array_len, iFp) +GO(dbus_message_iter_get_basic, vFpp) +GO(dbus_message_iter_get_element_type, iFp) +GO(dbus_message_iter_get_fixed_array, vFppp) +GO(dbus_message_iter_get_signature, pFp) +GO(dbus_message_iter_has_next, iFp) +GO(dbus_message_iter_init, iFpp) +GO(dbus_message_iter_init_append, vFpp) +GO(dbus_message_iter_next, iFp) +GO(dbus_message_iter_open_container, iFpipp) +GO(dbus_message_iter_recurse, vFpp) +GO(dbus_message_lock, vFp) +GO(dbus_message_marshal, iFppp) +GO(dbus_message_new, pFi) +GO(dbus_message_new_error, pFppp) +GO(dbus_message_new_error_printf, pFpppppppppppp) //vaarg, should wrap and use vaprintf... +GO(dbus_message_new_method_call, pFpppp) +GO(dbus_message_new_method_return, pFp) +GO(dbus_message_new_signal, pFppp) +GO(dbus_message_ref, pFp) +GO(dbus_message_set_auto_start, vFpi) +GOM(dbus_message_set_data, iFEpipp) +GO(dbus_message_set_destination, iFpp) +GO(dbus_message_set_error_name, iFpp) +GO(dbus_message_set_interface, iFpp) +GO(dbus_message_set_member, iFpp) +GO(dbus_message_set_no_reply, vFpi) +GO(dbus_message_set_path, iFpp) +GO(dbus_message_set_reply_serial, iFpu) +GO(dbus_message_set_sender, iFpp) +GO(dbus_message_set_serial, vFpu) +GO(dbus_message_type_from_string, iFp) +GO(dbus_message_type_to_string, pFi) +GO(dbus_message_unref, vFp) +GO(dbus_move_error, vFpp) +GO(dbus_parse_address, iFpppp) +GO(dbus_pending_call_allocate_data_slot, iFp) +GO(dbus_pending_call_block, vFp) +GO(dbus_pending_call_cancel, vFp) +GO(dbus_pending_call_free_data_slot, vFp) +GO(dbus_pending_call_get_completed, iFp) +GO(dbus_pending_call_get_data, pFpi) +GO(dbus_pending_call_ref, pFp) +GOM(dbus_pending_call_set_data, iFEpipp) +GOM(dbus_pending_call_set_notify, iFEpppp) +GO(dbus_pending_call_steal_reply, pFp) +GO(dbus_pending_call_unref, vFp) +GO(dbus_realloc, pFpL) +//GO(dbus_server_allocate_data_slot, +//GO(dbus_server_disconnect, +//GO(dbus_server_free_data_slot, +//GO(dbus_server_get_address, +//GO(dbus_server_get_data, +//GO(dbus_server_get_id, +//GO(dbus_server_get_is_connected, +//GO(dbus_server_listen, +//GO(dbus_server_ref, +//GO(dbus_server_set_auth_mechanisms, +//GO(dbus_server_set_data, +//GO(dbus_server_set_new_connection_function, +//GO(dbus_server_set_timeout_functions, +//GO(dbus_server_set_watch_functions, +//GO(dbus_server_unref, +GO(dbus_set_error, vFpppppppppp) //vaarg +GO(dbus_set_error_const, vFppp) +GO(dbus_set_error_from_message, iFpp) +GO(dbus_shutdown, vFv) +GO(dbus_signature_iter_get_current_type, iFp) +GO(dbus_signature_iter_get_element_type, iFp) +GO(dbus_signature_iter_get_signature, pFp) +GO(dbus_signature_iter_init, vFpp) +GO(dbus_signature_iter_next, iFp) +GO(dbus_signature_iter_recurse, vFpp) +GO(dbus_signature_validate, iFpp) +GO(dbus_signature_validate_single, iFpp) +//GO(dbus_threads_init, +GO(dbus_threads_init_default, iFv) +GO(dbus_timeout_get_data, pFp) +GO(dbus_timeout_get_enabled, iFp) +GO(dbus_timeout_get_interval, iFp) +GO(dbus_timeout_handle, iFp) +GOM(dbus_timeout_set_data, vFEppp) +GO(dbus_type_is_basic, iFi) +GO(dbus_type_is_container, iFi) +GO(dbus_type_is_fixed, iFi) +GO(dbus_type_is_valid, iFi) +GO(dbus_watch_get_data, pFp) +GO(dbus_watch_get_enabled, iFp) +GO(dbus_watch_get_fd, iFp) +GO(dbus_watch_get_flags, uFp) +GO(dbus_watch_get_socket, iFp) +GO(dbus_watch_get_unix_fd, iFp) +GO(dbus_watch_handle, iFpu) +GOM(dbus_watch_set_data, vFEppp) |