diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-07-19 08:15:21 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-07-19 08:15:21 +0200 |
| commit | 74405a8b005c03ff1be679dcc0dcf38bae030b62 (patch) | |
| tree | 10d9734c268436a122186d7e242f02443c12f48c | |
| parent | 4b1ecc16ffacc9302dbbcee158a73e0dd5c0136c (diff) | |
| download | box64-74405a8b005c03ff1be679dcc0dcf38bae030b62.tar.gz box64-74405a8b005c03ff1be679dcc0dcf38bae030b62.zip | |
Added a couple of wrapped libc function (will help #65 among other)
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 6 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 2 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 6 |
4 files changed, 13 insertions, 3 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 6ac6899a..d3487023 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -534,6 +534,7 @@ #() iFilli #() iFiLwp #() iFipii +#() iFipip #() iFipui #() iFipup #() iFipLi @@ -790,6 +791,7 @@ #() iFiLLLL #() iFipiii #() iFipipi +#() iFipipu #() iFipuip #() iFippLi #() iFippLp diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 77d6afd8..d470328a 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -568,6 +568,7 @@ typedef int64_t (*iFiupi_t)(int64_t, uint64_t, void*, int64_t); typedef int64_t (*iFilli_t)(int64_t, intptr_t, intptr_t, int64_t); typedef int64_t (*iFiLwp_t)(int64_t, uintptr_t, int16_t, void*); typedef int64_t (*iFipii_t)(int64_t, void*, int64_t, int64_t); +typedef int64_t (*iFipip_t)(int64_t, void*, int64_t, void*); 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 (*iFipLi_t)(int64_t, void*, uintptr_t, int64_t); @@ -824,6 +825,7 @@ typedef int64_t (*iFiiupp_t)(int64_t, int64_t, uint64_t, void*, void*); typedef int64_t (*iFiLLLL_t)(int64_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); typedef int64_t (*iFipiii_t)(int64_t, void*, int64_t, int64_t, int64_t); typedef int64_t (*iFipipi_t)(int64_t, void*, int64_t, void*, int64_t); +typedef int64_t (*iFipipu_t)(int64_t, void*, int64_t, void*, uint64_t); typedef int64_t (*iFipuip_t)(int64_t, void*, uint64_t, int64_t, void*); typedef int64_t (*iFippLi_t)(int64_t, void*, void*, uintptr_t, int64_t); typedef int64_t (*iFippLp_t)(int64_t, void*, void*, uintptr_t, void*); @@ -1996,6 +1998,7 @@ void iFiupi(x64emu_t *emu, uintptr_t fcn) { iFiupi_t fn = (iFiupi_t)fcn; R_RAX=( 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 iFiLwp(x64emu_t *emu, uintptr_t fcn) { iFiLwp_t fn = (iFiLwp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uintptr_t)R_RSI, (int16_t)R_RDX, (void*)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 iFipip(x64emu_t *emu, uintptr_t fcn) { iFipip_t fn = (iFipip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)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 iFipLi(x64emu_t *emu, uintptr_t fcn) { iFipLi_t fn = (iFipLi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int64_t)R_RCX); } @@ -2252,6 +2255,7 @@ void iFiiupp(x64emu_t *emu, uintptr_t fcn) { iFiiupp_t fn = (iFiiupp_t)fcn; R_RA void iFiLLLL(x64emu_t *emu, uintptr_t fcn) { iFiLLLL_t fn = (iFiLLLL_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8); } void iFipiii(x64emu_t *emu, uintptr_t fcn) { iFipiii_t fn = (iFipiii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8); } void iFipipi(x64emu_t *emu, uintptr_t fcn) { iFipipi_t fn = (iFipipi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8); } +void iFipipu(x64emu_t *emu, uintptr_t fcn) { iFipipu_t fn = (iFipipu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (uint64_t)R_R8); } void iFipuip(x64emu_t *emu, uintptr_t fcn) { iFipuip_t fn = (iFipuip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8); } void iFippLi(x64emu_t *emu, uintptr_t fcn) { iFippLi_t fn = (iFippLi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (int64_t)R_R8); } void iFippLp(x64emu_t *emu, uintptr_t fcn) { iFippLp_t fn = (iFippLp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); } @@ -3356,6 +3360,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFilli) return 1; if (fun == &iFiLwp) return 1; if (fun == &iFipii) return 1; + if (fun == &iFipip) return 1; if (fun == &iFipui) return 1; if (fun == &iFipup) return 1; if (fun == &iFipLi) return 1; @@ -3577,6 +3582,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFiLLLL) return 1; if (fun == &iFipiii) return 1; if (fun == &iFipipi) return 1; + if (fun == &iFipipu) return 1; if (fun == &iFipuip) return 1; if (fun == &iFippLi) return 1; if (fun == &iFippLp) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index c7683597..67d652f5 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -564,6 +564,7 @@ void iFiupi(x64emu_t *emu, uintptr_t fnc); void iFilli(x64emu_t *emu, uintptr_t fnc); void iFiLwp(x64emu_t *emu, uintptr_t fnc); void iFipii(x64emu_t *emu, uintptr_t fnc); +void iFipip(x64emu_t *emu, uintptr_t fnc); void iFipui(x64emu_t *emu, uintptr_t fnc); void iFipup(x64emu_t *emu, uintptr_t fnc); void iFipLi(x64emu_t *emu, uintptr_t fnc); @@ -820,6 +821,7 @@ void iFiiupp(x64emu_t *emu, uintptr_t fnc); void iFiLLLL(x64emu_t *emu, uintptr_t fnc); void iFipiii(x64emu_t *emu, uintptr_t fnc); void iFipipi(x64emu_t *emu, uintptr_t fnc); +void iFipipu(x64emu_t *emu, uintptr_t fnc); void iFipuip(x64emu_t *emu, uintptr_t fnc); void iFippLi(x64emu_t *emu, uintptr_t fnc); void iFippLp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index 9bc38daa..cb8fb348 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -1289,7 +1289,7 @@ DATA(optarg, sizeof(void*)) DATA(opterr, sizeof(int)) DATA(optind, sizeof(int)) DATA(optopt, sizeof(int)) -//GO(__overflow, +GO(__overflow, iFpi) //GO(parse_printf_format, //GO(passwd2des, GOW(pathconf, iFpi) @@ -1511,8 +1511,8 @@ GO(remove, iFp) GO(removexattr, iFpp) //GO(remque, GO(rename, iFpp) -//GOW(renameat, -//GOW(renameat2, +GOW(renameat, iFipip) +GOW(renameat2, iFipipu) //DATAB(_res, //GOW(re_search, //GOW(re_search_2, |