about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-03-25 12:01:23 +0000
committerptitSeb <sebastien.chev@gmail.com>2023-03-25 12:01:23 +0000
commit56e980556236709f287b87ab41b643a5607d4982 (patch)
tree5711392b54930dac8f3011d0a0179eb77a2ed34e /src
parentf197e750b623469d65d00d308ea182e5693dfa08 (diff)
downloadbox64-56e980556236709f287b87ab41b643a5607d4982.tar.gz
box64-56e980556236709f287b87ab41b643a5607d4982.zip
Added wrapped libnuma
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h2
-rw-r--r--src/wrapped/generated/functions_list.txt7
-rw-r--r--src/wrapped/generated/wrappedlibnumadefs.h8
-rw-r--r--src/wrapped/generated/wrappedlibnumatypes.h17
-rw-r--r--src/wrapped/generated/wrappedlibnumaundefs.h8
-rw-r--r--src/wrapped/generated/wrapper.c17
-rw-r--r--src/wrapped/generated/wrapper.h6
-rw-r--r--src/wrapped/wrappedlibnuma.c25
-rw-r--r--src/wrapped/wrappedlibnuma_private.h107
9 files changed, 197 insertions, 0 deletions
diff --git a/src/library_list.h b/src/library_list.h
index 9fbb5513..dc851a4c 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -220,6 +220,8 @@ GO("libva-drm.so.2", libvadrm)
 GO("libva-x11.so.2", libvax11)
 GO("libva-wayland.so.2", libvawayland)
 GO("libvdpau.so.1", libvdpau)
+GO("libnuma.so.1", libnuma)
+GO("libnuma.so", libnuma)
 GO("d3dadapter9.so.1", d3dadapter9)
 
 GO("ld-linux-x86-64.so.2", ldlinux)
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 2fa478de..c0f8fd03 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -170,6 +170,7 @@
 #() iFpO
 #() iFSi
 #() IFEp
+#() IFip
 #() IFII
 #() IFpi
 #() IFpu
@@ -223,6 +224,7 @@
 #() DFDp
 #() DFpp
 #() lFii
+#() lFip
 #() lFll
 #() lFpi
 #() lFpl
@@ -253,6 +255,7 @@
 #() pFdi
 #() pFdd
 #() pFlp
+#() pFLi
 #() pFLu
 #() pFLL
 #() pFLp
@@ -1564,6 +1567,7 @@
 #() iFiiiiip
 #() iFiiiuwp
 #() iFiuiipi
+#() iFiLpppi
 #() iFipiipi
 #() iFipipip
 #() iFipippp
@@ -1599,6 +1603,7 @@
 #() iFpUuupp
 #() iFpUUUip
 #() iFpUUUUp
+#() iFpLipLu
 #() iFpLLppp
 #() iFppiiii
 #() iFppiiip
@@ -2315,6 +2320,7 @@
 #() pFpCuuwwWWWWuup
 #() pFpuupppwwwwWWC
 #() pFppppppppppppp
+#() vFippppppppppppp
 #() vFuffiiffiiffiip
 #() vFuddiiddiiddiip
 #() vFppiipppiiiiiii
@@ -3534,6 +3540,7 @@ wrappedlibncursesw6:
   - mvprintw
 - iFpiipV:
   - mvwprintw
+wrappedlibnuma:
 wrappedlibogg:
 wrappedlibpanel:
 wrappedlibpci:
diff --git a/src/wrapped/generated/wrappedlibnumadefs.h b/src/wrapped/generated/wrappedlibnumadefs.h
new file mode 100644
index 00000000..cde34426
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibnumadefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlibnumaDEFS_H_
+#define __wrappedlibnumaDEFS_H_
+
+
+#endif // __wrappedlibnumaDEFS_H_
diff --git a/src/wrapped/generated/wrappedlibnumatypes.h b/src/wrapped/generated/wrappedlibnumatypes.h
new file mode 100644
index 00000000..a817e629
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibnumatypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlibnumaTYPES_H_
+#define __wrappedlibnumaTYPES_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 // __wrappedlibnumaTYPES_H_
diff --git a/src/wrapped/generated/wrappedlibnumaundefs.h b/src/wrapped/generated/wrappedlibnumaundefs.h
new file mode 100644
index 00000000..717d076d
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibnumaundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlibnumaUNDEFS_H_
+#define __wrappedlibnumaUNDEFS_H_
+
+
+#endif // __wrappedlibnumaUNDEFS_H_
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 6b12efa8..4513cab3 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -204,6 +204,7 @@ typedef int32_t (*iFpp_t)(void*, void*);
 typedef int32_t (*iFpO_t)(void*, int32_t);
 typedef int32_t (*iFSi_t)(void*, int32_t);
 typedef int64_t (*IFEp_t)(x64emu_t*, void*);
+typedef int64_t (*IFip_t)(int32_t, void*);
 typedef int64_t (*IFII_t)(int64_t, int64_t);
 typedef int64_t (*IFpi_t)(void*, int32_t);
 typedef int64_t (*IFpu_t)(void*, uint32_t);
@@ -257,6 +258,7 @@ typedef long double (*DFDD_t)(long double, long double);
 typedef long double (*DFDp_t)(long double, void*);
 typedef long double (*DFpp_t)(void*, void*);
 typedef intptr_t (*lFii_t)(int32_t, int32_t);
+typedef intptr_t (*lFip_t)(int32_t, void*);
 typedef intptr_t (*lFll_t)(intptr_t, intptr_t);
 typedef intptr_t (*lFpi_t)(void*, int32_t);
 typedef intptr_t (*lFpl_t)(void*, intptr_t);
@@ -287,6 +289,7 @@ typedef void* (*pFUU_t)(uint64_t, uint64_t);
 typedef void* (*pFdi_t)(double, int32_t);
 typedef void* (*pFdd_t)(double, double);
 typedef void* (*pFlp_t)(intptr_t, void*);
+typedef void* (*pFLi_t)(uintptr_t, int32_t);
 typedef void* (*pFLu_t)(uintptr_t, uint32_t);
 typedef void* (*pFLL_t)(uintptr_t, uintptr_t);
 typedef void* (*pFLp_t)(uintptr_t, void*);
@@ -1598,6 +1601,7 @@ typedef int32_t (*iFiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32
 typedef int32_t (*iFiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFiiiuwp_t)(int32_t, int32_t, int32_t, uint32_t, int16_t, void*);
 typedef int32_t (*iFiuiipi_t)(int32_t, uint32_t, int32_t, int32_t, void*, int32_t);
+typedef int32_t (*iFiLpppi_t)(int32_t, uintptr_t, void*, void*, void*, int32_t);
 typedef int32_t (*iFipiipi_t)(int32_t, void*, int32_t, int32_t, void*, int32_t);
 typedef int32_t (*iFipipip_t)(int32_t, void*, int32_t, void*, int32_t, void*);
 typedef int32_t (*iFipippp_t)(int32_t, void*, int32_t, void*, void*, void*);
@@ -1633,6 +1637,7 @@ typedef int32_t (*iFpUuuLp_t)(void*, uint64_t, uint32_t, uint32_t, uintptr_t, vo
 typedef int32_t (*iFpUuupp_t)(void*, uint64_t, uint32_t, uint32_t, void*, void*);
 typedef int32_t (*iFpUUUip_t)(void*, uint64_t, uint64_t, uint64_t, int32_t, void*);
 typedef int32_t (*iFpUUUUp_t)(void*, uint64_t, uint64_t, uint64_t, uint64_t, void*);
+typedef int32_t (*iFpLipLu_t)(void*, uintptr_t, int32_t, void*, uintptr_t, uint32_t);
 typedef int32_t (*iFpLLppp_t)(void*, uintptr_t, uintptr_t, void*, void*, void*);
 typedef int32_t (*iFppiiii_t)(void*, void*, int32_t, int32_t, int32_t, int32_t);
 typedef int32_t (*iFppiiip_t)(void*, void*, int32_t, int32_t, int32_t, void*);
@@ -2349,6 +2354,7 @@ typedef uint32_t (*uFppppuuupppppp_t)(void*, void*, void*, void*, uint32_t, uint
 typedef void* (*pFpCuuwwWWWWuup_t)(void*, uint8_t, uint32_t, uint32_t, int16_t, int16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint32_t, uint32_t, void*);
 typedef void* (*pFpuupppwwwwWWC_t)(void*, uint32_t, uint32_t, void*, void*, void*, int16_t, int16_t, int16_t, int16_t, uint16_t, uint16_t, uint8_t);
 typedef void* (*pFppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
+typedef void (*vFippppppppppppp_t)(int32_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void (*vFuffiiffiiffiip_t)(uint32_t, float, float, int32_t, int32_t, float, float, int32_t, int32_t, float, float, int32_t, int32_t, void*);
 typedef void (*vFuddiiddiiddiip_t)(uint32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, void*);
 typedef void (*vFppiipppiiiiiii_t)(void*, void*, int32_t, int32_t, void*, void*, void*, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
@@ -2582,6 +2588,7 @@ void iFpp(x64emu_t *emu, uintptr_t fcn) { iFpp_t fn = (iFpp_t)fcn; R_RAX=(int32_
 void iFpO(x64emu_t *emu, uintptr_t fcn) { iFpO_t fn = (iFpO_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, of_convert((int32_t)R_RSI)); }
 void iFSi(x64emu_t *emu, uintptr_t fcn) { iFSi_t fn = (iFSi_t)fcn; R_RAX=(int32_t)fn(io_convert((void*)R_RDI), (int32_t)R_RSI); }
 void IFEp(x64emu_t *emu, uintptr_t fcn) { IFEp_t fn = (IFEp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI); }
+void IFip(x64emu_t *emu, uintptr_t fcn) { IFip_t fn = (IFip_t)fcn; R_RAX=(int64_t)fn((int32_t)R_RDI, (void*)R_RSI); }
 void IFII(x64emu_t *emu, uintptr_t fcn) { IFII_t fn = (IFII_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI); }
 void IFpi(x64emu_t *emu, uintptr_t fcn) { IFpi_t fn = (IFpi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int32_t)R_RSI); }
 void IFpu(x64emu_t *emu, uintptr_t fcn) { IFpu_t fn = (IFpu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint32_t)R_RSI); }
@@ -2635,6 +2642,7 @@ void DFDD(x64emu_t *emu, uintptr_t fcn) { DFDD_t fn = (DFDD_t)fcn; long double l
 void DFDp(x64emu_t *emu, uintptr_t fcn) { DFDp_t fn = (DFDp_t)fcn; long double ld=fn(LD2localLD((void*)(R_RSP + 8)), (void*)R_RDI); fpu_do_push(emu); ST0val = ld; }
 void DFpp(x64emu_t *emu, uintptr_t fcn) { DFpp_t fn = (DFpp_t)fcn; long double ld=fn((void*)R_RDI, (void*)R_RSI); fpu_do_push(emu); ST0val = ld; }
 void lFii(x64emu_t *emu, uintptr_t fcn) { lFii_t fn = (lFii_t)fcn; R_RAX=(intptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI); }
+void lFip(x64emu_t *emu, uintptr_t fcn) { lFip_t fn = (lFip_t)fcn; R_RAX=(intptr_t)fn((int32_t)R_RDI, (void*)R_RSI); }
 void lFll(x64emu_t *emu, uintptr_t fcn) { lFll_t fn = (lFll_t)fcn; R_RAX=(intptr_t)fn((intptr_t)R_RDI, (intptr_t)R_RSI); }
 void lFpi(x64emu_t *emu, uintptr_t fcn) { lFpi_t fn = (lFpi_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (int32_t)R_RSI); }
 void lFpl(x64emu_t *emu, uintptr_t fcn) { lFpl_t fn = (lFpl_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (intptr_t)R_RSI); }
@@ -2665,6 +2673,7 @@ void pFUU(x64emu_t *emu, uintptr_t fcn) { pFUU_t fn = (pFUU_t)fcn; R_RAX=(uintpt
 void pFdi(x64emu_t *emu, uintptr_t fcn) { pFdi_t fn = (pFdi_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], (int32_t)R_RDI); }
 void pFdd(x64emu_t *emu, uintptr_t fcn) { pFdd_t fn = (pFdd_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0]); }
 void pFlp(x64emu_t *emu, uintptr_t fcn) { pFlp_t fn = (pFlp_t)fcn; R_RAX=(uintptr_t)fn((intptr_t)R_RDI, (void*)R_RSI); }
+void pFLi(x64emu_t *emu, uintptr_t fcn) { pFLi_t fn = (pFLi_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (int32_t)R_RSI); }
 void pFLu(x64emu_t *emu, uintptr_t fcn) { pFLu_t fn = (pFLu_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (uint32_t)R_RSI); }
 void pFLL(x64emu_t *emu, uintptr_t fcn) { pFLL_t fn = (pFLL_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI); }
 void pFLp(x64emu_t *emu, uintptr_t fcn) { pFLp_t fn = (pFLp_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (void*)R_RSI); }
@@ -3976,6 +3985,7 @@ void iFiiiiii(x64emu_t *emu, uintptr_t fcn) { iFiiiiii_t fn = (iFiiiiii_t)fcn; R
 void iFiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiip_t fn = (iFiiiiip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void iFiiiuwp(x64emu_t *emu, uintptr_t fcn) { iFiiiuwp_t fn = (iFiiiuwp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int16_t)R_R8, (void*)R_R9); }
 void iFiuiipi(x64emu_t *emu, uintptr_t fcn) { iFiuiipi_t fn = (iFiuiipi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); }
+void iFiLpppi(x64emu_t *emu, uintptr_t fcn) { iFiLpppi_t fn = (iFiLpppi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9); }
 void iFipiipi(x64emu_t *emu, uintptr_t fcn) { iFipiipi_t fn = (iFipiipi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); }
 void iFipipip(x64emu_t *emu, uintptr_t fcn) { iFipipip_t fn = (iFipipip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void iFipippp(x64emu_t *emu, uintptr_t fcn) { iFipippp_t fn = (iFipippp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
@@ -4011,6 +4021,7 @@ void iFpUuuLp(x64emu_t *emu, uintptr_t fcn) { iFpUuuLp_t fn = (iFpUuuLp_t)fcn; R
 void iFpUuupp(x64emu_t *emu, uintptr_t fcn) { iFpUuupp_t fn = (iFpUuupp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFpUUUip(x64emu_t *emu, uintptr_t fcn) { iFpUUUip_t fn = (iFpUUUip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void iFpUUUUp(x64emu_t *emu, uintptr_t fcn) { iFpUUUUp_t fn = (iFpUUUUp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8, (void*)R_R9); }
+void iFpLipLu(x64emu_t *emu, uintptr_t fcn) { iFpLipLu_t fn = (iFpLipLu_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8, (uint32_t)R_R9); }
 void iFpLLppp(x64emu_t *emu, uintptr_t fcn) { iFpLLppp_t fn = (iFpLLppp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFppiiii(x64emu_t *emu, uintptr_t fcn) { iFppiiii_t fn = (iFppiiii_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void iFppiiip(x64emu_t *emu, uintptr_t fcn) { iFppiiip_t fn = (iFppiiip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); }
@@ -4727,6 +4738,7 @@ void uFppppuuupppppp(x64emu_t *emu, uintptr_t fcn) { uFppppuuupppppp_t fn = (uFp
 void pFpCuuwwWWWWuup(x64emu_t *emu, uintptr_t fcn) { pFpCuuwwWWWWuup_t fn = (pFpCuuwwWWWWuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(uint16_t*)(R_RSP + 8), *(uint16_t*)(R_RSP + 16), *(uint16_t*)(R_RSP + 24), *(uint16_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(uint32_t*)(R_RSP + 48), *(void**)(R_RSP + 56)); }
 void pFpuupppwwwwWWC(x64emu_t *emu, uintptr_t fcn) { pFpuupppwwwwWWC_t fn = (pFpuupppwwwwWWC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(int16_t*)(R_RSP + 8), *(int16_t*)(R_RSP + 16), *(int16_t*)(R_RSP + 24), *(int16_t*)(R_RSP + 32), *(uint16_t*)(R_RSP + 40), *(uint16_t*)(R_RSP + 48), *(uint8_t*)(R_RSP + 56)); }
 void pFppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFppppppppppppp_t fn = (pFppppppppppppp_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 vFippppppppppppp(x64emu_t *emu, uintptr_t fcn) { vFippppppppppppp_t fn = (vFippppppppppppp_t)fcn; fn((int32_t)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 vFuffiiffiiffiip(x64emu_t *emu, uintptr_t fcn) { vFuffiiffiiffiip_t fn = (vFuffiiffiiffiip_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].f[0], emu->xmm[3].f[0], (int32_t)R_RCX, (int32_t)R_R8, emu->xmm[4].f[0], emu->xmm[5].f[0], (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFuddiiddiiddiip(x64emu_t *emu, uintptr_t fcn) { vFuddiiddiiddiip_t fn = (vFuddiiddiiddiip_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].d[0], emu->xmm[3].d[0], (int32_t)R_RCX, (int32_t)R_R8, emu->xmm[4].d[0], emu->xmm[5].d[0], (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFppiipppiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFppiipppiiiiiii_t fn = (vFppiipppiiiiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40), *(int32_t*)(R_RSP + 48), *(int32_t*)(R_RSP + 56), *(int32_t*)(R_RSP + 64)); }
@@ -4946,6 +4958,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpl) return 1;
 	if (fun == &iFpL) return 1;
 	if (fun == &iFpp) return 1;
+	if (fun == &IFip) return 1;
 	if (fun == &IFII) return 1;
 	if (fun == &IFpi) return 1;
 	if (fun == &IFpu) return 1;
@@ -4990,6 +5003,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &dFpd) return -2;
 	if (fun == &dFpp) return -1;
 	if (fun == &lFii) return 1;
+	if (fun == &lFip) return 1;
 	if (fun == &lFll) return 1;
 	if (fun == &lFpi) return 1;
 	if (fun == &lFpl) return 1;
@@ -5015,6 +5029,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFdi) return 2;
 	if (fun == &pFdd) return 3;
 	if (fun == &pFlp) return 1;
+	if (fun == &pFLi) return 1;
 	if (fun == &pFLu) return 1;
 	if (fun == &pFLL) return 1;
 	if (fun == &pFLp) return 1;
@@ -6079,6 +6094,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFiiiiip) return 1;
 	if (fun == &iFiiiuwp) return 1;
 	if (fun == &iFiuiipi) return 1;
+	if (fun == &iFiLpppi) return 1;
 	if (fun == &iFipiipi) return 1;
 	if (fun == &iFipipip) return 1;
 	if (fun == &iFipippp) return 1;
@@ -6113,6 +6129,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpUuupp) return 1;
 	if (fun == &iFpUUUip) return 1;
 	if (fun == &iFpUUUUp) return 1;
+	if (fun == &iFpLipLu) return 1;
 	if (fun == &iFpLLppp) return 1;
 	if (fun == &iFppiiii) return 1;
 	if (fun == &iFppiiip) return 1;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 75ae7fef..e74bc6e0 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -203,6 +203,7 @@ void iFpp(x64emu_t *emu, uintptr_t fnc);
 void iFpO(x64emu_t *emu, uintptr_t fnc);
 void iFSi(x64emu_t *emu, uintptr_t fnc);
 void IFEp(x64emu_t *emu, uintptr_t fnc);
+void IFip(x64emu_t *emu, uintptr_t fnc);
 void IFII(x64emu_t *emu, uintptr_t fnc);
 void IFpi(x64emu_t *emu, uintptr_t fnc);
 void IFpu(x64emu_t *emu, uintptr_t fnc);
@@ -256,6 +257,7 @@ void DFDD(x64emu_t *emu, uintptr_t fnc);
 void DFDp(x64emu_t *emu, uintptr_t fnc);
 void DFpp(x64emu_t *emu, uintptr_t fnc);
 void lFii(x64emu_t *emu, uintptr_t fnc);
+void lFip(x64emu_t *emu, uintptr_t fnc);
 void lFll(x64emu_t *emu, uintptr_t fnc);
 void lFpi(x64emu_t *emu, uintptr_t fnc);
 void lFpl(x64emu_t *emu, uintptr_t fnc);
@@ -286,6 +288,7 @@ void pFUU(x64emu_t *emu, uintptr_t fnc);
 void pFdi(x64emu_t *emu, uintptr_t fnc);
 void pFdd(x64emu_t *emu, uintptr_t fnc);
 void pFlp(x64emu_t *emu, uintptr_t fnc);
+void pFLi(x64emu_t *emu, uintptr_t fnc);
 void pFLu(x64emu_t *emu, uintptr_t fnc);
 void pFLL(x64emu_t *emu, uintptr_t fnc);
 void pFLp(x64emu_t *emu, uintptr_t fnc);
@@ -1597,6 +1600,7 @@ void iFiiiiii(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiip(x64emu_t *emu, uintptr_t fnc);
 void iFiiiuwp(x64emu_t *emu, uintptr_t fnc);
 void iFiuiipi(x64emu_t *emu, uintptr_t fnc);
+void iFiLpppi(x64emu_t *emu, uintptr_t fnc);
 void iFipiipi(x64emu_t *emu, uintptr_t fnc);
 void iFipipip(x64emu_t *emu, uintptr_t fnc);
 void iFipippp(x64emu_t *emu, uintptr_t fnc);
@@ -1632,6 +1636,7 @@ void iFpUuuLp(x64emu_t *emu, uintptr_t fnc);
 void iFpUuupp(x64emu_t *emu, uintptr_t fnc);
 void iFpUUUip(x64emu_t *emu, uintptr_t fnc);
 void iFpUUUUp(x64emu_t *emu, uintptr_t fnc);
+void iFpLipLu(x64emu_t *emu, uintptr_t fnc);
 void iFpLLppp(x64emu_t *emu, uintptr_t fnc);
 void iFppiiii(x64emu_t *emu, uintptr_t fnc);
 void iFppiiip(x64emu_t *emu, uintptr_t fnc);
@@ -2348,6 +2353,7 @@ void uFppppuuupppppp(x64emu_t *emu, uintptr_t fnc);
 void pFpCuuwwWWWWuup(x64emu_t *emu, uintptr_t fnc);
 void pFpuupppwwwwWWC(x64emu_t *emu, uintptr_t fnc);
 void pFppppppppppppp(x64emu_t *emu, uintptr_t fnc);
+void vFippppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void vFuffiiffiiffiip(x64emu_t *emu, uintptr_t fnc);
 void vFuddiiddiiddiip(x64emu_t *emu, uintptr_t fnc);
 void vFppiipppiiiiiii(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlibnuma.c b/src/wrapped/wrappedlibnuma.c
new file mode 100644
index 00000000..86fcb9f5
--- /dev/null
+++ b/src/wrapped/wrappedlibnuma.c
@@ -0,0 +1,25 @@
+#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 "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box64context.h"
+#include "emu/x64emu_private.h"
+#include "myalign.h"
+
+const char* libnumaName = "libnuma.so.1";
+#define LIBNAME libnuma
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibnuma_private.h b/src/wrapped/wrappedlibnuma_private.h
new file mode 100644
index 00000000..554cdcbd
--- /dev/null
+++ b/src/wrapped/wrappedlibnuma_private.h
@@ -0,0 +1,107 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GO(copy_bitmask_to_bitmask, vFpp)
+GO(copy_bitmask_to_nodemask, vFpp)
+GO(copy_nodemask_to_bitmask, vFpp)
+//GOW(get_mempolicy, 
+GOW(mbind, iFpLipLu)
+//GOW(migrate_pages, 
+//GOW(move_pages, 
+DATAB(numa_all_cpus_ptr, sizeof(void*))
+//DATAB(numa_all_nodes, 
+DATAB(numa_all_nodes_ptr, sizeof(void*))
+GO(numa_alloc, pFL)
+GO(numa_allocate_cpumask, pFv)
+GO(numa_allocate_nodemask, pFv)
+GO(numa_alloc_interleaved, pFL)
+GO(numa_alloc_interleaved_subset, pFLp)
+//GO2(numa_alloc_interleaved_subset@libnuma_1.1, 
+GO(numa_alloc_local, pFL)
+GO(numa_alloc_onnode, pFLi)
+GO(numa_available, iFv)
+GO(numa_bind, vFp)
+//GO2(numa_bind@libnuma_1.1, 
+GO(numa_bitmask_alloc, pFu)
+GO(numa_bitmask_clearall, pFp)
+GO(numa_bitmask_clearbit, pFpu)
+GO(numa_bitmask_equal, iFpp)
+GO(numa_bitmask_free, vFp)
+GO(numa_bitmask_isbitset, iFpu)
+GO(numa_bitmask_nbytes, uFp)
+GO(numa_bitmask_setall, pFp)
+GO(numa_bitmask_setbit, pFpu)
+GO(numa_bitmask_weight, uFp)
+GO(numa_distance, iFii)
+GOW(numa_error, vFp)
+DATAB(numa_exit_on_error, sizeof(int))
+DATAB(numa_exit_on_warn, sizeof(int))
+GO(numa_free, vFpL)
+//GO2(numa_get_interleave_mask@libnuma_1.1, 
+GO(numa_get_interleave_mask, pFv)
+GO(numa_get_interleave_node, iFv)
+GO(numa_get_membind, pFv)
+//GO2(numa_get_membind@libnuma_1.1, 
+GO(numa_get_mems_allowed, pFv)
+//GO2(numa_get_run_node_mask@libnuma_1.1, 
+GO(numa_get_run_node_mask, pFv)
+//GO(numa_has_preferred_many, 
+//GO2(numa_interleave_memory@libnuma_1.1, 
+GO(numa_interleave_memory, vFpLp)
+GO(numa_max_node, iFv)
+GO(numa_max_possible_node, iFv)
+GO(numa_migrate_pages, iFipp)
+GO(numa_move_pages, iFiLpppi)
+GO(numa_node_of_cpu, iFi)
+GO(numa_node_size, lFip)
+GO(numa_node_size64, IFip)
+//DATAB(numa_nodes_ptr, 
+//GO2(numa_node_to_cpus@libnuma_1.1, 
+GO(numa_node_to_cpus, iFip)
+//GO(numa_node_to_cpu_update, 
+//DATAB(numa_no_nodes, 
+DATAB(numa_no_nodes_ptr, sizeof(void*))
+GO(numa_num_configured_cpus, iFv)
+GO(numa_num_configured_nodes, iFv)
+//GO(numa_num_possible_cpus, 
+GO(numa_num_possible_nodes, iFv)
+GO(numa_num_task_cpus, iFv)
+GO(numa_num_task_nodes, iFv)
+//GO(numa_num_thread_cpus, 
+//GO(numa_num_thread_nodes, 
+//GO(numa_pagesize, 
+GO(numa_parse_bitmap, iFpp)
+//GO2(numa_parse_bitmap@libnuma_1.1, 
+GO(numa_parse_cpustring, pFp)
+//GO(numa_parse_cpustring_all, 
+GO(numa_parse_nodestring, pFp)
+//GO(numa_parse_nodestring_all, 
+GO(numa_police_memory, vFpL)
+GO(numa_preferred, iFv)
+//GO(numa_preferred_many, 
+GO(numa_realloc, pFpLL)
+GO(numa_run_on_node, iFi)
+GO(numa_run_on_node_mask, iFp)
+//GO2(numa_run_on_node_mask@libnuma_1.1, 
+//GO(numa_run_on_node_mask_all, 
+GO(numa_sched_getaffinity, iFip)
+//GO2(numa_sched_getaffinity@libnuma_1.1, 
+GO(numa_sched_setaffinity, iFip)
+//GO2(numa_sched_setaffinity@libnuma_1.1, 
+GO(numa_set_bind_policy, vFi)
+GO(numa_set_interleave_mask, vFp)
+//GO2(numa_set_interleave_mask@libnuma_1.1, 
+GO(numa_set_localalloc, vFv)
+GO(numa_setlocal_memory, vFpL)
+GO(numa_set_membind, vFp)
+//GO2(numa_set_membind@libnuma_1.1, 
+//GO(numa_set_membind_balancing, 
+GO(numa_set_preferred, vFi)
+//GO(numa_set_preferred_many, 
+GO(numa_set_strict, vFi)
+GO(numa_tonodemask_memory, vFpLp)
+//GO2(numa_tonodemask_memory@libnuma_1.1, 
+GO(numa_tonode_memory, vFpLi)
+GOW(numa_warn, vFippppppppppppp)    //use VAARG with printf style, should wrap if used
+//GOW(set_mempolicy,