diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 12:55:58 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 12:55:58 +0100 |
| commit | 19c528bcbae86ea8fc09cfbf39a1e4f84d84d7a5 (patch) | |
| tree | 04b31415cc3bb507e3f7f1196b4c6805a943be98 /src | |
| parent | 43f9b853fed95044a0e75102cce3e5d94dbabec2 (diff) | |
| download | box64-19c528bcbae86ea8fc09cfbf39a1e4f84d84d7a5.tar.gz box64-19c528bcbae86ea8fc09cfbf39a1e4f84d84d7a5.zip | |
Added wctype and wctype_l wrapped functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 4 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 2 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 6 |
4 files changed, 11 insertions, 3 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 14ca5005..282a30b5 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -11,6 +11,7 @@ #() IFf #() IFd #() IFp +#() uFp #() UFV #() fFf #() dFd @@ -29,6 +30,7 @@ #() iFLL #() iFLp #() iFpi +#() uFpp #() fFif #() fFfi #() fFff diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 0f358f9e..836303b6 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -82,6 +82,7 @@ typedef int32_t (*iFp_t)(void*); typedef int64_t (*IFf_t)(float); typedef int64_t (*IFd_t)(double); typedef int64_t (*IFp_t)(void*); +typedef uint32_t (*uFp_t)(void*); typedef uint64_t (*UFV_t)(void*); typedef float (*fFf_t)(float); typedef double (*dFd_t)(double); @@ -100,6 +101,7 @@ typedef int32_t (*iFup_t)(uint32_t, void*); typedef int32_t (*iFLL_t)(uintptr_t, uintptr_t); typedef int32_t (*iFLp_t)(uintptr_t, void*); typedef int32_t (*iFpi_t)(void*, int32_t); +typedef uint32_t (*uFpp_t)(void*, void*); typedef float (*fFif_t)(int32_t, float); typedef float (*fFfi_t)(float, int32_t); typedef float (*fFff_t)(float, float); @@ -162,6 +164,7 @@ void iFp(x64emu_t *emu, uintptr_t fcn) { iFp_t fn = (iFp_t)fcn; R_RAX=fn((void*) void IFf(x64emu_t *emu, uintptr_t fcn) { IFf_t fn = (IFf_t)fcn; R_RAX=(uint64_t)fn(emu->xmm[0].f[0]); } void IFd(x64emu_t *emu, uintptr_t fcn) { IFd_t fn = (IFd_t)fcn; R_RAX=(uint64_t)fn(emu->xmm[0].d[0]); } void IFp(x64emu_t *emu, uintptr_t fcn) { IFp_t fn = (IFp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI); } +void uFp(x64emu_t *emu, uintptr_t fcn) { uFp_t fn = (uFp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI); } void UFV(x64emu_t *emu, uintptr_t fcn) { UFV_t fn = (UFV_t)fcn; R_RAX=fn((void*)(R_RSP + 8)); } void fFf(x64emu_t *emu, uintptr_t fcn) { fFf_t fn = (fFf_t)fcn; emu->xmm[0].f[0]=fn(emu->xmm[0].f[0]); } void dFd(x64emu_t *emu, uintptr_t fcn) { dFd_t fn = (dFd_t)fcn; emu->xmm[0].d[0]=fn(emu->xmm[0].d[0]); } @@ -180,6 +183,7 @@ void iFup(x64emu_t *emu, uintptr_t fcn) { iFup_t fn = (iFup_t)fcn; R_RAX=fn((uin void iFLL(x64emu_t *emu, uintptr_t fcn) { iFLL_t fn = (iFLL_t)fcn; R_RAX=fn((uintptr_t)R_RDI, (uintptr_t)R_RSI); } void iFLp(x64emu_t *emu, uintptr_t fcn) { iFLp_t fn = (iFLp_t)fcn; R_RAX=fn((uintptr_t)R_RDI, (void*)R_RSI); } void iFpi(x64emu_t *emu, uintptr_t fcn) { iFpi_t fn = (iFpi_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI); } +void uFpp(x64emu_t *emu, uintptr_t fcn) { uFpp_t fn = (uFpp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI); } void fFif(x64emu_t *emu, uintptr_t fcn) { fFif_t fn = (fFif_t)fcn; emu->xmm[0].f[0]=fn((int32_t)R_RDI, emu->xmm[0].f[0]); } void fFfi(x64emu_t *emu, uintptr_t fcn) { fFfi_t fn = (fFfi_t)fcn; emu->xmm[0].f[0]=fn(emu->xmm[0].f[0], (int32_t)R_RDI); } void fFff(x64emu_t *emu, uintptr_t fcn) { fFff_t fn = (fFff_t)fcn; emu->xmm[0].f[0]=fn(emu->xmm[0].f[0], emu->xmm[1].f[0]); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 5dae3e59..9f6e0e5a 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -43,6 +43,7 @@ void iFp(x64emu_t *emu, uintptr_t fnc); void IFf(x64emu_t *emu, uintptr_t fnc); void IFd(x64emu_t *emu, uintptr_t fnc); void IFp(x64emu_t *emu, uintptr_t fnc); +void uFp(x64emu_t *emu, uintptr_t fnc); void UFV(x64emu_t *emu, uintptr_t fnc); void fFf(x64emu_t *emu, uintptr_t fnc); void dFd(x64emu_t *emu, uintptr_t fnc); @@ -61,6 +62,7 @@ void iFup(x64emu_t *emu, uintptr_t fnc); void iFLL(x64emu_t *emu, uintptr_t fnc); void iFLp(x64emu_t *emu, uintptr_t fnc); void iFpi(x64emu_t *emu, uintptr_t fnc); +void uFpp(x64emu_t *emu, uintptr_t fnc); void fFif(x64emu_t *emu, uintptr_t fnc); void fFfi(x64emu_t *emu, uintptr_t fnc); void fFff(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index 106ac091..c7b431f0 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -2131,9 +2131,9 @@ GO(__wctomb_chk, iFpuL) //GOW(wctrans, //GO(__wctrans_l, //GOW(wctrans_l, -//GOW(wctype, -//GO(__wctype_l, -//GOW(wctype_l, +GOW(wctype, uFp) +GOW(wctype_l, uFpp) +GO(__wctype_l, uFpp) //GO(wcwidth, //GOW(wmemcpy, //GO(__wmemcpy_chk, |