diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-04-24 12:17:51 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-04-24 12:17:51 +0200 |
| commit | 4f5b5a995b22176f8188561bcb926483d9c82674 (patch) | |
| tree | 62d7fcce37ab2b2631851d2c8a4d02930ac9b971 /src | |
| parent | bcd07ff6c7d8571a74b1881f8490f21e074bea5a (diff) | |
| download | box64-4f5b5a995b22176f8188561bcb926483d9c82674.tar.gz box64-4f5b5a995b22176f8188561bcb926483d9c82674.zip | |
Added more libc wrapped functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 5 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 2 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 10 |
4 files changed, 14 insertions, 5 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 4d73c063..623359c8 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -465,10 +465,12 @@ #() iFiiiu #() iFiiip #() iFiiiN +#() iFiill #() iFiipp #() iFiuii #() iFilli #() iFipii +#() iFipiO #() iFipui #() iFipup #() iFipLp diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index dfef1b84..2c874d17 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -499,10 +499,12 @@ typedef int64_t (*iFiiii_t)(int64_t, int64_t, int64_t, int64_t); typedef int64_t (*iFiiiu_t)(int64_t, int64_t, int64_t, uint64_t); typedef int64_t (*iFiiip_t)(int64_t, int64_t, int64_t, void*); typedef int64_t (*iFiiiN_t)(int64_t, int64_t, int64_t, ...); +typedef int64_t (*iFiill_t)(int64_t, int64_t, intptr_t, intptr_t); typedef int64_t (*iFiipp_t)(int64_t, int64_t, void*, void*); typedef int64_t (*iFiuii_t)(int64_t, uint64_t, int64_t, int64_t); typedef int64_t (*iFilli_t)(int64_t, intptr_t, intptr_t, int64_t); typedef int64_t (*iFipii_t)(int64_t, void*, int64_t, int64_t); +typedef int64_t (*iFipiO_t)(int64_t, void*, int64_t, int32_t); typedef int64_t (*iFipui_t)(int64_t, void*, uint64_t, int64_t); typedef int64_t (*iFipup_t)(int64_t, void*, uint64_t, void*); typedef int64_t (*iFipLp_t)(int64_t, void*, uintptr_t, void*); @@ -1725,10 +1727,12 @@ void iFiiii(x64emu_t *emu, uintptr_t fcn) { iFiiii_t fn = (iFiiii_t)fcn; R_RAX=( void iFiiiu(x64emu_t *emu, uintptr_t fcn) { iFiiiu_t fn = (iFiiiu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX); } void iFiiip(x64emu_t *emu, uintptr_t fcn) { iFiiip_t fn = (iFiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); } void iFiiiN(x64emu_t *emu, uintptr_t fcn) { iFiiiN_t fn = (iFiiiN_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); } +void iFiill(x64emu_t *emu, uintptr_t fcn) { iFiill_t fn = (iFiill_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX); } void iFiipp(x64emu_t *emu, uintptr_t fcn) { iFiipp_t fn = (iFiipp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void iFiuii(x64emu_t *emu, uintptr_t fcn) { iFiuii_t fn = (iFiuii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } void iFilli(x64emu_t *emu, uintptr_t fcn) { iFilli_t fn = (iFilli_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (int64_t)R_RCX); } void iFipii(x64emu_t *emu, uintptr_t fcn) { iFipii_t fn = (iFipii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } +void iFipiO(x64emu_t *emu, uintptr_t fcn) { iFipiO_t fn = (iFipiO_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, of_convert((int32_t)R_RCX)); } void iFipui(x64emu_t *emu, uintptr_t fcn) { iFipui_t fn = (iFipui_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX); } void iFipup(x64emu_t *emu, uintptr_t fcn) { iFipup_t fn = (iFipup_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX); } void iFipLp(x64emu_t *emu, uintptr_t fcn) { iFipLp_t fn = (iFipLp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); } @@ -2888,6 +2892,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFiiii) return 1; if (fun == &iFiiiu) return 1; if (fun == &iFiiip) return 1; + if (fun == &iFiill) return 1; if (fun == &iFiipp) return 1; if (fun == &iFiuii) return 1; if (fun == &iFilli) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 59394a25..e756d147 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -495,10 +495,12 @@ void iFiiii(x64emu_t *emu, uintptr_t fnc); void iFiiiu(x64emu_t *emu, uintptr_t fnc); void iFiiip(x64emu_t *emu, uintptr_t fnc); void iFiiiN(x64emu_t *emu, uintptr_t fnc); +void iFiill(x64emu_t *emu, uintptr_t fnc); void iFiipp(x64emu_t *emu, uintptr_t fnc); void iFiuii(x64emu_t *emu, uintptr_t fnc); void iFilli(x64emu_t *emu, uintptr_t fnc); void iFipii(x64emu_t *emu, uintptr_t fnc); +void iFipiO(x64emu_t *emu, uintptr_t fnc); void iFipui(x64emu_t *emu, uintptr_t fnc); void iFipup(x64emu_t *emu, uintptr_t fnc); void iFipLp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index 89bdcc05..a3a2904c 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -296,8 +296,8 @@ GOW(_Exit, vFi) //GO(explicit_bzero, //GO(__explicit_bzero_chk, GO(faccessat, iFipii) -//GOW(fallocate, -//GO(fallocate64, +GOW(fallocate, iFiill) +GO(fallocate64, iFiill) //GO(fanotify_init, //GO(fanotify_mark, //GO(fattach, @@ -1267,9 +1267,9 @@ GO(__open_2, iFpO) GOM(open64, iFEpOu) //Weak //GO(__open64_2, //GO(__open64_nocancel, -//GOW(openat, +GOW(openat, iFipiO) //GO(__openat_2, -//GOW(openat64, +GOW(openat64, iFipiO) //GO(__openat64_2, //GO(open_by_handle_at, //GO(__open_catalog, @@ -1310,7 +1310,7 @@ GOW(poll, iFpLi) GO(__poll_chk, iFpuiL) GO(popen, pFpp) GO(posix_fadvise, iFilli) -//GOW(posix_fadvise64, +GOW(posix_fadvise64, iFilli) //GO(posix_fallocate, //GO(posix_fallocate64, //GO(__posix_getopt, |