about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-26 15:24:40 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-26 15:24:40 +0100
commit8c2ea218a5d14527cef0eb957e97de27af28d5b1 (patch)
treeff0c99994c84630077956fbd9903a034e892655a /src
parent9f01b2ec0d43ea0547f5ae81b76a84bf16f5583a (diff)
downloadbox64-8c2ea218a5d14527cef0eb957e97de27af28d5b1.tar.gz
box64-8c2ea218a5d14527cef0eb957e97de27af28d5b1.zip
Added wrapped libdbus-1
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h2
-rw-r--r--src/wrapped/generated/functions_list.txt3
-rw-r--r--src/wrapped/generated/wrapper.c6
-rw-r--r--src/wrapped/generated/wrapper.h3
-rwxr-xr-xsrc/wrapped/wrappeddbus.c555
-rwxr-xr-xsrc/wrapped/wrappeddbus_private.h225
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)