about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-12-16 10:04:51 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-12-16 10:04:51 +0100
commitf4a4bdd006960c64c53d837056c3a6a6f440a3d7 (patch)
treeb70c2543923844727a55f57dfa80a195cbc49bcd /src
parented7dddc3d8732b5722690f5640e4a32962a6f667 (diff)
downloadbox64-f4a4bdd006960c64c53d837056c3a6a6f440a3d7.tar.gz
box64-f4a4bdd006960c64c53d837056c3a6a6f440a3d7.zip
[BOX32][WRAPPER] Added 32bits wrapped libx11-xcb
Diffstat (limited to 'src')
-rw-r--r--src/library_list_32.h3
-rw-r--r--src/wrapped32/generated/functions_list.txt4
-rw-r--r--src/wrapped32/generated/wrappedlibx11xcbdefs32.h8
-rw-r--r--src/wrapped32/generated/wrappedlibx11xcbtypes32.h19
-rw-r--r--src/wrapped32/generated/wrappedlibx11xcbundefs32.h8
-rw-r--r--src/wrapped32/generated/wrapper32.c2
-rw-r--r--src/wrapped32/generated/wrapper32.h1
-rw-r--r--src/wrapped32/wrappedlibx11xcb.c35
-rw-r--r--src/wrapped32/wrappedlibx11xcb_private.h6
9 files changed, 86 insertions, 0 deletions
diff --git a/src/library_list_32.h b/src/library_list_32.h
index b48c5042..14a7ea99 100644
--- a/src/library_list_32.h
+++ b/src/library_list_32.h
@@ -59,6 +59,9 @@ GO("libXss.so.1", libxss)
 GO("libXxf86vm.so.1", libxxf86vm)
 GO("libXinerama.so.1", xinerama)
 
+GO("libX11-xcb.so.1", libx11xcb)
+GO("libX11-xcb.so", libx11xcb)
+
 GO("libopenal.so.1", openal)
 GO("libopenal.so.0", openal)
 GO("libopenal.so", openal)
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index 2bc07315..19a7c1d6 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -179,6 +179,7 @@
 #() vFpp -> vFpp
 #() vESp -> vESp
 #() vFXi -> vFXi
+#() vFXu -> vFXu
 #() vFXL -> vFXL
 #() vFXp -> vFXp
 #() cFpp -> cFpp
@@ -2613,6 +2614,9 @@ wrappedlibx11:
   - XGetWindowProperty
 - LFXLiiuuuiupLp:
   - XCreateWindow
+wrappedlibx11xcb:
+- pFX:
+  - XGetXCBConnection
 wrappedlibxcomposite:
 wrappedlibxcursor:
 - vFp:
diff --git a/src/wrapped32/generated/wrappedlibx11xcbdefs32.h b/src/wrapped32/generated/wrappedlibx11xcbdefs32.h
new file mode 100644
index 00000000..b5fbf50d
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibx11xcbdefs32.h
@@ -0,0 +1,8 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibx11xcbDEFS32_H_
+#define __wrappedlibx11xcbDEFS32_H_
+
+
+#endif // __wrappedlibx11xcbDEFS32_H_
diff --git a/src/wrapped32/generated/wrappedlibx11xcbtypes32.h b/src/wrapped32/generated/wrappedlibx11xcbtypes32.h
new file mode 100644
index 00000000..808653e1
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibx11xcbtypes32.h
@@ -0,0 +1,19 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibx11xcbTYPES32_H_
+#define __wrappedlibx11xcbTYPES32_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef void* (*pFX_t)(void*);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(XGetXCBConnection, pFX_t)
+
+#endif // __wrappedlibx11xcbTYPES32_H_
diff --git a/src/wrapped32/generated/wrappedlibx11xcbundefs32.h b/src/wrapped32/generated/wrappedlibx11xcbundefs32.h
new file mode 100644
index 00000000..61d387e2
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibx11xcbundefs32.h
@@ -0,0 +1,8 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibx11xcbUNDEFS32_H_
+#define __wrappedlibx11xcbUNDEFS32_H_
+
+
+#endif // __wrappedlibx11xcbUNDEFS32_H_
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index ef8eecc7..b5bf8f48 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -270,6 +270,7 @@ typedef void (*vEpp_t)(void*, void*);
 typedef void (*vFpp_t)(void*, void*);
 typedef void (*vESp_t)(void*, void*);
 typedef void (*vFXi_t)(void*, int32_t);
+typedef void (*vFXu_t)(void*, uint32_t);
 typedef void (*vFXL_t)(void*, uintptr_t);
 typedef void (*vFXp_t)(void*, void*);
 typedef int8_t (*cFpp_t)(void*, void*);
@@ -2042,6 +2043,7 @@ void vEpp_32(x64emu_t *emu, uintptr_t fcn) { vEpp_t fn = (vEpp_t)fcn; errno = em
 void vFpp_32(x64emu_t *emu, uintptr_t fcn) { vFpp_t fn = (vFpp_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8)); }
 void vESp_32(x64emu_t *emu, uintptr_t fcn) { vESp_t fn = (vESp_t)fcn; errno = emu->libc_err; fn(io_convert32(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8)); emu->libc_err = errno; }
 void vFXi_32(x64emu_t *emu, uintptr_t fcn) { vFXi_t fn = (vFXi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8)); }
+void vFXu_32(x64emu_t *emu, uintptr_t fcn) { vFXu_t fn = (vFXu_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(uint32_t, R_ESP + 8)); }
 void vFXL_32(x64emu_t *emu, uintptr_t fcn) { vFXL_t fn = (vFXL_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8))); }
 void vFXp_32(x64emu_t *emu, uintptr_t fcn) { vFXp_t fn = (vFXp_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8)); }
 void cFpp_32(x64emu_t *emu, uintptr_t fcn) { cFpp_t fn = (cFpp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8)); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index c0e74182..7351a273 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -220,6 +220,7 @@ void vEpp_32(x64emu_t *emu, uintptr_t fnc);
 void vFpp_32(x64emu_t *emu, uintptr_t fnc);
 void vESp_32(x64emu_t *emu, uintptr_t fnc);
 void vFXi_32(x64emu_t *emu, uintptr_t fnc);
+void vFXu_32(x64emu_t *emu, uintptr_t fnc);
 void vFXL_32(x64emu_t *emu, uintptr_t fnc);
 void vFXp_32(x64emu_t *emu, uintptr_t fnc);
 void cFpp_32(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped32/wrappedlibx11xcb.c b/src/wrapped32/wrappedlibx11xcb.c
new file mode 100644
index 00000000..47cbd5ef
--- /dev/null
+++ b/src/wrapped32/wrappedlibx11xcb.c
@@ -0,0 +1,35 @@
+#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 "wrapper32.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box32context.h"
+#include "emu/x64emu_private.h"
+#include "myalign32.h"
+
+static const char* libx11xcbName = "libX11-xcb.so.1";
+#define ALTNAME "libX11-xcb.so"
+#define LIBNAME libx11xcb
+
+#define ADDED_FUNCTIONS()       \
+
+#include "generated/wrappedlibx11xcbtypes32.h"
+
+#include "wrappercallback32.h"
+
+EXPORT void* my32_XGetXCBConnection(x64emu_t* emu, void* a)
+{
+    return add_xcb_connection32(my->XGetXCBConnection(a));
+}
+
+#include "wrappedlib_init32.h"
diff --git a/src/wrapped32/wrappedlibx11xcb_private.h b/src/wrapped32/wrappedlibx11xcb_private.h
new file mode 100644
index 00000000..f149fead
--- /dev/null
+++ b/src/wrapped32/wrappedlibx11xcb_private.h
@@ -0,0 +1,6 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GOM(XGetXCBConnection, pFEX)
+GO(XSetEventQueueOwner, vFXu)