about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-12-04 08:55:32 +0100
committerptitSeb <sebastien.chev@gmail.com>2022-12-04 08:55:32 +0100
commitffb293fe0a9952c32fe2ebd164d6409facf8d921 (patch)
treee69cbe45f72d2d08ff16ae2bc472291948e7456c /src
parentf46522572ecd0f1d8297d1cf9c815f9c6964904a (diff)
downloadbox64-ffb293fe0a9952c32fe2ebd164d6409facf8d921.tar.gz
box64-ffb293fe0a9952c32fe2ebd164d6409facf8d921.zip
Added wrapped libXpresent.so.1
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_helper.c2
-rwxr-xr-xsrc/library_list.h1
-rw-r--r--src/wrapped/generated/functions_list.txt3
-rw-r--r--src/wrapped/generated/wrappedlibxpresentdefs.h8
-rw-r--r--src/wrapped/generated/wrappedlibxpresenttypes.h17
-rw-r--r--src/wrapped/generated/wrappedlibxpresentundefs.h8
-rw-r--r--src/wrapped/generated/wrapper.c5
-rw-r--r--src/wrapped/generated/wrapper.h2
-rw-r--r--src/wrapped/wrappedlibxpresent.c19
-rw-r--r--src/wrapped/wrappedlibxpresent_private.h15
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)