diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-12-19 13:57:33 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-12-19 13:57:33 +0100 |
| commit | a8000cb629eae569563b92e1ab7c5929bda3bb5f (patch) | |
| tree | abd716f5cc524790bee72b27a1a23c7ce3fd124b /src/wrapped32/generated | |
| parent | 17f2371804b31d3829f029f27dad53eba2081a38 (diff) | |
| download | box64-a8000cb629eae569563b92e1ab7c5929bda3bb5f.tar.gz box64-a8000cb629eae569563b92e1ab7c5929bda3bb5f.zip | |
[BOX32] More fixes on libc wrapping
Diffstat (limited to 'src/wrapped32/generated')
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 18 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedlibctypes32.h | 13 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.c | 10 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.h | 5 |
4 files changed, 22 insertions, 24 deletions
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt index 856e0f96..3f40c384 100644 --- a/src/wrapped32/generated/functions_list.txt +++ b/src/wrapped32/generated/functions_list.txt @@ -136,10 +136,10 @@ #() vFbuuipWCCp_ -> vFB #() vFbWWpWpWpWp_ -> vFB #() LEbiiiiiiiiilt_ -> LEB -#() LEriiiiiiiiilt_ -> LEB #() pEriiiiiiiiilt_ -> pEB #() vEEv -> vEEv #() vFEv -> vFEv +#() vFEi -> vFEi #() vEEp -> vEEp #() vFEp -> vFEp #() vFEX -> vFEX @@ -390,6 +390,7 @@ #() vFbll_rllll_ -> vFBB #() iFXbiiuuLip_ -> iFXB #() iFpruuipWCCp_ -> iFpB +#() lEEriiiiiiiiilt_ -> lEEB #() pEriiiiiiiiilt_p -> pEBp #() iEiBLLLLLLLLLLLLLLLLLL_ -> iEiB #() vEEip -> vEEip @@ -918,7 +919,6 @@ #() iFippp -> iFippp #() iEipON -> iEipON #() iFuiup -> iFuiup -#() iEuupi -> iEuupi #() iFuppp -> iFuppp #() iFpiii -> iFpiii #() iFpiiL -> iFpiiL @@ -1199,6 +1199,7 @@ #() iEEipii -> iEEipii #() iEEipuu -> iEEipuu #() iEEippL -> iEEippL +#() iEEuupi -> iEEuupi #() iEEpipp -> iEEpipp #() iFEpipp -> iFEpipp #() iEEpipV -> iEEpipV @@ -1929,6 +1930,8 @@ wrappedlibasound: - snd_pcm_mmap_begin wrappedlibc: - vEv: +- vFi: + - exit - vEp: - freeaddrinfo - regfree @@ -1939,8 +1942,6 @@ wrappedlibc: - __close_nocancel - iEL: - iEp: - - posix_spawn_file_actions_destroy - - posix_spawn_file_actions_init - shmdt - sysinfo - iEO: @@ -1990,6 +1991,7 @@ wrappedlibc: - getifaddrs - pErl_: - ctime +- lEriiiiiiiiilt_: - pEriiiiiiiiilt_: - asctime - vEip: @@ -2008,11 +2010,9 @@ wrappedlibc: - setrlimit - iEpi: - backtrace - - posix_spawn_file_actions_addclose - iEpL: - iEpp: - alphasort64 - - execvp - statvfs - statvfs64 - utimes @@ -2054,13 +2054,11 @@ wrappedlibc: - iEipp: - iEipV: - iEpii: - - posix_spawn_file_actions_adddup2 - iEpLi: - iEppi: - regcomp - iEppp: - __isoc23_vsscanf - - execvpe - vswscanf - iEppV: - __isoc23_sscanf @@ -2116,6 +2114,8 @@ wrappedlibc: - utimensat - iEippL: - readlinkat +- iEuupi: + - waitid - iEpipp: - iEpipV: - iEpuiL: @@ -2140,7 +2140,6 @@ wrappedlibc: - iEpiipV: - iEpiLpp: - iEpipOi: - - posix_spawn_file_actions_addopen - iEppupi: - regexec - iEpppLp: @@ -2157,7 +2156,6 @@ wrappedlibc: - iFpppupp: - gethostbyname_r - iEpppppp: - - posix_spawn - lEipLpLL: - process_vm_readv - process_vm_writev diff --git a/src/wrapped32/generated/wrappedlibctypes32.h b/src/wrapped32/generated/wrappedlibctypes32.h index 45a2a970..ef6b1621 100644 --- a/src/wrapped32/generated/wrappedlibctypes32.h +++ b/src/wrapped32/generated/wrappedlibctypes32.h @@ -12,6 +12,7 @@ #endif typedef void (*vEv_t)(void); +typedef void (*vFi_t)(int32_t); typedef void (*vEp_t)(void*); typedef void (*vFp_t)(void*); typedef int32_t (*iEv_t)(void); @@ -38,6 +39,7 @@ typedef void* (*pES_t)(void*); typedef char* (*tEp_t)(void*); typedef int32_t (*iEbp__t)(struct_p_t*); typedef void* (*pErl__t)(struct_l_t*); +typedef intptr_t (*lEriiiiiiiiilt__t)(struct_iiiiiiiiilt_t*); typedef void* (*pEriiiiiiiiilt__t)(struct_iiiiiiiiilt_t*); typedef void (*vEip_t)(int32_t, void*); typedef void (*vEpi_t)(void*, int32_t); @@ -103,6 +105,7 @@ typedef int32_t (*iEipii_t)(int32_t, void*, int32_t, int32_t); typedef int32_t (*iEipuu_t)(int32_t, void*, uint32_t, uint32_t); typedef int32_t (*iEippi_t)(int32_t, void*, void*, int32_t); typedef int32_t (*iEippL_t)(int32_t, void*, void*, uintptr_t); +typedef int32_t (*iEuupi_t)(uint32_t, uint32_t, void*, int32_t); typedef int32_t (*iEpipp_t)(void*, int32_t, void*, void*); typedef int32_t (*iEpipV_t)(void*, int32_t, void*, ...); typedef int32_t (*iEpuiL_t)(void*, uint32_t, int32_t, uintptr_t); @@ -140,12 +143,11 @@ typedef int32_t (*iEpLiLppp_t)(void*, uintptr_t, int32_t, uintptr_t, void*, void typedef int32_t (*iFpuippupp_t)(void*, uint32_t, int32_t, void*, void*, uint32_t, void*, void*); #define SUPER() ADDED_FUNCTIONS() \ + GO(exit, vFi_t) \ GO(freeaddrinfo, vEp_t) \ GO(regfree, vEp_t) \ GO(_ZGTtdlPv, vFp_t) \ GO(__close_nocancel, iEi_t) \ - GO(posix_spawn_file_actions_destroy, iEp_t) \ - GO(posix_spawn_file_actions_init, iEp_t) \ GO(shmdt, iEp_t) \ GO(sysinfo, iEp_t) \ GO(getwc, uES_t) \ @@ -184,9 +186,7 @@ typedef int32_t (*iFpuippupp_t)(void*, uint32_t, int32_t, void*, void*, uint32_t GO(getrlimit, iEup_t) \ GO(setrlimit, iEup_t) \ GO(backtrace, iEpi_t) \ - GO(posix_spawn_file_actions_addclose, iEpi_t) \ GO(alphasort64, iEpp_t) \ - GO(execvp, iEpp_t) \ GO(statvfs, iEpp_t) \ GO(statvfs64, iEpp_t) \ GO(utimes, iEpp_t) \ @@ -205,10 +205,8 @@ typedef int32_t (*iFpuippupp_t)(void*, uint32_t, int32_t, void*, void*, uint32_t GO(vsyslog, vEipp_t) \ GO(syslog, vEipV_t) \ GO(_ITM_addUserCommitAction, vEpup_t) \ - GO(posix_spawn_file_actions_adddup2, iEpii_t) \ GO(regcomp, iEppi_t) \ GO(__isoc23_vsscanf, iEppp_t) \ - GO(execvpe, iEppp_t) \ GO(vswscanf, iEppp_t) \ GO(__isoc23_sscanf, iEppV_t) \ GO(swscanf, iEppV_t) \ @@ -236,19 +234,18 @@ typedef int32_t (*iFpuippupp_t)(void*, uint32_t, int32_t, void*, void*, uint32_t GO(sendmmsg, iEipuu_t) \ GO(utimensat, iEippi_t) \ GO(readlinkat, iEippL_t) \ + GO(waitid, iEuupi_t) \ GO(getaddrinfo, iEpppp_t) \ GO(regerror, uEippu_t) \ GO(statx, iEipiup_t) \ GO(getopt_long, iEipppp_t) \ GO(getgrgid_r, iEuppLp_t) \ GO(getpwuid_r, iEuppLp_t) \ - GO(posix_spawn_file_actions_addopen, iEpipOi_t) \ GO(regexec, iEppupi_t) \ GO(getgrnam_r, iEpppLp_t) \ GO(getpwnam_r, iEpppLp_t) \ GO(recvmmsg, iEipuurLL__t) \ GO(gethostbyname_r, iFpppupp_t) \ - GO(posix_spawn, iEpppppp_t) \ GO(process_vm_readv, lEipLpLL_t) \ GO(process_vm_writev, lEipLpLL_t) \ GO(gethostbyaddr_r, iFpuippupp_t) diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c index 0ef9949f..a6e0b8c2 100644 --- a/src/wrapped32/generated/wrapper32.c +++ b/src/wrapped32/generated/wrapper32.c @@ -230,10 +230,10 @@ typedef int32_t (*iEBllll__t)(struct_llll_t*); typedef void (*vFbuuipWCCp__t)(struct_uuipWCCp_t*); typedef void (*vFbWWpWpWpWp__t)(struct_WWpWpWpWp_t*); typedef uintptr_t (*LEbiiiiiiiiilt__t)(struct_iiiiiiiiilt_t*); -typedef uintptr_t (*LEriiiiiiiiilt__t)(struct_iiiiiiiiilt_t*); typedef void* (*pEriiiiiiiiilt__t)(struct_iiiiiiiiilt_t*); typedef void (*vEEv_t)(x64emu_t*); typedef void (*vFEv_t)(x64emu_t*); +typedef void (*vFEi_t)(x64emu_t*, int32_t); typedef void (*vEEp_t)(x64emu_t*, void*); typedef void (*vFEp_t)(x64emu_t*, void*); typedef void (*vFEX_t)(x64emu_t*, void*); @@ -484,6 +484,7 @@ typedef void* (*pErppppii_p_t)(struct_ppppii_t*, void*); typedef void (*vFbll_rllll__t)(struct_ll_t*, struct_llll_t*); typedef int32_t (*iFXbiiuuLip__t)(void*, struct_iiuuLip_t*); typedef int32_t (*iFpruuipWCCp__t)(void*, struct_uuipWCCp_t*); +typedef intptr_t (*lEEriiiiiiiiilt__t)(x64emu_t*, struct_iiiiiiiiilt_t*); typedef void* (*pEriiiiiiiiilt_p_t)(struct_iiiiiiiiilt_t*, void*); typedef int32_t (*iEiBLLLLLLLLLLLLLLLLLL__t)(int32_t, struct_LLLLLLLLLLLLLLLLLL_t*); typedef void (*vEEip_t)(x64emu_t*, int32_t, void*); @@ -1012,7 +1013,6 @@ typedef int32_t (*iEippL_t)(int32_t, void*, void*, uintptr_t); typedef int32_t (*iFippp_t)(int32_t, void*, void*, void*); typedef int32_t (*iEipON_t)(int32_t, void*, int32_t, ...); typedef int32_t (*iFuiup_t)(uint32_t, int32_t, uint32_t, void*); -typedef int32_t (*iEuupi_t)(uint32_t, uint32_t, void*, int32_t); typedef int32_t (*iFuppp_t)(uint32_t, void*, void*, void*); typedef int32_t (*iFpiii_t)(void*, int32_t, int32_t, int32_t); typedef int32_t (*iFpiiL_t)(void*, int32_t, int32_t, uintptr_t); @@ -1293,6 +1293,7 @@ typedef int32_t (*iEEiipV_t)(x64emu_t*, int32_t, int32_t, void*, void*); typedef int32_t (*iEEipii_t)(x64emu_t*, int32_t, void*, int32_t, int32_t); typedef int32_t (*iEEipuu_t)(x64emu_t*, int32_t, void*, uint32_t, uint32_t); typedef int32_t (*iEEippL_t)(x64emu_t*, int32_t, void*, void*, uintptr_t); +typedef int32_t (*iEEuupi_t)(x64emu_t*, uint32_t, uint32_t, void*, int32_t); typedef int32_t (*iEEpipp_t)(x64emu_t*, void*, int32_t, void*, void*); typedef int32_t (*iFEpipp_t)(x64emu_t*, void*, int32_t, void*, void*); typedef int32_t (*iEEpipV_t)(x64emu_t*, void*, int32_t, void*, void*); @@ -2034,10 +2035,10 @@ void iEBllll__32(x64emu_t *emu, uintptr_t fcn) { iEBllll__t fn = (iEBllll__t)fcn void vFbuuipWCCp__32(x64emu_t *emu, uintptr_t fcn) { vFbuuipWCCp__t fn = (vFbuuipWCCp__t)fcn; struct_uuipWCCp_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_uuipWCCp(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_uuipWCCp(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void vFbWWpWpWpWp__32(x64emu_t *emu, uintptr_t fcn) { vFbWWpWpWpWp__t fn = (vFbWWpWpWpWp__t)fcn; struct_WWpWpWpWp_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_WWpWpWpWp(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_WWpWpWpWp(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void LEbiiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { LEbiiiiiiiiilt__t fn = (LEbiiiiiiiiilt__t)fcn; errno = emu->libc_err; struct_iiiiiiiiilt_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ulong(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_iiiiiiiiilt(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); emu->libc_err = errno; } -void LEriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { LEriiiiiiiiilt__t fn = (LEriiiiiiiiilt__t)fcn; errno = emu->libc_err; struct_iiiiiiiiilt_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ulong(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); emu->libc_err = errno; } void pEriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { pEriiiiiiiiilt__t fn = (pEriiiiiiiiilt__t)fcn; errno = emu->libc_err; struct_iiiiiiiiilt_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ptrv(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); emu->libc_err = errno; } void vEEv_32(x64emu_t *emu, uintptr_t fcn) { vEEv_t fn = (vEEv_t)fcn; errno = emu->libc_err; fn(emu); emu->libc_err = errno; } void vFEv_32(x64emu_t *emu, uintptr_t fcn) { vFEv_t fn = (vFEv_t)fcn; fn(emu); } +void vFEi_32(x64emu_t *emu, uintptr_t fcn) { vFEi_t fn = (vFEi_t)fcn; fn(emu, from_ptri(int32_t, R_ESP + 4)); } void vEEp_32(x64emu_t *emu, uintptr_t fcn) { vEEp_t fn = (vEEp_t)fcn; errno = emu->libc_err; fn(emu, from_ptriv(R_ESP + 4)); emu->libc_err = errno; } void vFEp_32(x64emu_t *emu, uintptr_t fcn) { vFEp_t fn = (vFEp_t)fcn; fn(emu, from_ptriv(R_ESP + 4)); } void vFEX_32(x64emu_t *emu, uintptr_t fcn) { vFEX_t fn = (vFEX_t)fcn; fn(emu, getDisplay(from_ptriv(R_ESP + 4))); } @@ -2288,6 +2289,7 @@ void pErppppii_p_32(x64emu_t *emu, uintptr_t fcn) { pErppppii_p_t fn = (pErppppi void vFbll_rllll__32(x64emu_t *emu, uintptr_t fcn) { vFbll_rllll__t fn = (vFbll_rllll__t)fcn; struct_ll_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_ll(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_llll_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_llll(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_ll(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iFXbiiuuLip__32(x64emu_t *emu, uintptr_t fcn) { iFXbiiuuLip__t fn = (iFXbiiuuLip__t)fcn; struct_iiuuLip_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_iiuuLip(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_iiuuLip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void iFpruuipWCCp__32(x64emu_t *emu, uintptr_t fcn) { iFpruuipWCCp__t fn = (iFpruuipWCCp__t)fcn; struct_uuipWCCp_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_uuipWCCp(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); } +void lEEriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { lEEriiiiiiiiilt__t fn = (lEEriiiiiiiiilt__t)fcn; errno = emu->libc_err; struct_iiiiiiiiilt_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_long(fn(emu, *(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); emu->libc_err = errno; } void pEriiiiiiiiilt_p_32(x64emu_t *emu, uintptr_t fcn) { pEriiiiiiiiilt_p_t fn = (pEriiiiiiiiilt_p_t)fcn; errno = emu->libc_err; struct_iiiiiiiiilt_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ptrv(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8))); emu->libc_err = errno; } void iEiBLLLLLLLLLLLLLLLLLL__32(x64emu_t *emu, uintptr_t fcn) { iEiBLLLLLLLLLLLLLLLLLL__t fn = (iEiBLLLLLLLLLLLLLLLLLL__t)fcn; errno = emu->libc_err; struct_LLLLLLLLLLLLLLLLLL_t arg_8={0}; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LLLLLLLLLLLLLLLLLL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); emu->libc_err = errno; } void vEEip_32(x64emu_t *emu, uintptr_t fcn) { vEEip_t fn = (vEEip_t)fcn; errno = emu->libc_err; fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8)); emu->libc_err = errno; } @@ -2816,7 +2818,6 @@ void iEippL_32(x64emu_t *emu, uintptr_t fcn) { iEippL_t fn = (iEippL_t)fcn; errn void iFippp_32(x64emu_t *emu, uintptr_t fcn) { iFippp_t fn = (iFippp_t)fcn; 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)); } void iEipON_32(x64emu_t *emu, uintptr_t fcn) { iEipON_t fn = (iEipON_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), of_convert32(from_ptri(int32_t, R_ESP + 12)), from_ptriv(R_ESP + 16)); emu->libc_err = errno; } void iFuiup_32(x64emu_t *emu, uintptr_t fcn) { iFuiup_t fn = (iFuiup_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); } -void iEuupi_32(x64emu_t *emu, uintptr_t fcn) { iEuupi_t fn = (iEuupi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); emu->libc_err = errno; } void iFuppp_32(x64emu_t *emu, uintptr_t fcn) { iFuppp_t fn = (iFuppp_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); } void iFpiii_32(x64emu_t *emu, uintptr_t fcn) { iFpiii_t fn = (iFpiii_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); } void iFpiiL_32(x64emu_t *emu, uintptr_t fcn) { iFpiiL_t fn = (iFpiiL_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); } @@ -3097,6 +3098,7 @@ void iEEiipV_32(x64emu_t *emu, uintptr_t fcn) { iEEiipV_t fn = (iEEiipV_t)fcn; e void iEEipii_32(x64emu_t *emu, uintptr_t fcn) { iEEipii_t fn = (iEEipii_t)fcn; errno = emu->libc_err; R_EAX = fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); emu->libc_err = errno; } void iEEipuu_32(x64emu_t *emu, uintptr_t fcn) { iEEipuu_t fn = (iEEipuu_t)fcn; errno = emu->libc_err; 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)); emu->libc_err = errno; } void iEEippL_32(x64emu_t *emu, uintptr_t fcn) { iEEippL_t fn = (iEEippL_t)fcn; errno = emu->libc_err; R_EAX = fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); emu->libc_err = errno; } +void iEEuupi_32(x64emu_t *emu, uintptr_t fcn) { iEEuupi_t fn = (iEEuupi_t)fcn; errno = emu->libc_err; R_EAX = fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); emu->libc_err = errno; } void iEEpipp_32(x64emu_t *emu, uintptr_t fcn) { iEEpipp_t fn = (iEEpipp_t)fcn; errno = emu->libc_err; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); emu->libc_err = errno; } void iFEpipp_32(x64emu_t *emu, uintptr_t fcn) { iFEpipp_t fn = (iFEpipp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); } void iEEpipV_32(x64emu_t *emu, uintptr_t fcn) { iEEpipV_t fn = (iEEpipV_t)fcn; errno = emu->libc_err; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptrv(R_ESP + 16)); emu->libc_err = errno; } diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h index 49a2cce5..3da70e46 100644 --- a/src/wrapped32/generated/wrapper32.h +++ b/src/wrapped32/generated/wrapper32.h @@ -177,10 +177,10 @@ void iEBllll__32(x64emu_t *emu, uintptr_t fnc); void vFbuuipWCCp__32(x64emu_t *emu, uintptr_t fnc); void vFbWWpWpWpWp__32(x64emu_t *emu, uintptr_t fnc); void LEbiiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc); -void LEriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc); void pEriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc); void vEEv_32(x64emu_t *emu, uintptr_t fnc); void vFEv_32(x64emu_t *emu, uintptr_t fnc); +void vFEi_32(x64emu_t *emu, uintptr_t fnc); void vEEp_32(x64emu_t *emu, uintptr_t fnc); void vFEp_32(x64emu_t *emu, uintptr_t fnc); void vFEX_32(x64emu_t *emu, uintptr_t fnc); @@ -431,6 +431,7 @@ void pErppppii_p_32(x64emu_t *emu, uintptr_t fnc); void vFbll_rllll__32(x64emu_t *emu, uintptr_t fnc); void iFXbiiuuLip__32(x64emu_t *emu, uintptr_t fnc); void iFpruuipWCCp__32(x64emu_t *emu, uintptr_t fnc); +void lEEriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc); void pEriiiiiiiiilt_p_32(x64emu_t *emu, uintptr_t fnc); void iEiBLLLLLLLLLLLLLLLLLL__32(x64emu_t *emu, uintptr_t fnc); void vEEip_32(x64emu_t *emu, uintptr_t fnc); @@ -959,7 +960,6 @@ void iEippL_32(x64emu_t *emu, uintptr_t fnc); void iFippp_32(x64emu_t *emu, uintptr_t fnc); void iEipON_32(x64emu_t *emu, uintptr_t fnc); void iFuiup_32(x64emu_t *emu, uintptr_t fnc); -void iEuupi_32(x64emu_t *emu, uintptr_t fnc); void iFuppp_32(x64emu_t *emu, uintptr_t fnc); void iFpiii_32(x64emu_t *emu, uintptr_t fnc); void iFpiiL_32(x64emu_t *emu, uintptr_t fnc); @@ -1240,6 +1240,7 @@ void iEEiipV_32(x64emu_t *emu, uintptr_t fnc); void iEEipii_32(x64emu_t *emu, uintptr_t fnc); void iEEipuu_32(x64emu_t *emu, uintptr_t fnc); void iEEippL_32(x64emu_t *emu, uintptr_t fnc); +void iEEuupi_32(x64emu_t *emu, uintptr_t fnc); void iEEpipp_32(x64emu_t *emu, uintptr_t fnc); void iFEpipp_32(x64emu_t *emu, uintptr_t fnc); void iEEpipV_32(x64emu_t *emu, uintptr_t fnc); |