[BOX32][WRAPPER] Added wraped mostly empty 32bits libXext

This commit is contained in:
ptitSeb 2024-10-04 17:37:07 +02:00
parent 3d6ecc064f
commit 088720db22
12 changed files with 612 additions and 5 deletions

View File

@ -794,6 +794,7 @@ if(BOX32)
"${BOX64_ROOT}/src/wrapped32/wrappedfreetype.c" "${BOX64_ROOT}/src/wrapped32/wrappedfreetype.c"
"${BOX64_ROOT}/src/wrapped32/wrappedfontconfig.c" "${BOX64_ROOT}/src/wrapped32/wrappedfontconfig.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibx11.c" "${BOX64_ROOT}/src/wrapped32/wrappedlibx11.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibxext.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibxfixes.c" "${BOX64_ROOT}/src/wrapped32/wrappedlibxfixes.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibxrender.c" "${BOX64_ROOT}/src/wrapped32/wrappedlibxrender.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibxcursor.c" "${BOX64_ROOT}/src/wrapped32/wrappedlibxcursor.c"

View File

@ -28,14 +28,25 @@ GO("libasound.so.2", libasound)
GO("libasound.so", libasound) GO("libasound.so", libasound)
GO("libfreetype.so.6", freetype) GO("libfreetype.so.6", freetype)
GO("libfontconfig.so.1", fontconfig) GO("libfontconfig.so.1", fontconfig)
#ifdef ANDROID
GO("libX11.so", libx11)
GO("libXext.so", libxext)
GO("libXfixes.so", libxfixes)
GO("libXrender.so", libxrender)
GO("libXcursor.so", libxcursor)
GO("libXrandr.so", libxrandr)
GO("libxrandr.so", libxrandr)
GO("libXxf86vm.so", libxxf86vm)
#else
GO("libX11.so.6", libx11) GO("libX11.so.6", libx11)
GO("libXext.so.6", libxext)
GO("libXfixes.so.3", libxfixes) GO("libXfixes.so.3", libxfixes)
GO("libXrender.so.1", libxrender) GO("libXrender.so.1", libxrender)
GO("libXcursor.so.1", libxcursor) GO("libXcursor.so.1", libxcursor)
GO("libXrandr.so.2", libxrandr) GO("libXrandr.so.2", libxrandr)
GO("libxrandr.so.2", libxrandr) GO("libxrandr.so.2", libxrandr)
GO("libXxf86vm.so.1", libxxf86vm) GO("libXxf86vm.so.1", libxxf86vm)
#endif
GO("libopenal.so.1", openal) GO("libopenal.so.1", openal)
GO("libopenal.so.0", openal) GO("libopenal.so.0", openal)
GO("libopenal.so", openal) GO("libopenal.so", openal)

View File

@ -957,6 +957,7 @@
#() iFEpLiipV -> iFEpLiipV #() iFEpLiipV -> iFEpLiipV
#() iFEpLiLpV -> iFEpLiLpV #() iFEpLiLpV -> iFEpLiLpV
#() iFEpppppp -> iFEpppppp #() iFEpppppp -> iFEpppppp
#() iFEXLpiiL -> iFEXLpiiL
#() iFEXLpppp -> iFEXLpppp #() iFEXLpppp -> iFEXLpppp
#() iFuiiiuup -> iFuiiiuup #() iFuiiiuup -> iFuiiiuup
#() iFpWCiWCi -> iFpWCiWCi #() iFpWCiWCi -> iFpWCiWCi
@ -1038,6 +1039,7 @@
#() uFuulpiuiuf -> uFuulpiuiuf #() uFuulpiuiuf -> uFuulpiuiuf
#() pFEuiiiuuuu -> pFEuiiiuuuu #() pFEuiiiuuuu -> pFEuiiiuuuu
#() pFEXLiiuuLi -> pFEXLiiuuLi #() pFEXLiiuuLi -> pFEXLiiuuLi
#() pFEXpuippuu -> pFEXpuippuu
#() vFEXLpppippp -> vFEXLpppippp #() vFEXLpppippp -> vFEXLpppippp
#() vFiiiiiiiiii -> vFiiiiiiiiii #() vFiiiiiiiiii -> vFiiiiiiiiii
#() vFiiiiiiiiui -> vFiiiiiiiiui #() vFiiiiiiiiui -> vFiiiiiiiiui
@ -1088,6 +1090,7 @@
#() vFuuiiiiiiiuup -> vFuuiiiiiiiuup #() vFuuiiiiiiiuup -> vFuuiiiiiiiuup
#() vFuuuuuuuuuuuu -> vFuuuuuuuuuuuu #() vFuuuuuuuuuuuu -> vFuuuuuuuuuuuu
#() vFffffffffffff -> vFffffffffffff #() vFffffffffffff -> vFffffffffffff
#() iFEXLppiiiiuui -> iFEXLppiiiiuui
#() pFEXLiiuuLipii -> pFEXLiiuuLipii #() pFEXLiiuuLipii -> pFEXLiiuuLipii
#() iFXLLlliLBL_pBL_BL_Bp_ -> iFXLLlliLBpBBB #() iFXLLlliLBL_pBL_BL_Bp_ -> iFXLLlliLBpBBB
#() vFuiiiiiiiiiuup -> vFuiiiiiiiiiuup #() vFuiiiiiiiiiuup -> vFuiiiiiiiiiuup
@ -1647,6 +1650,13 @@ wrappedlibx11:
- LFXLiiuuuiupLp: - LFXLiiuuuiupLp:
- XCreateWindow - XCreateWindow
wrappedlibxcursor: wrappedlibxcursor:
wrappedlibxext:
- iFXLpiiL:
- XShmGetImage
- pFXpuippuu:
- XShmCreateImage
- iFXLppiiiiuui:
- XShmPutImage
wrappedlibxfixes: wrappedlibxfixes:
wrappedlibxrandr: wrappedlibxrandr:
- pFXL: - pFXL:

View File

@ -0,0 +1,8 @@
/*********************************************************************
* File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
*********************************************************************/
#ifndef __wrappedlibxextDEFS32_H_
#define __wrappedlibxextDEFS32_H_
#endif // __wrappedlibxextDEFS32_H_

View File

@ -0,0 +1,23 @@
/*********************************************************************
* File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
*********************************************************************/
#ifndef __wrappedlibxextTYPES32_H_
#define __wrappedlibxextTYPES32_H_
#ifndef LIBNAME
#error You should only #include this file inside a wrapped*.c file
#endif
#ifndef ADDED_FUNCTIONS
#define ADDED_FUNCTIONS()
#endif
typedef int32_t (*iFXLpiiL_t)(void*, uintptr_t, void*, int32_t, int32_t, uintptr_t);
typedef void* (*pFXpuippuu_t)(void*, void*, uint32_t, int32_t, void*, void*, uint32_t, uint32_t);
typedef int32_t (*iFXLppiiiiuui_t)(void*, uintptr_t, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t);
#define SUPER() ADDED_FUNCTIONS() \
GO(XShmGetImage, iFXLpiiL_t) \
GO(XShmCreateImage, pFXpuippuu_t) \
GO(XShmPutImage, iFXLppiiiiuui_t)
#endif // __wrappedlibxextTYPES32_H_

View File

@ -0,0 +1,8 @@
/*********************************************************************
* File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
*********************************************************************/
#ifndef __wrappedlibxextUNDEFS32_H_
#define __wrappedlibxextUNDEFS32_H_
#endif // __wrappedlibxextUNDEFS32_H_

View File

@ -1047,6 +1047,7 @@ typedef void (*vFpddiidd_t)(void*, double, double, int32_t, int32_t, double, dou
typedef int32_t (*iFEpLiipV_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, void*, void*); typedef int32_t (*iFEpLiipV_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, void*, void*);
typedef int32_t (*iFEpLiLpV_t)(x64emu_t*, void*, uintptr_t, int32_t, uintptr_t, void*, void*); typedef int32_t (*iFEpLiLpV_t)(x64emu_t*, void*, uintptr_t, int32_t, uintptr_t, void*, void*);
typedef int32_t (*iFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*); typedef int32_t (*iFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*);
typedef int32_t (*iFEXLpiiL_t)(x64emu_t*, void*, uintptr_t, void*, int32_t, int32_t, uintptr_t);
typedef int32_t (*iFEXLpppp_t)(x64emu_t*, void*, uintptr_t, void*, void*, void*, void*); typedef int32_t (*iFEXLpppp_t)(x64emu_t*, void*, uintptr_t, void*, void*, void*, void*);
typedef int32_t (*iFuiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*); typedef int32_t (*iFuiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
typedef int32_t (*iFpWCiWCi_t)(void*, uint16_t, uint8_t, int32_t, uint16_t, uint8_t, int32_t); typedef int32_t (*iFpWCiWCi_t)(void*, uint16_t, uint8_t, int32_t, uint16_t, uint8_t, int32_t);
@ -1128,6 +1129,7 @@ typedef int32_t (*iFXLLiiuuii_t)(void*, uintptr_t, uintptr_t, int32_t, int32_t,
typedef uint32_t (*uFuulpiuiuf_t)(uint32_t, uint32_t, intptr_t, void*, int32_t, uint32_t, int32_t, uint32_t, float); typedef uint32_t (*uFuulpiuiuf_t)(uint32_t, uint32_t, intptr_t, void*, int32_t, uint32_t, int32_t, uint32_t, float);
typedef void* (*pFEuiiiuuuu_t)(x64emu_t*, uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t); typedef void* (*pFEuiiiuuuu_t)(x64emu_t*, uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
typedef void* (*pFEXLiiuuLi_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t); typedef void* (*pFEXLiiuuLi_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t);
typedef void* (*pFEXpuippuu_t)(x64emu_t*, void*, void*, uint32_t, int32_t, void*, void*, uint32_t, uint32_t);
typedef void (*vFEXLpppippp_t)(x64emu_t*, void*, uintptr_t, void*, void*, void*, int32_t, void*, void*, void*); typedef void (*vFEXLpppippp_t)(x64emu_t*, void*, uintptr_t, void*, void*, void*, int32_t, void*, void*, void*);
typedef void (*vFiiiiiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); typedef void (*vFiiiiiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
typedef void (*vFiiiiiiiiui_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t); typedef void (*vFiiiiiiiiui_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t);
@ -1178,6 +1180,7 @@ typedef void (*vFuuiiiiiiiuip_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t,
typedef void (*vFuuiiiiiiiuup_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*); typedef void (*vFuuiiiiiiiuup_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
typedef void (*vFuuuuuuuuuuuu_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 (*vFuuuuuuuuuuuu_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 (*vFffffffffffff_t)(float, float, float, float, float, float, float, float, float, float, float, float); typedef void (*vFffffffffffff_t)(float, float, float, float, float, float, float, float, float, float, float, float);
typedef int32_t (*iFEXLppiiiiuui_t)(x64emu_t*, void*, uintptr_t, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t);
typedef void* (*pFEXLiiuuLipii_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t, void*, int32_t, int32_t); typedef void* (*pFEXLiiuuLipii_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t, void*, int32_t, int32_t);
typedef int32_t (*iFXLLlliLBL_pBL_BL_Bp__t)(void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, uintptr_t, struct_L_t*, void*, struct_L_t*, struct_L_t*, struct_p_t*); typedef int32_t (*iFXLLlliLBL_pBL_BL_Bp__t)(void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, uintptr_t, struct_L_t*, void*, struct_L_t*, struct_L_t*, struct_p_t*);
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 (*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*);
@ -2169,6 +2172,7 @@ void vFpddiidd_32(x64emu_t *emu, uintptr_t fcn) { vFpddiidd_t fn = (vFpddiidd_t)
void iFEpLiipV_32(x64emu_t *emu, uintptr_t fcn) { iFEpLiipV_t fn = (iFEpLiipV_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptrv(R_ESP + 24)); } void iFEpLiipV_32(x64emu_t *emu, uintptr_t fcn) { iFEpLiipV_t fn = (iFEpLiipV_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptrv(R_ESP + 24)); }
void iFEpLiLpV_32(x64emu_t *emu, uintptr_t fcn) { iFEpLiLpV_t fn = (iFEpLiLpV_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20), from_ptrv(R_ESP + 24)); } void iFEpLiLpV_32(x64emu_t *emu, uintptr_t fcn) { iFEpLiLpV_t fn = (iFEpLiLpV_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20), from_ptrv(R_ESP + 24)); }
void iFEpppppp_32(x64emu_t *emu, uintptr_t fcn) { iFEpppppp_t fn = (iFEpppppp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); } void iFEpppppp_32(x64emu_t *emu, uintptr_t fcn) { iFEpppppp_t fn = (iFEpppppp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
void iFEXLpiiL_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpiiL_t fn = (iFEXLpiiL_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24))); }
void iFEXLpppp_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpppp_t fn = (iFEXLpppp_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); } void iFEXLpppp_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpppp_t fn = (iFEXLpppp_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
void iFuiiiuup_32(x64emu_t *emu, uintptr_t fcn) { iFuiiiuup_t fn = (iFuiiiuup_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptriv(R_ESP + 28)); } void iFuiiiuup_32(x64emu_t *emu, uintptr_t fcn) { iFuiiiuup_t fn = (iFuiiiuup_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptriv(R_ESP + 28)); }
void iFpWCiWCi_32(x64emu_t *emu, uintptr_t fcn) { iFpWCiWCi_t fn = (iFpWCiWCi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint16_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint16_t, R_ESP + 20), from_ptri(uint8_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); } void iFpWCiWCi_32(x64emu_t *emu, uintptr_t fcn) { iFpWCiWCi_t fn = (iFpWCiWCi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint16_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint16_t, R_ESP + 20), from_ptri(uint8_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); }
@ -2250,6 +2254,7 @@ void iFXLLiiuuii_32(x64emu_t *emu, uintptr_t fcn) { iFXLLiiuuii_t fn = (iFXLLiiu
void uFuulpiuiuf_32(x64emu_t *emu, uintptr_t fcn) { uFuulpiuiuf_t fn = (uFuulpiuiuf_t)fcn; R_EAX = (uint32_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_long(from_ptri(long_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(float, R_ESP + 36)); } void uFuulpiuiuf_32(x64emu_t *emu, uintptr_t fcn) { uFuulpiuiuf_t fn = (uFuulpiuiuf_t)fcn; R_EAX = (uint32_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_long(from_ptri(long_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(float, R_ESP + 36)); }
void pFEuiiiuuuu_32(x64emu_t *emu, uintptr_t fcn) { pFEuiiiuuuu_t fn = (pFEuiiiuuuu_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32))); } void pFEuiiiuuuu_32(x64emu_t *emu, uintptr_t fcn) { pFEuiiiuuuu_t fn = (pFEuiiiuuuu_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32))); }
void pFEXLiiuuLi_32(x64emu_t *emu, uintptr_t fcn) { pFEXLiiuuLi_t fn = (pFEXLiiuuLi_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(int32_t, R_ESP + 32))); } void pFEXLiiuuLi_32(x64emu_t *emu, uintptr_t fcn) { pFEXLiiuuLi_t fn = (pFEXLiiuuLi_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(int32_t, R_ESP + 32))); }
void pFEXpuippuu_32(x64emu_t *emu, uintptr_t fcn) { pFEXpuippuu_t fn = (pFEXpuippuu_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32))); }
void vFEXLpppippp_32(x64emu_t *emu, uintptr_t fcn) { vFEXLpppippp_t fn = (vFEXLpppippp_t)fcn; fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32), from_ptriv(R_ESP + 36)); } void vFEXLpppippp_32(x64emu_t *emu, uintptr_t fcn) { vFEXLpppippp_t fn = (vFEXLpppippp_t)fcn; fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32), from_ptriv(R_ESP + 36)); }
void vFiiiiiiiiii_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiiii_t fn = (vFiiiiiiiiii_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40)); } void vFiiiiiiiiii_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiiii_t fn = (vFiiiiiiiiii_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40)); }
void vFiiiiiiiiui_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiiui_t fn = (vFiiiiiiiiui_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40)); } void vFiiiiiiiiui_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiiui_t fn = (vFiiiiiiiiui_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40)); }
@ -2300,6 +2305,7 @@ void vFuuiiiiiiiuip_32(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiiiiuip_t fn = (vF
void vFuuiiiiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiiiiuup_t fn = (vFuuiiiiiiiuup_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptriv(R_ESP + 48)); } void vFuuiiiiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiiiiuup_t fn = (vFuuiiiiiiiuup_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptriv(R_ESP + 48)); }
void vFuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuu_t fn = (vFuuuuuuuuuuuu_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48)); } void vFuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuu_t fn = (vFuuuuuuuuuuuu_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48)); }
void vFffffffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFffffffffffff_t fn = (vFffffffffffff_t)fcn; fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20), from_ptri(float, R_ESP + 24), from_ptri(float, R_ESP + 28), from_ptri(float, R_ESP + 32), from_ptri(float, R_ESP + 36), from_ptri(float, R_ESP + 40), from_ptri(float, R_ESP + 44), from_ptri(float, R_ESP + 48)); } void vFffffffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFffffffffffff_t fn = (vFffffffffffff_t)fcn; fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20), from_ptri(float, R_ESP + 24), from_ptri(float, R_ESP + 28), from_ptri(float, R_ESP + 32), from_ptri(float, R_ESP + 36), from_ptri(float, R_ESP + 40), from_ptri(float, R_ESP + 44), from_ptri(float, R_ESP + 48)); }
void iFEXLppiiiiuui_32(x64emu_t *emu, uintptr_t fcn) { iFEXLppiiiiuui_t fn = (iFEXLppiiiiuui_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44)); }
void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fcn) { pFEXLiiuuLipii_t fn = (pFEXLiiuuLipii_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(int32_t, R_ESP + 32), from_ptriv(R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44))); } void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fcn) { pFEXLiiuuLipii_t fn = (pFEXLiiuuLipii_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(int32_t, R_ESP + 32), from_ptriv(R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44))); }
void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fcn) { iFXLLlliLBL_pBL_BL_Bp__t fn = (iFXLLlliLBL_pBL_BL_Bp__t)fcn; struct_L_t arg_32={0}; struct_L_t arg_40={0}; struct_L_t arg_44={0}; struct_p_t arg_48={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_long(from_ptri(long_t, R_ESP + 16)), from_long(from_ptri(long_t, R_ESP + 20)), from_ptri(int32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), *(ptr_t*)(from_ptr((R_ESP + 32))) ? &arg_32 : NULL, from_ptriv(R_ESP + 36), *(ptr_t*)(from_ptr((R_ESP + 40))) ? &arg_40 : NULL, *(ptr_t*)(from_ptr((R_ESP + 44))) ? &arg_44 : NULL, *(ptr_t*)(from_ptr((R_ESP + 48))) ? &arg_48 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 32)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 32))), &arg_32); if (*(ptr_t*)(from_ptr((R_ESP + 40)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 40))), &arg_40); if (*(ptr_t*)(from_ptr((R_ESP + 44)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 44))), &arg_44); if (*(ptr_t*)(from_ptr((R_ESP + 48)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 48))), &arg_48); } void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fcn) { iFXLLlliLBL_pBL_BL_Bp__t fn = (iFXLLlliLBL_pBL_BL_Bp__t)fcn; struct_L_t arg_32={0}; struct_L_t arg_40={0}; struct_L_t arg_44={0}; struct_p_t arg_48={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_long(from_ptri(long_t, R_ESP + 16)), from_long(from_ptri(long_t, R_ESP + 20)), from_ptri(int32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), *(ptr_t*)(from_ptr((R_ESP + 32))) ? &arg_32 : NULL, from_ptriv(R_ESP + 36), *(ptr_t*)(from_ptr((R_ESP + 40))) ? &arg_40 : NULL, *(ptr_t*)(from_ptr((R_ESP + 44))) ? &arg_44 : NULL, *(ptr_t*)(from_ptr((R_ESP + 48))) ? &arg_48 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 32)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 32))), &arg_32); if (*(ptr_t*)(from_ptr((R_ESP + 40)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 40))), &arg_40); if (*(ptr_t*)(from_ptr((R_ESP + 44)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 44))), &arg_44); if (*(ptr_t*)(from_ptr((R_ESP + 48)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 48))), &arg_48); }
void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiiuup_t fn = (vFuiiiiiiiiiuup_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptriv(R_ESP + 52)); } void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiiuup_t fn = (vFuiiiiiiiiiuup_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptriv(R_ESP + 52)); }

View File

@ -998,6 +998,7 @@ void vFpddiidd_32(x64emu_t *emu, uintptr_t fnc);
void iFEpLiipV_32(x64emu_t *emu, uintptr_t fnc); void iFEpLiipV_32(x64emu_t *emu, uintptr_t fnc);
void iFEpLiLpV_32(x64emu_t *emu, uintptr_t fnc); void iFEpLiLpV_32(x64emu_t *emu, uintptr_t fnc);
void iFEpppppp_32(x64emu_t *emu, uintptr_t fnc); void iFEpppppp_32(x64emu_t *emu, uintptr_t fnc);
void iFEXLpiiL_32(x64emu_t *emu, uintptr_t fnc);
void iFEXLpppp_32(x64emu_t *emu, uintptr_t fnc); void iFEXLpppp_32(x64emu_t *emu, uintptr_t fnc);
void iFuiiiuup_32(x64emu_t *emu, uintptr_t fnc); void iFuiiiuup_32(x64emu_t *emu, uintptr_t fnc);
void iFpWCiWCi_32(x64emu_t *emu, uintptr_t fnc); void iFpWCiWCi_32(x64emu_t *emu, uintptr_t fnc);
@ -1079,6 +1080,7 @@ void iFXLLiiuuii_32(x64emu_t *emu, uintptr_t fnc);
void uFuulpiuiuf_32(x64emu_t *emu, uintptr_t fnc); void uFuulpiuiuf_32(x64emu_t *emu, uintptr_t fnc);
void pFEuiiiuuuu_32(x64emu_t *emu, uintptr_t fnc); void pFEuiiiuuuu_32(x64emu_t *emu, uintptr_t fnc);
void pFEXLiiuuLi_32(x64emu_t *emu, uintptr_t fnc); void pFEXLiiuuLi_32(x64emu_t *emu, uintptr_t fnc);
void pFEXpuippuu_32(x64emu_t *emu, uintptr_t fnc);
void vFEXLpppippp_32(x64emu_t *emu, uintptr_t fnc); void vFEXLpppippp_32(x64emu_t *emu, uintptr_t fnc);
void vFiiiiiiiiii_32(x64emu_t *emu, uintptr_t fnc); void vFiiiiiiiiii_32(x64emu_t *emu, uintptr_t fnc);
void vFiiiiiiiiui_32(x64emu_t *emu, uintptr_t fnc); void vFiiiiiiiiui_32(x64emu_t *emu, uintptr_t fnc);
@ -1129,6 +1131,7 @@ void vFuuiiiiiiiuip_32(x64emu_t *emu, uintptr_t fnc);
void vFuuiiiiiiiuup_32(x64emu_t *emu, uintptr_t fnc); void vFuuiiiiiiiuup_32(x64emu_t *emu, uintptr_t fnc);
void vFuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fnc); void vFuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fnc);
void vFffffffffffff_32(x64emu_t *emu, uintptr_t fnc); void vFffffffffffff_32(x64emu_t *emu, uintptr_t fnc);
void iFEXLppiiiiuui_32(x64emu_t *emu, uintptr_t fnc);
void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fnc); void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fnc);
void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fnc); void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fnc);
void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fnc); void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fnc);

View File

@ -0,0 +1,399 @@
#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 "emu/x64emu_private.h"
#include "callback.h"
#include "librarian.h"
#include "box32context.h"
#include "emu/x64emu_private.h"
#ifdef ANDROID
static const char* libxextName = "libXext.so";
#else
static const char* libxextName = "libXext.so.6";
#endif
#define LIBNAME libxext
typedef struct _XImage XImage;
void BridgeImageFunc(x64emu_t *emu, XImage *img);
void UnbridgeImageFunc(x64emu_t *emu, XImage *img);
typedef int (*XextErrorHandler)(void *, void *, void*);
typedef struct my32_XExtensionHooks {
int (*create_gc)(void*, uint32_t, void*);
int (*copy_gc)(void*, uint32_t, void*);
int (*flush_gc)(void*, uint32_t, void*);
int (*free_gc)(void*, uint32_t, void*);
int (*create_font)(void*, void*, void*);
int (*free_font)(void*, void*, void*);
int (*close_display)(void*, void*);
int (*wire_to_event)(void*, void*, void*);
int (*event_to_wire)(void*, void*, void*);
int (*error)(void*, void*, void*, int*);
char *(*error_string)(void*, int, void*, void*, int);
} my32_XExtensionHooks;
#include "generated/wrappedlibxexttypes32.h"
#include "wrappercallback32.h"
#define SUPER() \
GO(0) \
GO(1) \
GO(2) \
GO(3) \
GO(4)
// exterrorhandle ...
#define GO(A) \
static uintptr_t my_exterrorhandle_fct_##A = 0; \
static int my_exterrorhandle_##A(void* display, void* ext_name, void* reason) \
{ \
return RunFunctionFmt(my_exterrorhandle_fct_##A, "ppp", display, ext_name, reason); \
}
SUPER()
#undef GO
static void* find_exterrorhandle_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_exterrorhandle_fct_##A == (uintptr_t)fct) return my_exterrorhandle_##A;
SUPER()
#undef GO
#define GO(A) if(my_exterrorhandle_fct_##A == 0) {my_exterrorhandle_fct_##A = (uintptr_t)fct; return my_exterrorhandle_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext exterrorhandle callback\n");
return NULL;
}
static void* reverse_exterrorhandleFct(void* fct)
{
if(!fct) return fct;
if(CheckBridged(my_lib->w.bridge, fct))
return (void*)CheckBridged(my_lib->w.bridge, fct);
#define GO(A) if(my_exterrorhandle_##A == fct) return (void*)my_exterrorhandle_fct_##A;
SUPER()
#undef GO
return (void*)AddBridge(my_lib->w.bridge, iFppp_32, fct, 0, NULL);
}
// create_gc ...
#define GO(A) \
static uintptr_t my_create_gc_fct_##A = 0; \
static int my_create_gc_##A(void* a, uint32_t b, void* c) \
{ \
return RunFunctionFmt(my_create_gc_fct_##A, "pup", a, b, c); \
}
SUPER()
#undef GO
static void* find_create_gc_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_create_gc_fct_##A == (uintptr_t)fct) return my_create_gc_##A;
SUPER()
#undef GO
#define GO(A) if(my_create_gc_fct_##A == 0) {my_create_gc_fct_##A = (uintptr_t)fct; return my_create_gc_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext create_gc callback\n");
return NULL;
}
// copy_gc ...
#define GO(A) \
static uintptr_t my_copy_gc_fct_##A = 0; \
static int my_copy_gc_##A(void* a, uint32_t b, void* c) \
{ \
return RunFunctionFmt(my_copy_gc_fct_##A, "pup", a, b, c); \
}
SUPER()
#undef GO
static void* find_copy_gc_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_copy_gc_fct_##A == (uintptr_t)fct) return my_copy_gc_##A;
SUPER()
#undef GO
#define GO(A) if(my_copy_gc_fct_##A == 0) {my_copy_gc_fct_##A = (uintptr_t)fct; return my_copy_gc_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext copy_gc callback\n");
return NULL;
}
// flush_gc ...
#define GO(A) \
static uintptr_t my_flush_gc_fct_##A = 0; \
static int my_flush_gc_##A(void* a, uint32_t b, void* c) \
{ \
return RunFunctionFmt(my_flush_gc_fct_##A, "pup", a, b, c); \
}
SUPER()
#undef GO
static void* find_flush_gc_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_flush_gc_fct_##A == (uintptr_t)fct) return my_flush_gc_##A;
SUPER()
#undef GO
#define GO(A) if(my_flush_gc_fct_##A == 0) {my_flush_gc_fct_##A = (uintptr_t)fct; return my_flush_gc_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext flush_gc callback\n");
return NULL;
}
// free_gc ...
#define GO(A) \
static uintptr_t my_free_gc_fct_##A = 0; \
static int my_free_gc_##A(void* a, uint32_t b, void* c) \
{ \
return RunFunctionFmt(my_free_gc_fct_##A, "pup", a, b, c); \
}
SUPER()
#undef GO
static void* find_free_gc_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_free_gc_fct_##A == (uintptr_t)fct) return my_free_gc_##A;
SUPER()
#undef GO
#define GO(A) if(my_free_gc_fct_##A == 0) {my_free_gc_fct_##A = (uintptr_t)fct; return my_free_gc_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext free_gc callback\n");
return NULL;
}
// create_font ...
#define GO(A) \
static uintptr_t my_create_font_fct_##A = 0; \
static int my_create_font_##A(void* a, void* b, void* c) \
{ \
return RunFunctionFmt(my_create_font_fct_##A, "ppp", a, b, c); \
}
SUPER()
#undef GO
static void* find_create_font_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_create_font_fct_##A == (uintptr_t)fct) return my_create_font_##A;
SUPER()
#undef GO
#define GO(A) if(my_create_font_fct_##A == 0) {my_create_font_fct_##A = (uintptr_t)fct; return my_create_font_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext create_font callback\n");
return NULL;
}
// free_font ...
#define GO(A) \
static uintptr_t my_free_font_fct_##A = 0; \
static int my_free_font_##A(void* a, void* b, void* c) \
{ \
return RunFunctionFmt(my_free_font_fct_##A, "ppp", a, b, c); \
}
SUPER()
#undef GO
static void* find_free_font_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_free_font_fct_##A == (uintptr_t)fct) return my_free_font_##A;
SUPER()
#undef GO
#define GO(A) if(my_free_font_fct_##A == 0) {my_free_font_fct_##A = (uintptr_t)fct; return my_free_font_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext free_font callback\n");
return NULL;
}
// close_display ...
#define GO(A) \
static uintptr_t my_close_display_fct_##A = 0; \
static int my_close_display_##A(void* a, void* b) \
{ \
return RunFunctionFmt(my_close_display_fct_##A, "pp", a, b);\
}
SUPER()
#undef GO
static void* find_close_display_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_close_display_fct_##A == (uintptr_t)fct) return my_close_display_##A;
SUPER()
#undef GO
#define GO(A) if(my_close_display_fct_##A == 0) {my_close_display_fct_##A = (uintptr_t)fct; return my_close_display_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext close_display callback\n");
return NULL;
}
// wire_to_event ...
#define GO(A) \
static uintptr_t my_wire_to_event_fct_##A = 0; \
static int my_wire_to_event_##A(void* a, void* b, void* c) \
{ \
return RunFunctionFmt(my_wire_to_event_fct_##A, "ppp", a, b, c); \
}
SUPER()
#undef GO
static void* find_wire_to_event_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_wire_to_event_fct_##A == (uintptr_t)fct) return my_wire_to_event_##A;
SUPER()
#undef GO
#define GO(A) if(my_wire_to_event_fct_##A == 0) {my_wire_to_event_fct_##A = (uintptr_t)fct; return my_wire_to_event_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext wire_to_event callback\n");
return NULL;
}
// event_to_wire ...
#define GO(A) \
static uintptr_t my_event_to_wire_fct_##A = 0; \
static int my_event_to_wire_##A(void* a, void* b, void* c) \
{ \
return RunFunctionFmt(my_event_to_wire_fct_##A, "ppp", a, b, c); \
}
SUPER()
#undef GO
static void* find_event_to_wire_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_event_to_wire_fct_##A == (uintptr_t)fct) return my_event_to_wire_##A;
SUPER()
#undef GO
#define GO(A) if(my_event_to_wire_fct_##A == 0) {my_event_to_wire_fct_##A = (uintptr_t)fct; return my_event_to_wire_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext event_to_wire callback\n");
return NULL;
}
// error ...
#define GO(A) \
static uintptr_t my_error_fct_##A = 0; \
static int my_error_##A(void* a, void* b, void* c, int* d) \
{ \
return RunFunctionFmt(my_error_fct_##A, "pppp", a, b, c, d); \
}
SUPER()
#undef GO
static void* find_error_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_error_fct_##A == (uintptr_t)fct) return my_error_##A;
SUPER()
#undef GO
#define GO(A) if(my_error_fct_##A == 0) {my_error_fct_##A = (uintptr_t)fct; return my_error_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext error callback\n");
return NULL;
}
// error_string ...
#define GO(A) \
static uintptr_t my_error_string_fct_##A = 0; \
static int my_error_string_##A(void* a, int b, void* c, void* d, int e) \
{ \
return RunFunctionFmt(my_error_string_fct_##A, "pippi", a, b, c, d, e); \
}
SUPER()
#undef GO
static void* find_error_string_Fct(void* fct)
{
if(!fct) return fct;
if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) if(my_error_string_fct_##A == (uintptr_t)fct) return my_error_string_##A;
SUPER()
#undef GO
#define GO(A) if(my_error_string_fct_##A == 0) {my_error_string_fct_##A = (uintptr_t)fct; return my_error_string_##A; }
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for libXext error_string callback\n");
return NULL;
}
#undef SUPER
EXPORT void* my32_XShmCreateImage(x64emu_t* emu, void* disp, void* vis, uint32_t depth, int32_t fmt
, void* data, void* shminfo, uint32_t w, uint32_t h)
{
XImage *img = my->XShmCreateImage(disp, vis, depth, fmt, data, shminfo, w, h);
if(!img)
return img;
// bridge all access functions...
BridgeImageFunc(emu, img);
return img;
}
EXPORT int32_t my32_XShmPutImage(x64emu_t* emu, void* disp, size_t drawable, void* gc, void* image
, int32_t src_x, int32_t src_y, int32_t dst_x, int32_t dst_y
, uint32_t w, uint32_t h, int32_t sendevt)
{
UnbridgeImageFunc(emu, (XImage*)image);
int32_t r = my->XShmPutImage(disp, drawable, gc, image, src_x, src_y, dst_x, dst_y, w, h, sendevt);
// bridge all access functions...
BridgeImageFunc(emu, (XImage*)image);
return r;
}
EXPORT int32_t my32_XShmGetImage(x64emu_t* emu, void* disp, size_t drawable, void* image, int32_t x, int32_t y, size_t plane)
{
UnbridgeImageFunc(emu, (XImage*)image);
int32_t r = my->XShmGetImage(disp, drawable, image, x, y, plane);
// bridge all access functions...
BridgeImageFunc(emu, (XImage*)image);
return r;
}
//EXPORT void* my32_XSetExtensionErrorHandler(x64emu_t* emu, void* handler)
//{
// (void)emu;
// return reverse_exterrorhandleFct(my->XSetExtensionErrorHandler(find_exterrorhandle_Fct(handler)));
//}
//EXPORT void* my32_XextAddDisplay(x64emu_t* emu, void* extinfo, void* dpy, void* extname, my32_XExtensionHooks* hooks, int nevents, void* data)
//{
// my32_XExtensionHooks natives = {0};
// #define GO(A) natives.A = find_##A##_Fct(hooks->A);
// GO(create_gc)
// GO(copy_gc)
// GO(flush_gc)
// GO(free_gc)
// GO(create_font)
// GO(free_font)
// GO(close_display)
// GO(wire_to_event)
// GO(event_to_wire)
// GO(error)
// GO(error_string)
// #undef GO
// void *ret = my->XextAddDisplay(extinfo, dpy, extname, &natives, nevents, data);
// return ret;
//}
#if 0
#ifdef ANDROID
#define NEEDED_LIBS "libX11.so", "libxcb.so", "libXau.so", "libdl.so", "libXdmcp.so"
#else
#define NEEDED_LIBS "libX11.so.6", "libxcb.so.1", "libXau.so.6", "libdl.so.2", "libXdmcp.so.6"
#endif
#endif
#include "wrappedlib_init32.h"

View File

@ -0,0 +1,139 @@
#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
#error Meh...
#endif
//GO(DPMSCapable, iFp)
//GO(DPMSDisable, iFp)
//GO(DPMSEnable, iFp)
//GO(DPMSForceLevel, iFpW)
//GO(DPMSGetTimeouts, iFpppp)
//GO(DPMSGetVersion, iFppp)
//GO(DPMSInfo, iFppp)
//GO(DPMSQueryExtension, iFppp)
//GO(DPMSSetTimeouts, iFpWWW)
//GO(XagCreateAssociation, iFppp)
//GO(XagCreateEmbeddedApplicationGroup, iFpLLLLp)
//GO(XagCreateNonembeddedApplicationGroup, iFpp)
//GO(XagDestroyApplicationGroup, iFpL)
//GO(XagDestroyAssociation, iFpL)
//GOM(XagGetApplicationGroupAttributes, iFEpLV)
//GO(XagQueryApplicationGroup, iFpLp)
//GO(XagQueryVersion, iFppp)
//GO(XcupGetReservedColormapEntries, iFpipp)
//GO(XcupQueryVersion, iFppp)
//GO(XcupStoreColors, iFpLpi)
//GO(XdbeAllocateBackBufferName, LFpLC)
//GO(XdbeBeginIdiom, iFp)
//GO(XdbeDeallocateBackBufferName, iFpL)
//GO(XdbeEndIdiom, iFp)
//GO(XdbeFreeVisualInfo, vFp)
//GO(XdbeGetBackBufferAttributes, pFpL)
//GO(XdbeGetVisualInfo, pFppp)
//GO(XdbeQueryExtension, iFppp)
//GO(XdbeSwapBuffers, iFppi)
//GO(XeviGetVisualInfo, iFppipp)
//GO(XeviQueryExtension, iFp)
//GO(XeviQueryVersion, iFppp)
//GOM(XextAddDisplay, pFEppppip)
//GO(XextCreateExtension, pFv)
//GO(XextDestroyExtension, vFp)
//DATAB(_XExtensionErrorFunction, 4)
//GO(XextFindDisplay, pFpp)
//GO(XextRemoveDisplay, iFpp)
//GO(XGEQueryExtension, iFppp)
//GO(XGEQueryVersion, iFppp)
//GO(XLbxGetEventBase, iFp)
//GO(XLbxQueryExtension, iFpppp)
//GO(XLbxQueryVersion, iFppp)
//GO(XmbufChangeBufferAttributes, vFpLLp)
//GO(XmbufChangeWindowAttributes, vFpLLp)
//GO(XmbufClearBufferArea, vFpLiiuui)
//GO(XmbufCreateBuffers, iFpLiiip)
//GOM(XmbufCreateStereoWindow, LFEpLiiuuuiupLppp)
//GO(XmbufDestroyBuffers, vFpL)
//GO(XmbufDisplayBuffers, vFpipii)
//GO(XmbufGetBufferAttributes, iFpLp)
//GO(XmbufGetScreenInfo, iFpLpppp)
//GO(XmbufGetVersion, iFppp)
//GO(XmbufGetWindowAttributes, iFpLp)
//GO(XmbufQueryExtension, iFppp)
//GO(XMissingExtension, iFpp)
//GO(XMITMiscGetBugMode, iFp)
//GO(XMITMiscQueryExtension, iFppp)
//GO(XMITMiscSetBugMode, iFpi)
//GO(XSecurityAllocXauth, pFv)
//GO(XSecurityFreeXauth, vFp)
//GO(XSecurityGenerateAuthorization, pFppLpp)
//GO(XSecurityQueryExtension, iFppp)
//GO(XSecurityRevokeAuthorization, iFpL)
//GOM(XSetExtensionErrorHandler, pFEp)
//GO(XShapeCombineMask, vFpLiiiLi)
//GO(XShapeCombineRectangles, vFpLiiipiii)
//GO(XShapeCombineRegion, vFpLiiipi)
//GO(XShapeCombineShape, vFpLiiiLii)
//GO(XShapeGetRectangles, pFpLipp)
//GO(XShapeInputSelected, LFpL)
//GO(XShapeOffsetShape, vFpLiii)
//GO(XShapeQueryExtension, iFppp)
//GO(XShapeQueryExtents, iFpLpppppppppp)
//GO(XShapeQueryVersion, iFppp)
//GO(XShapeSelectInput, vFpLL)
//GO(XShmAttach, iFpp)
GOM(XShmCreateImage, pFEXpuippuu) //need brige/unbridge...
//GO(XShmCreatePixmap, LFpLppuuu)
//GO(XShmDetach, iFpp)
//GO(XShmGetEventBase, iFp)
GOM(XShmGetImage, iFEXLpiiL) //need brige/unbridge...
//GO(XShmPixmapFormat, iFp)
GOM(XShmPutImage, iFEXLppiiiiuui) //need brige/unbridge...
//GO(XShmQueryExtension, iFp)
//GO(XShmQueryVersion, iFpppp)
//GO(XSyncAwait, iFppi)
//GO(XSyncAwaitFence, iFppi)
//GO(XSyncChangeAlarm, iFpLLp)
//GO(XSyncChangeCounter, iFpuU)
//GO(XSyncCreateAlarm, LFpLp) // XSyncAlarm is an XID
//GO(XSyncCreateCounter, uFpU) // XSyncValue is a struct of 2 int
//GO(XSyncCreateFence, LFpLi)
//GO(XSyncDestroyAlarm, iFpL)
//GO(XSyncDestroyCounter, iFpL)
//GO(XSyncDestroyFence, iFpL)
//GO(XSyncFreeSystemCounterList, vFp)
//GO(XSyncGetPriority, iFpLp)
//GO(XSyncInitialize, iFppp)
//GO(XSyncIntsToValue, vFpui)
//GO(XSyncIntToValue, vFpi)
//GO(XSyncListSystemCounters, pFpp)
//GO(XSyncMaxValue, vFp)
//GO(XSyncMinValue, vFp)
//GO(XSyncQueryAlarm, iFpLp)
//GO(XSyncQueryCounter, iFpLp)
//GO(XSyncQueryExtension, iFppp)
//GO(XSyncQueryFence, iFpLp)
//GO(XSyncResetFence, iFpL)
//GO(XSyncSetCounter, iFpuU) // XSyncCounter is an XID
//GO(XSyncSetPriority, iFpLi)
//GO(XSyncTriggerFence, iFpL)
//GO(XSyncValueAdd,
//GO(XSyncValueEqual,
//GO(XSyncValueGreaterOrEqual,
//GO(XSyncValueGreaterThan,
//GO(XSyncValueHigh32,
//GO(XSyncValueIsNegative,
//GO(XSyncValueIsPositive,
//GO(XSyncValueIsZero, iFp)
//GO(XSyncValueLessOrEqual,
//GO(XSyncValueLessThan,
//GO(XSyncValueLow32,
//GO(XSyncValueSubtract,
//DATA(XTestFakeAckType, 4)
//GO(XTestFakeInput, iFppii)
//GO(XTestFlush, iFp)
//GO(XTestGetInput, iFpi)
//DATAB(XTestInputActionType, 4)
//GO(XTestMovePointer, iFpipppu)
//GO(XTestPressButton, iFpiLuu)
//GO(XTestPressKey, iFpiLuu)
//GO(XTestQueryInputSize, iFpp)
//GO(XTestReset, iFp)
//GO(XTestStopInput, iFp)

View File

@ -239,11 +239,10 @@ EXPORT void* my32_XRRGetOutputInfo(x64emu_t* emu, void* dpy, void* res, XID wind
return ret; return ret;
} }
#if 0
#ifdef ANDROID #ifdef ANDROID
#define NEEDED_LIBS "libX11.so", "libXext.so", "libXrender.so" #define NEEDED_LIBS "libX11.so", "libXext.so", "libXrender.so"
#else #else
#define NEEDED_LIBS "libX11.so.6", "libXext.so.6", "libXrender.so.1" #define NEEDED_LIBS "libX11.so.6", "libXext.so.6", "libXrender.so.1"
#endif #endif
#endif
#include "wrappedlib_init32.h" #include "wrappedlib_init32.h"

View File

@ -24,11 +24,11 @@
#endif #endif
#define LIBNAME libxxf86vm #define LIBNAME libxxf86vm
#if 0
#ifdef ANDROID #ifdef ANDROID
#define NEEDED_LIBS "libX11.so", "libXext.so" #define NEEDED_LIBS "libX11.so", "libXext.so"
#else #else
#define NEEDED_LIBS "libX11.so.6", "libXext.so.6" #define NEEDED_LIBS "libX11.so.6", "libXext.so.6"
#endif #endif
#endif
#include "wrappedlib_init32.h" #include "wrappedlib_init32.h"