diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-12-04 08:55:32 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-12-04 08:55:32 +0100 |
| commit | ffb293fe0a9952c32fe2ebd164d6409facf8d921 (patch) | |
| tree | e69cbe45f72d2d08ff16ae2bc472291948e7456c /src | |
| parent | f46522572ecd0f1d8297d1cf9c815f9c6964904a (diff) | |
| download | box64-ffb293fe0a9952c32fe2ebd164d6409facf8d921.tar.gz box64-ffb293fe0a9952c32fe2ebd164d6409facf8d921.zip | |
Added wrapped libXpresent.so.1
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_helper.c | 2 | ||||
| -rwxr-xr-x | src/library_list.h | 1 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibxpresentdefs.h | 8 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibxpresenttypes.h | 17 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibxpresentundefs.h | 8 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 5 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 2 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibxpresent.c | 19 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibxpresent_private.h | 15 |
10 files changed, 79 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_helper.c b/src/dynarec/arm64/dynarec_arm64_helper.c index 5fecf8a2..a9af4bf9 100755 --- a/src/dynarec/arm64/dynarec_arm64_helper.c +++ b/src/dynarec/arm64/dynarec_arm64_helper.c @@ -1117,7 +1117,7 @@ int sse_setround(dynarec_arm_t* dyn, int ninst, int s1, int s2, int s3) { MAYUSE(dyn); MAYUSE(ninst); MAYUSE(s1); MAYUSE(s2); - LDRH_U12(s1, xEmu, offsetof(x64emu_t, mxcsr)); + LDRw_U12(s1, xEmu, offsetof(x64emu_t, mxcsr)); RBITw(s2, s1); // round is on bits 13-14 on x64, LSRw(s2, s2, 17); // but we want the reverse of that MRS_fpcr(s1); // get fpscr diff --git a/src/library_list.h b/src/library_list.h index 7f41c896..45c62b30 100755 --- a/src/library_list.h +++ b/src/library_list.h @@ -69,6 +69,7 @@ GO("libXtst.so.6", libxtst) GO("libXt.so.6", libxt) GO("libXcomposite.so.1", libxcomposite) GO("libXdamage.so.1", libxdamage) +GO("libXpresent.so.1", libxpresent) GO("libXmu.so.6", libxmu) GO("libxkbcommon.so.0", xkbcommon) GO("libxkbcommon-x11.so.0", xkbcommonx11) diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 1e46dc5f..a60958b0 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -1452,6 +1452,7 @@ #() vFppippi #() vFppippp #() vFppuuuu +#() vFppuUUU #() vFppupii #() vFppuppp #() vFppdidd @@ -2210,6 +2211,7 @@ #() pFpppppppppppppppp #() vFuuuiiiiiuiiiiilll #() vFppiiiiddddiiiiiuu +#() vFpppuppiipppuUUUpi #() pFppippipipipipipip #() vFppuiiiiipuiiiiiiii #() vFpppipppppppppppppp @@ -3548,6 +3550,7 @@ wrappedlibxft: wrappedlibxi: wrappedlibxmu: wrappedlibxpm: +wrappedlibxpresent: wrappedlibxrandr: wrappedlibxrender: wrappedlibxss: diff --git a/src/wrapped/generated/wrappedlibxpresentdefs.h b/src/wrapped/generated/wrappedlibxpresentdefs.h new file mode 100644 index 00000000..1c8865be --- /dev/null +++ b/src/wrapped/generated/wrappedlibxpresentdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.1.0.16) * + *******************************************************************/ +#ifndef __wrappedlibxpresentDEFS_H_ +#define __wrappedlibxpresentDEFS_H_ + + +#endif // __wrappedlibxpresentDEFS_H_ diff --git a/src/wrapped/generated/wrappedlibxpresenttypes.h b/src/wrapped/generated/wrappedlibxpresenttypes.h new file mode 100644 index 00000000..4561be94 --- /dev/null +++ b/src/wrapped/generated/wrappedlibxpresenttypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.1.0.16) * + *******************************************************************/ +#ifndef __wrappedlibxpresentTYPES_H_ +#define __wrappedlibxpresentTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedlibxpresentTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibxpresentundefs.h b/src/wrapped/generated/wrappedlibxpresentundefs.h new file mode 100644 index 00000000..a73e4120 --- /dev/null +++ b/src/wrapped/generated/wrappedlibxpresentundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.1.0.16) * + *******************************************************************/ +#ifndef __wrappedlibxpresentUNDEFS_H_ +#define __wrappedlibxpresentUNDEFS_H_ + + +#endif // __wrappedlibxpresentUNDEFS_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 34225b54..a7f1858b 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -1486,6 +1486,7 @@ typedef void (*vFppilpp_t)(void*, void*, int64_t, intptr_t, void*, void*); typedef void (*vFppippi_t)(void*, void*, int64_t, void*, void*, int64_t); typedef void (*vFppippp_t)(void*, void*, int64_t, void*, void*, void*); typedef void (*vFppuuuu_t)(void*, void*, uint64_t, uint64_t, uint64_t, uint64_t); +typedef void (*vFppuUUU_t)(void*, void*, uint64_t, uint64_t, uint64_t, uint64_t); typedef void (*vFppupii_t)(void*, void*, uint64_t, void*, int64_t, int64_t); typedef void (*vFppuppp_t)(void*, void*, uint64_t, void*, void*, void*); typedef void (*vFppdidd_t)(void*, void*, double, int64_t, double, double); @@ -2244,6 +2245,7 @@ typedef void* (*pFppipipipipipipip_t)(void*, void*, int64_t, void*, int64_t, voi typedef void* (*pFpppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef void (*vFuuuiiiiiuiiiiilll_t)(uint64_t, uint64_t, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t, intptr_t, intptr_t, intptr_t); typedef void (*vFppiiiiddddiiiiiuu_t)(void*, void*, int64_t, int64_t, int64_t, int64_t, double, double, double, double, int64_t, int64_t, int64_t, int64_t, int64_t, uint64_t, uint64_t); +typedef void (*vFpppuppiipppuUUUpi_t)(void*, void*, void*, uint64_t, void*, void*, int64_t, int64_t, void*, void*, void*, uint64_t, uint64_t, uint64_t, uint64_t, void*, int64_t); typedef void* (*pFppippipipipipipip_t)(void*, void*, int64_t, void*, void*, int64_t, void*, int64_t, void*, int64_t, void*, int64_t, void*, int64_t, void*, int64_t, void*); typedef void (*vFppuiiiiipuiiiiiiii_t)(void*, void*, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t); typedef void (*vFpppipppppppppppppp_t)(void*, void*, void*, int64_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); @@ -3735,6 +3737,7 @@ void vFppilpp(x64emu_t *emu, uintptr_t fcn) { vFppilpp_t fn = (vFppilpp_t)fcn; f void vFppippi(x64emu_t *emu, uintptr_t fcn) { vFppippi_t fn = (vFppippi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9); } void vFppippp(x64emu_t *emu, uintptr_t fcn) { vFppippp_t fn = (vFppippp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void vFppuuuu(x64emu_t *emu, uintptr_t fcn) { vFppuuuu_t fn = (vFppuuuu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9); } +void vFppuUUU(x64emu_t *emu, uintptr_t fcn) { vFppuUUU_t fn = (vFppuUUU_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9); } void vFppupii(x64emu_t *emu, uintptr_t fcn) { vFppupii_t fn = (vFppupii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } void vFppuppp(x64emu_t *emu, uintptr_t fcn) { vFppuppp_t fn = (vFppuppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void vFppdidd(x64emu_t *emu, uintptr_t fcn) { vFppdidd_t fn = (vFppdidd_t)fcn; fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0], (int64_t)R_RDX, emu->xmm[1].d[0], emu->xmm[2].d[0]); } @@ -4493,6 +4496,7 @@ void pFppipipipipipipip(x64emu_t *emu, uintptr_t fcn) { pFppipipipipipipip_t fn void pFpppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFpppppppppppppppp_t fn = (pFpppppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80)); } void vFuuuiiiiiuiiiiilll(x64emu_t *emu, uintptr_t fcn) { vFuuuiiiiiuiiiiilll_t fn = (vFuuuiiiiiuiiiiilll_t)fcn; fn((uint64_t)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(uint64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(int64_t*)(R_RSP + 40), *(int64_t*)(R_RSP + 48), *(int64_t*)(R_RSP + 56), *(int64_t*)(R_RSP + 64), *(intptr_t*)(R_RSP + 72), *(intptr_t*)(R_RSP + 80), *(intptr_t*)(R_RSP + 88)); } void vFppiiiiddddiiiiiuu(x64emu_t *emu, uintptr_t fcn) { vFppiiiiddddiiiiiuu_t fn = (vFppiiiiddddiiiiiuu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(int64_t*)(R_RSP + 40), *(uint64_t*)(R_RSP + 48), *(uint64_t*)(R_RSP + 56)); } +void vFpppuppiipppuUUUpi(x64emu_t *emu, uintptr_t fcn) { vFpppuppiipppuUUUpi_t fn = (vFpppuppiipppuUUUpi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(uint64_t*)(R_RSP + 48), *(uint64_t*)(R_RSP + 56), *(uint64_t*)(R_RSP + 64), *(uint64_t*)(R_RSP + 72), *(void**)(R_RSP + 80), *(int64_t*)(R_RSP + 88)); } void pFppippipipipipipip(x64emu_t *emu, uintptr_t fcn) { pFppippipipipipipip_t fn = (pFppippipipipipipip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(void**)(R_RSP + 40), *(int64_t*)(R_RSP + 48), *(void**)(R_RSP + 56), *(int64_t*)(R_RSP + 64), *(void**)(R_RSP + 72), *(int64_t*)(R_RSP + 80), *(void**)(R_RSP + 88)); } void vFppuiiiiipuiiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFppuiiiiipuiiiiiiii_t fn = (vFppuiiiiipuiiiiiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(uint64_t*)(R_RSP + 32), *(int64_t*)(R_RSP + 40), *(int64_t*)(R_RSP + 48), *(int64_t*)(R_RSP + 56), *(int64_t*)(R_RSP + 64), *(int64_t*)(R_RSP + 72), *(int64_t*)(R_RSP + 80), *(int64_t*)(R_RSP + 88), *(int64_t*)(R_RSP + 96)); } void vFpppipppppppppppppp(x64emu_t *emu, uintptr_t fcn) { vFpppipppppppppppppp_t fn = (vFpppipppppppppppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(R_RSP + 88), *(void**)(R_RSP + 96)); } @@ -5782,6 +5786,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFppippi) return 1; if (fun == &vFppippp) return 1; if (fun == &vFppuuuu) return 1; + if (fun == &vFppuUUU) return 1; if (fun == &vFppupii) return 1; if (fun == &vFppuppp) return 1; if (fun == &vFppdidd) return 4; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 31d952b6..5200c9ea 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -1485,6 +1485,7 @@ void vFppilpp(x64emu_t *emu, uintptr_t fnc); void vFppippi(x64emu_t *emu, uintptr_t fnc); void vFppippp(x64emu_t *emu, uintptr_t fnc); void vFppuuuu(x64emu_t *emu, uintptr_t fnc); +void vFppuUUU(x64emu_t *emu, uintptr_t fnc); void vFppupii(x64emu_t *emu, uintptr_t fnc); void vFppuppp(x64emu_t *emu, uintptr_t fnc); void vFppdidd(x64emu_t *emu, uintptr_t fnc); @@ -2243,6 +2244,7 @@ void pFppipipipipipipip(x64emu_t *emu, uintptr_t fnc); void pFpppppppppppppppp(x64emu_t *emu, uintptr_t fnc); void vFuuuiiiiiuiiiiilll(x64emu_t *emu, uintptr_t fnc); void vFppiiiiddddiiiiiuu(x64emu_t *emu, uintptr_t fnc); +void vFpppuppiipppuUUUpi(x64emu_t *emu, uintptr_t fnc); void pFppippipipipipipip(x64emu_t *emu, uintptr_t fnc); void vFppuiiiiipuiiiiiiii(x64emu_t *emu, uintptr_t fnc); void vFpppipppppppppppppp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibxpresent.c b/src/wrapped/wrappedlibxpresent.c new file mode 100644 index 00000000..c5d13fd5 --- /dev/null +++ b/src/wrapped/wrappedlibxpresent.c @@ -0,0 +1,19 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "debug.h" + +const char* libxpresentName = "libXpresent.so.1"; +#define LIBNAME libxpresent + +#include "wrappedlib_init.h" + diff --git a/src/wrapped/wrappedlibxpresent_private.h b/src/wrapped/wrappedlibxpresent_private.h new file mode 100644 index 00000000..72b8b4c1 --- /dev/null +++ b/src/wrapped/wrappedlibxpresent_private.h @@ -0,0 +1,15 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +DATAB(XPresentExtensionInfo, 3*sizeof(void*)) +DATA(XPresentExtensionName, sizeof(void*)) +GO(XPresentFindDisplay, pFp) +GO(XPresentFreeInput, vFppp) +GO(XPresentNotifyMSC, vFppuUUU) +GO(XPresentPixmap, vFpppuppiipppuUUUpi) +GO(XPresentQueryCapabilities, uFpp) +GO(XPresentQueryExtension, iFpppp) +GO(XPresentQueryVersion, iFppp) +GO(XPresentSelectInput, pFppu) +GO(XPresentVersion, iFv) |