diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 11:59:25 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 11:59:25 +0100 |
| commit | dfb5fc6a883e0be4f82d183ef1460f1fde34ff4c (patch) | |
| tree | 696728fe7ec27a361e68fa2ce7e442b10053c022 | |
| parent | 91b5c27fd9f87db6782446e9f0f782c41af0588f (diff) | |
| download | box64-dfb5fc6a883e0be4f82d183ef1460f1fde34ff4c.tar.gz box64-dfb5fc6a883e0be4f82d183ef1460f1fde34ff4c.zip | |
Added newlocale and __newlocale wrapped functions
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 1 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 4 |
4 files changed, 6 insertions, 2 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 857dc935..3ee0e4eb 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -51,6 +51,7 @@ #() dFddp #() pFEpi #() pFEpp +#() pFipp #() vFEpup #() iFEupp #() iFEpip diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index f991d938..ecb4dfaa 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -122,6 +122,7 @@ typedef double (*dFddd_t)(double, double, double); typedef double (*dFddp_t)(double, double, void*); typedef void* (*pFEpi_t)(x64emu_t*, void*, int32_t); typedef void* (*pFEpp_t)(x64emu_t*, void*, void*); +typedef void* (*pFipp_t)(int32_t, void*, void*); typedef void (*vFEpup_t)(x64emu_t*, void*, uint32_t, void*); typedef int32_t (*iFEupp_t)(x64emu_t*, uint32_t, void*, void*); typedef int32_t (*iFEpip_t)(x64emu_t*, void*, int32_t, void*); @@ -198,6 +199,7 @@ void dFddd(x64emu_t *emu, uintptr_t fcn) { dFddd_t fn = (dFddd_t)fcn; emu->xmm[0 void dFddp(x64emu_t *emu, uintptr_t fcn) { dFddp_t fn = (dFddp_t)fcn; emu->xmm[0].d[0]=fn(emu->xmm[0].d[0], emu->xmm[1].d[0], (void*)R_RDI); } void pFEpi(x64emu_t *emu, uintptr_t fcn) { pFEpi_t fn = (pFEpi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI); } void pFEpp(x64emu_t *emu, uintptr_t fcn) { pFEpp_t fn = (pFEpp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI); } +void pFipp(x64emu_t *emu, uintptr_t fcn) { pFipp_t fn = (pFipp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } void vFEpup(x64emu_t *emu, uintptr_t fcn) { vFEpup_t fn = (vFEpup_t)fcn; fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); } void iFEupp(x64emu_t *emu, uintptr_t fcn) { iFEupp_t fn = (iFEupp_t)fcn; R_RAX=fn(emu, (uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } void iFEpip(x64emu_t *emu, uintptr_t fcn) { iFEpip_t fn = (iFEpip_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 64a1cd88..245526ee 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -83,6 +83,7 @@ void dFddd(x64emu_t *emu, uintptr_t fnc); void dFddp(x64emu_t *emu, uintptr_t fnc); void pFEpi(x64emu_t *emu, uintptr_t fnc); void pFEpp(x64emu_t *emu, uintptr_t fnc); +void pFipp(x64emu_t *emu, uintptr_t fnc); void vFEpup(x64emu_t *emu, uintptr_t fnc); void iFEupp(x64emu_t *emu, uintptr_t fnc); void iFEpip(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index c26b9d65..47a7b90e 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -1182,8 +1182,8 @@ GO(name_to_handle_at, iFipppi) //GO(__netlink_assert_response, //GO(netname2host, //GO(netname2user, -//GO(__newlocale, -//GOW(newlocale, +GO(__newlocale, pFipp) +GOW(newlocale, pFipp) //GO(nfsservctl, //GO(nftw, //GO(nftw, |