[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/wrappedfontconfig.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibx11.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibxext.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibxfixes.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibxrender.c"
"${BOX64_ROOT}/src/wrapped32/wrappedlibxcursor.c"

View File

@ -28,14 +28,25 @@ GO("libasound.so.2", libasound)
GO("libasound.so", libasound)
GO("libfreetype.so.6", freetype)
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("libXext.so.6", libxext)
GO("libXfixes.so.3", libxfixes)
GO("libXrender.so.1", libxrender)
GO("libXcursor.so.1", libxcursor)
GO("libXrandr.so.2", libxrandr)
GO("libxrandr.so.2", libxrandr)
GO("libXxf86vm.so.1", libxxf86vm)
#endif
GO("libopenal.so.1", openal)
GO("libopenal.so.0", openal)
GO("libopenal.so", openal)

View File

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

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 iFEpLiLpV_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 iFuiiiuup_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 pFEuiiiuuuu_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 vFiiiiiiiiii_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 vFuuuuuuuuuuuu_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 iFXLLlliLBL_pBL_BL_Bp__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;
}
#if 0
#ifdef ANDROID
#define NEEDED_LIBS "libX11.so", "libXext.so", "libXrender.so"
#else
#define NEEDED_LIBS "libX11.so.6", "libXext.so.6", "libXrender.so.1"
#endif
#endif
#include "wrappedlib_init32.h"

View File

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