diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-12-16 10:04:51 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-12-16 10:04:51 +0100 |
| commit | f4a4bdd006960c64c53d837056c3a6a6f440a3d7 (patch) | |
| tree | b70c2543923844727a55f57dfa80a195cbc49bcd /src | |
| parent | ed7dddc3d8732b5722690f5640e4a32962a6f667 (diff) | |
| download | box64-f4a4bdd006960c64c53d837056c3a6a6f440a3d7.tar.gz box64-f4a4bdd006960c64c53d837056c3a6a6f440a3d7.zip | |
[BOX32][WRAPPER] Added 32bits wrapped libx11-xcb
Diffstat (limited to 'src')
| -rw-r--r-- | src/library_list_32.h | 3 | ||||
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 4 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedlibx11xcbdefs32.h | 8 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedlibx11xcbtypes32.h | 19 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedlibx11xcbundefs32.h | 8 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.c | 2 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.h | 1 | ||||
| -rw-r--r-- | src/wrapped32/wrappedlibx11xcb.c | 35 | ||||
| -rw-r--r-- | src/wrapped32/wrappedlibx11xcb_private.h | 6 |
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) |