diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-03-25 12:01:23 +0000 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-03-25 12:01:23 +0000 |
| commit | 56e980556236709f287b87ab41b643a5607d4982 (patch) | |
| tree | 5711392b54930dac8f3011d0a0179eb77a2ed34e /src | |
| parent | f197e750b623469d65d00d308ea182e5693dfa08 (diff) | |
| download | box64-56e980556236709f287b87ab41b643a5607d4982.tar.gz box64-56e980556236709f287b87ab41b643a5607d4982.zip | |
Added wrapped libnuma
Diffstat (limited to 'src')
| -rwxr-xr-x | src/library_list.h | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 7 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibnumadefs.h | 8 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibnumatypes.h | 17 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibnumaundefs.h | 8 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 17 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 6 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibnuma.c | 25 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibnuma_private.h | 107 |
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, |