diff options
| author | rajdakin <rajdakin@gmail.com> | 2024-09-08 15:10:45 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-08 15:10:45 +0200 |
| commit | 2e04ff93cabdbdcef060ce5e40f544f4dd6f93bb (patch) | |
| tree | fcad53d794d67dc87eb19d75827240cd0a8ba407 /src/wrapped/generated | |
| parent | a9f96b9d622a8d8462957d9d42b05d3574f6ba75 (diff) | |
| download | box64-2e04ff93cabdbdcef060ce5e40f544f4dd6f93bb.tar.gz box64-2e04ff93cabdbdcef060ce5e40f544f4dd6f93bb.zip | |
[WRAPPED] Fixed some libc wrapped functions (#1806)
* [WRAPPED] Fixed some libc wrapped functions * [WRAPPED] Fixed static build, added back * [WRAPPED] Fixed unlimited wrapping * [WRAPPED] Forgot to update
Diffstat (limited to 'src/wrapped/generated')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 15 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibctypes.h | 9 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 13 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 6 |
4 files changed, 31 insertions, 12 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 8360d2cf..6f226189 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -394,7 +394,6 @@ #() vFipu #() vFipL #() vFipp -#() vFipA #() vFCCC #() vFWWW #() vFucc @@ -1872,6 +1871,7 @@ #() vFiiiuil #() vFiiilpi #() vFiiuilp +#() vFiipupV #() vFiffiff #() vFiddidd #() vFilipli @@ -3143,15 +3143,15 @@ #!defined(NOALIGN) iFEiiip #!defined(NOALIGN) iFEipii #!defined(NOALIGN) iFEipiip -#!defined(STATICBUILD) lFiV +#!defined(STATICBUILD) lFiN #!defined(STATICBUILD) iFlip #!defined(STATICBUILD) iFLLi #!defined(STATICBUILD) iFLLii #!defined(STATICBUILD) WFpLLu -#!defined(STATICBUILD) lFpLpV #!defined(STATICBUILD) iFEipup #!defined(STATICBUILD) iFEiipup #!defined(STATICBUILD) iFpipppL +#!defined(STATICBUILD) lFpLpdddddd #() vFEv -> vFE #() iFEv -> iFE #() lFEv -> lFE @@ -4230,12 +4230,15 @@ wrappedlibc: - execle - execlp - printf + - scanf - wprintf + - wscanf - iFpA: - __isoc99_vscanf - vprintf - vscanf - vwprintf + - vwscanf - iFSp: - _IO_file_stat - pFip: @@ -4257,6 +4260,8 @@ wrappedlibc: - errx - syslog - vFipA: + - verr + - verrx - vsyslog - vFpii: - backtrace_symbols_fd @@ -4326,6 +4331,7 @@ wrappedlibc: - vfprintf - vfscanf - vfwprintf + - vfwscanf - lFipV: - __wprintf_chk - lFppL: @@ -4344,6 +4350,7 @@ wrappedlibc: - fopencookie - vFiipV: - __syslog_chk + - error - vFiipA: - __vsyslog_chk - vFpLLp: @@ -4426,6 +4433,8 @@ wrappedlibc: - pFpppLp: - lfind - lsearch +- vFiipupV: + - error_at_line - iFpLiLpp: - __vsnprintf_chk - iFpLiLpV: diff --git a/src/wrapped/generated/wrappedlibctypes.h b/src/wrapped/generated/wrappedlibctypes.h index 46c636db..1e5daf98 100644 --- a/src/wrapped/generated/wrappedlibctypes.h +++ b/src/wrapped/generated/wrappedlibctypes.h @@ -94,6 +94,7 @@ typedef int32_t (*iFpuppp_t)(void*, uint32_t, void*, void*, void*); typedef void* (*pFpLLiN_t)(void*, uintptr_t, uintptr_t, int32_t, ...); typedef void* (*pFppLLp_t)(void*, void*, uintptr_t, uintptr_t, void*); typedef void* (*pFpppLp_t)(void*, void*, void*, uintptr_t, void*); +typedef void (*vFiipupV_t)(int32_t, int32_t, void*, uint32_t, void*, ...); typedef int32_t (*iFpLiLpp_t)(void*, uintptr_t, int32_t, uintptr_t, void*, void*); typedef int32_t (*iFpLiLpV_t)(void*, uintptr_t, int32_t, uintptr_t, void*, ...); typedef int32_t (*iFpppppp_t)(void*, void*, void*, void*, void*, void*); @@ -161,11 +162,14 @@ typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void* GO(execle, iFpV_t) \ GO(execlp, iFpV_t) \ GO(printf, iFpV_t) \ + GO(scanf, iFpV_t) \ GO(wprintf, iFpV_t) \ + GO(wscanf, iFpV_t) \ GO(__isoc99_vscanf, iFpA_t) \ GO(vprintf, iFpA_t) \ GO(vscanf, iFpA_t) \ GO(vwprintf, iFpA_t) \ + GO(vwscanf, iFpA_t) \ GO(_IO_file_stat, iFSp_t) \ GO(__sysv_signal, pFip_t) \ GO(bsd_signal, pFip_t) \ @@ -180,6 +184,8 @@ typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void* GO(err, vFipV_t) \ GO(errx, vFipV_t) \ GO(syslog, vFipV_t) \ + GO(verr, vFipA_t) \ + GO(verrx, vFipA_t) \ GO(vsyslog, vFipA_t) \ GO(backtrace_symbols_fd, vFpii_t) \ GO(_ITM_addUserCommitAction, vFpup_t) \ @@ -234,6 +240,7 @@ typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void* GO(vfprintf, iFSpA_t) \ GO(vfscanf, iFSpA_t) \ GO(vfwprintf, iFSpA_t) \ + GO(vfwscanf, iFSpA_t) \ GO(__wprintf_chk, lFipV_t) \ GO(readlink, lFppL_t) \ GO(strlcat, LFppL_t) \ @@ -245,6 +252,7 @@ typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void* GO(tsearch, pFppp_t) \ GO(fopencookie, pFppV_t) \ GO(__syslog_chk, vFiipV_t) \ + GO(error, vFiipV_t) \ GO(__vsyslog_chk, vFiipA_t) \ GO(qsort, vFpLLp_t) \ GO(makecontext, vFppiV_t) \ @@ -294,6 +302,7 @@ typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void* GO(bsearch, pFppLLp_t) \ GO(lfind, pFpppLp_t) \ GO(lsearch, pFpppLp_t) \ + GO(error_at_line, vFiipupV_t) \ GO(__vsnprintf_chk, iFpLiLpp_t) \ GO(__snprintf_chk, iFpLiLpV_t) \ GO(__swprintf_chk, iFpLiLpV_t) \ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index d8af18f1..96186f9d 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -430,7 +430,6 @@ typedef void (*vFipi_t)(int32_t, void*, int32_t); typedef void (*vFipu_t)(int32_t, void*, uint32_t); typedef void (*vFipL_t)(int32_t, void*, uintptr_t); typedef void (*vFipp_t)(int32_t, void*, void*); -typedef void (*vFipA_t)(int32_t, void*, void*); typedef void (*vFCCC_t)(uint8_t, uint8_t, uint8_t); typedef void (*vFWWW_t)(uint16_t, uint16_t, uint16_t); typedef void (*vFucc_t)(uint32_t, int8_t, int8_t); @@ -1901,6 +1900,7 @@ typedef void (*vFiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t) typedef void (*vFiiiuil_t)(int32_t, int32_t, int32_t, uint32_t, int32_t, intptr_t); typedef void (*vFiiilpi_t)(int32_t, int32_t, int32_t, intptr_t, void*, int32_t); typedef void (*vFiiuilp_t)(int32_t, int32_t, uint32_t, int32_t, intptr_t, void*); +typedef void (*vFiipupV_t)(int32_t, int32_t, void*, uint32_t, void*, void*); typedef void (*vFiffiff_t)(int32_t, float, float, int32_t, float, float); typedef void (*vFiddidd_t)(int32_t, double, double, int32_t, double, double); typedef void (*vFilipli_t)(int32_t, intptr_t, int32_t, void*, intptr_t, int32_t); @@ -3230,15 +3230,15 @@ typedef int32_t (*iFEipiip_t)(x64emu_t*, int32_t, void*, int32_t, int32_t, void* #endif #if !defined(STATICBUILD) -typedef intptr_t (*lFiV_t)(int32_t, void*); +typedef intptr_t (*lFiN_t)(int32_t, ...); typedef int32_t (*iFlip_t)(intptr_t, int32_t, void*); typedef int32_t (*iFLLi_t)(uintptr_t, uintptr_t, int32_t); typedef int32_t (*iFLLii_t)(uintptr_t, uintptr_t, int32_t, int32_t); typedef uint16_t (*WFpLLu_t)(void*, uintptr_t, uintptr_t, uint32_t); -typedef intptr_t (*lFpLpV_t)(void*, uintptr_t, void*, void*); typedef int32_t (*iFEipup_t)(x64emu_t*, int32_t, void*, uint32_t, void*); typedef int32_t (*iFEiipup_t)(x64emu_t*, int32_t, int32_t, void*, uint32_t, void*); typedef int32_t (*iFpipppL_t)(void*, int32_t, void*, void*, void*, uintptr_t); +typedef intptr_t (*lFpLpdddddd_t)(void*, uintptr_t, void*, double, double, double, double, double, double); #endif void vFE(x64emu_t *emu, uintptr_t fcn) { vFE_t fn = (vFE_t)fcn; fn(emu); } @@ -3622,7 +3622,6 @@ void vFipi(x64emu_t *emu, uintptr_t fcn) { vFipi_t fn = (vFipi_t)fcn; fn((int32_ void vFipu(x64emu_t *emu, uintptr_t fcn) { vFipu_t fn = (vFipu_t)fcn; fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); } void vFipL(x64emu_t *emu, uintptr_t fcn) { vFipL_t fn = (vFipL_t)fcn; fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); } void vFipp(x64emu_t *emu, uintptr_t fcn) { vFipp_t fn = (vFipp_t)fcn; fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } -void vFipA(x64emu_t *emu, uintptr_t fcn) { vFipA_t fn = (vFipA_t)fcn; fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } void vFCCC(x64emu_t *emu, uintptr_t fcn) { vFCCC_t fn = (vFCCC_t)fcn; fn((uint8_t)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX); } void vFWWW(x64emu_t *emu, uintptr_t fcn) { vFWWW_t fn = (vFWWW_t)fcn; fn((uint16_t)R_RDI, (uint16_t)R_RSI, (uint16_t)R_RDX); } void vFucc(x64emu_t *emu, uintptr_t fcn) { vFucc_t fn = (vFucc_t)fcn; fn((uint32_t)R_RDI, (int8_t)R_RSI, (int8_t)R_RDX); } @@ -5093,6 +5092,7 @@ void vFiiiiii(x64emu_t *emu, uintptr_t fcn) { vFiiiiii_t fn = (vFiiiiii_t)fcn; f void vFiiiuil(x64emu_t *emu, uintptr_t fcn) { vFiiiuil_t fn = (vFiiiuil_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (intptr_t)R_R9); } void vFiiilpi(x64emu_t *emu, uintptr_t fcn) { vFiiilpi_t fn = (vFiiilpi_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (intptr_t)R_RCX, (void*)R_R8, (int32_t)R_R9); } void vFiiuilp(x64emu_t *emu, uintptr_t fcn) { vFiiuilp_t fn = (vFiiuilp_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (intptr_t)R_R8, (void*)R_R9); } +void vFiipupV(x64emu_t *emu, uintptr_t fcn) { vFiipupV_t fn = (vFiipupV_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)(R_RSP + 8)); } void vFiffiff(x64emu_t *emu, uintptr_t fcn) { vFiffiff_t fn = (vFiffiff_t)fcn; fn((int32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], (int32_t)R_RSI, emu->xmm[2].f[0], emu->xmm[3].f[0]); } void vFiddidd(x64emu_t *emu, uintptr_t fcn) { vFiddidd_t fn = (vFiddidd_t)fcn; fn((int32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI, emu->xmm[2].d[0], emu->xmm[3].d[0]); } void vFilipli(x64emu_t *emu, uintptr_t fcn) { vFilipli_t fn = (vFilipli_t)fcn; fn((int32_t)R_RDI, (intptr_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (intptr_t)R_R8, (int32_t)R_R9); } @@ -6422,15 +6422,15 @@ void iFEipiip(x64emu_t *emu, uintptr_t fcn) { iFEipiip_t fn = (iFEipiip_t)fcn; R #endif #if !defined(STATICBUILD) -void lFiV(x64emu_t *emu, uintptr_t fcn) { lFiV_t fn = (lFiV_t)fcn; R_RAX=(intptr_t)fn((int32_t)R_RDI, (void*)(R_RSP + 8)); } +void lFiN(x64emu_t *emu, uintptr_t fcn) { lFiN_t fn = (lFiN_t)fcn; R_RAX=(intptr_t)fn((int32_t)R_RDI, (void*)R_RSI); } void iFlip(x64emu_t *emu, uintptr_t fcn) { iFlip_t fn = (iFlip_t)fcn; R_RAX=(int32_t)fn((intptr_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX); } void iFLLi(x64emu_t *emu, uintptr_t fcn) { iFLLi_t fn = (iFLLi_t)fcn; R_RAX=(int32_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX); } void iFLLii(x64emu_t *emu, uintptr_t fcn) { iFLLii_t fn = (iFLLii_t)fcn; R_RAX=(int32_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); } void WFpLLu(x64emu_t *emu, uintptr_t fcn) { WFpLLu_t fn = (WFpLLu_t)fcn; R_RAX=(unsigned short)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (uint32_t)R_RCX); } -void lFpLpV(x64emu_t *emu, uintptr_t fcn) { lFpLpV_t fn = (lFpLpV_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); } void iFEipup(x64emu_t *emu, uintptr_t fcn) { iFEipup_t fn = (iFEipup_t)fcn; R_RAX=(int32_t)fn(emu, (int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); } void iFEiipup(x64emu_t *emu, uintptr_t fcn) { iFEiipup_t fn = (iFEiipup_t)fcn; R_RAX=(int32_t)fn(emu, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8); } void iFpipppL(x64emu_t *emu, uintptr_t fcn) { iFpipppL_t fn = (iFpipppL_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9); } +void lFpLpdddddd(x64emu_t *emu, uintptr_t fcn) { lFpLpdddddd_t fn = (lFpLpdddddd_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], emu->xmm[4].d[0], emu->xmm[5].d[0]); } #endif void vFEv(x64emu_t *emu, uintptr_t fcn) { vFE_t fn = (vFE_t)fcn; fn(emu); } @@ -8297,6 +8297,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFLLii) return 1; if (fun == &WFpLLu) return 1; if (fun == &iFpipppL) return 1; + if (fun == &lFpLpdddddd) return 7; #endif return 0; } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 8fef78c7..132d3b46 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -432,7 +432,6 @@ void vFipi(x64emu_t *emu, uintptr_t fnc); void vFipu(x64emu_t *emu, uintptr_t fnc); void vFipL(x64emu_t *emu, uintptr_t fnc); void vFipp(x64emu_t *emu, uintptr_t fnc); -void vFipA(x64emu_t *emu, uintptr_t fnc); void vFCCC(x64emu_t *emu, uintptr_t fnc); void vFWWW(x64emu_t *emu, uintptr_t fnc); void vFucc(x64emu_t *emu, uintptr_t fnc); @@ -1910,6 +1909,7 @@ void vFiiiiii(x64emu_t *emu, uintptr_t fnc); void vFiiiuil(x64emu_t *emu, uintptr_t fnc); void vFiiilpi(x64emu_t *emu, uintptr_t fnc); void vFiiuilp(x64emu_t *emu, uintptr_t fnc); +void vFiipupV(x64emu_t *emu, uintptr_t fnc); void vFiffiff(x64emu_t *emu, uintptr_t fnc); void vFiddidd(x64emu_t *emu, uintptr_t fnc); void vFilipli(x64emu_t *emu, uintptr_t fnc); @@ -3189,15 +3189,15 @@ void iFEipiip(x64emu_t *emu, uintptr_t fnc); #endif #if !defined(STATICBUILD) -void lFiV(x64emu_t *emu, uintptr_t fnc); +void lFiN(x64emu_t *emu, uintptr_t fnc); void iFlip(x64emu_t *emu, uintptr_t fnc); void iFLLi(x64emu_t *emu, uintptr_t fnc); void iFLLii(x64emu_t *emu, uintptr_t fnc); void WFpLLu(x64emu_t *emu, uintptr_t fnc); -void lFpLpV(x64emu_t *emu, uintptr_t fnc); void iFEipup(x64emu_t *emu, uintptr_t fnc); void iFEiipup(x64emu_t *emu, uintptr_t fnc); void iFpipppL(x64emu_t *emu, uintptr_t fnc); +void lFpLpdddddd(x64emu_t *emu, uintptr_t fnc); #endif void vFEv(x64emu_t *emu, uintptr_t fnc); |