diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-04-12 14:40:43 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-04-12 14:40:43 +0200 |
| commit | 514427cf8a17b119579e82152ced15c58bb503a0 (patch) | |
| tree | 353d3744994721110d59a2b11c1ea13c7e1a924e /src | |
| parent | 68f5512ee704da7dea035fee32a30f68bf6c17a3 (diff) | |
| download | box64-514427cf8a17b119579e82152ced15c58bb503a0.tar.gz box64-514427cf8a17b119579e82152ced15c58bb503a0.zip | |
[BOX32][WRAPPER] Added 32bits wrapped pselect function
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 1 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.c | 2 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.h | 1 | ||||
| -rwxr-xr-x | src/wrapped32/wrappedlibc_private.h | 2 |
4 files changed, 5 insertions, 1 deletions
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt index cc1b5ec5..0f5fe317 100644 --- a/src/wrapped32/generated/functions_list.txt +++ b/src/wrapped32/generated/functions_list.txt @@ -1659,6 +1659,7 @@ #() pFEppibp_p -> pFEppiBp #() pEEppbL_Lp -> pEEppBLp #() iEEipuurLL_ -> iEEipuuB +#() iEippprLL_p -> iEipppBp #() iFupupLbpu_ -> iFupupLB #() iFppppibpp_ -> iFppppiB #() iFpppbpu_uu -> iFpppBuu diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c index 84a665c2..b102669c 100644 --- a/src/wrapped32/generated/wrapper32.c +++ b/src/wrapped32/generated/wrapper32.c @@ -1753,6 +1753,7 @@ typedef int32_t (*iFXbL_upip_t)(void*, struct_L_t*, uint32_t, void*, int32_t, vo typedef void* (*pFEppibp_p_t)(x64emu_t*, void*, void*, int32_t, struct_p_t*, void*); typedef void* (*pEEppbL_Lp_t)(x64emu_t*, void*, void*, struct_L_t*, uintptr_t, void*); typedef int32_t (*iEEipuurLL__t)(x64emu_t*, int32_t, void*, uint32_t, uint32_t, struct_LL_t*); +typedef int32_t (*iEippprLL_p_t)(int32_t, void*, void*, void*, struct_LL_t*, void*); typedef int32_t (*iFupupLbpu__t)(uint32_t, void*, uint32_t, void*, uintptr_t, struct_pu_t*); typedef int32_t (*iFppppibpp__t)(void*, void*, void*, void*, int32_t, struct_pp_t*); typedef int32_t (*iFpppbpu_uu_t)(void*, void*, void*, struct_pu_t*, uint32_t, uint32_t); @@ -3794,6 +3795,7 @@ void iFXbL_upip_32(x64emu_t *emu, uintptr_t fcn) { iFXbL_upip_t fn = (iFXbL_upip void pFEppibp_p_32(x64emu_t *emu, uintptr_t fcn) { pFEppibp_p_t fn = (pFEppibp_p_t)fcn; struct_p_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_p(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, from_ptriv(R_ESP + 20))); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); } void pEEppbL_Lp_32(x64emu_t *emu, uintptr_t fcn) { pEEppbL_Lp_t fn = (pEEppbL_Lp_t)fcn; errno = emu->libc_err; struct_L_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); emu->libc_err = errno; } void iEEipuurLL__32(x64emu_t *emu, uintptr_t fcn) { iEEipuurLL__t fn = (iEEipuurLL__t)fcn; errno = emu->libc_err; struct_LL_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_LL(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); emu->libc_err = errno; } +void iEippprLL_p_32(x64emu_t *emu, uintptr_t fcn) { iEippprLL_p_t fn = (iEippprLL_p_t)fcn; errno = emu->libc_err; struct_LL_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_LL(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL, from_ptriv(R_ESP + 24)); emu->libc_err = errno; } void iFupupLbpu__32(x64emu_t *emu, uintptr_t fcn) { iFupupLbpu__t fn = (iFupupLbpu__t)fcn; struct_pu_t arg_24={0}; if (*(ptr_t*)(from_ptr((R_ESP + 24)))) from_struct_pu(&arg_24, *(ptr_t*)(from_ptr((R_ESP + 24)))); R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ulong(from_ptri(ulong_t, R_ESP + 20)), *(ptr_t*)(from_ptr((R_ESP + 24))) ? &arg_24 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 24)))) to_struct_pu(*(ptr_t*)(from_ptr((R_ESP + 24))), &arg_24); } void iFppppibpp__32(x64emu_t *emu, uintptr_t fcn) { iFppppibpp__t fn = (iFppppibpp__t)fcn; struct_pp_t arg_24={0}; if (*(ptr_t*)(from_ptr((R_ESP + 24)))) from_struct_pp(&arg_24, *(ptr_t*)(from_ptr((R_ESP + 24)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), *(ptr_t*)(from_ptr((R_ESP + 24))) ? &arg_24 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 24)))) to_struct_pp(*(ptr_t*)(from_ptr((R_ESP + 24))), &arg_24); } void iFpppbpu_uu_32(x64emu_t *emu, uintptr_t fcn) { iFpppbpu_uu_t fn = (iFpppbpu_uu_t)fcn; struct_pu_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_pu(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24)); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_pu(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); } diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h index 35ca2e7f..1ea4e935 100644 --- a/src/wrapped32/generated/wrapper32.h +++ b/src/wrapped32/generated/wrapper32.h @@ -1700,6 +1700,7 @@ void iFXbL_upip_32(x64emu_t *emu, uintptr_t fnc); void pFEppibp_p_32(x64emu_t *emu, uintptr_t fnc); void pEEppbL_Lp_32(x64emu_t *emu, uintptr_t fnc); void iEEipuurLL__32(x64emu_t *emu, uintptr_t fnc); +void iEippprLL_p_32(x64emu_t *emu, uintptr_t fnc); void iFupupLbpu__32(x64emu_t *emu, uintptr_t fnc); void iFppppibpp__32(x64emu_t *emu, uintptr_t fnc); void iFpppbpu_uu_32(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped32/wrappedlibc_private.h b/src/wrapped32/wrappedlibc_private.h index 88c45db7..616ff91a 100755 --- a/src/wrapped32/wrappedlibc_private.h +++ b/src/wrapped32/wrappedlibc_private.h @@ -1312,7 +1312,7 @@ DATAM(__progname, 4) DATAM(__progname_full, 4) DATAM(program_invocation_name, 4) DATAM(program_invocation_short_name, 4) -//GOW(pselect, iEippppp) +GOW(pselect, iEippprLL_p) // psignal //GO(ptrace, iEiupp) // will that work??? //GO(ptsname, pEi) |