about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-07-12 14:08:56 -0500
committerptitSeb <sebastien.chev@gmail.com>2021-07-12 14:08:56 -0500
commit10702c160a74a7becf0cdcd3e5c11419ff091d8b (patch)
treed04efba0e4b0a38b17b4e017858ae99ccc544604 /src
parenta66bb7453b335975ae0f55a96e3f9665139d8024 (diff)
downloadbox64-10702c160a74a7becf0cdcd3e5c11419ff091d8b.tar.gz
box64-10702c160a74a7becf0cdcd3e5c11419ff091d8b.zip
Added more libc wrapped function (for #44)
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/generated/functions_list.txt4
-rw-r--r--src/wrapped/generated/wrapper.c12
-rw-r--r--src/wrapped/generated/wrapper.h4
-rwxr-xr-xsrc/wrapped/wrappedlibc_private.h20
4 files changed, 30 insertions, 10 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 18f0e19c..5f546d8b 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -567,6 +567,7 @@
 #() iFpuLp
 #() iFpupu
 #() iFpupL
+#() iFpupp
 #() iFpupV
 #() iFplip
 #() iFpLwp
@@ -616,10 +617,12 @@
 #() lFipLI
 #() lFipLl
 #() lFipLL
+#() lFippL
 #() lFlpip
 #() lFpili
 #() lFpilp
 #() lFppii
+#() lFpppL
 #() LFippL
 #() LFpuuu
 #() LFpLLp
@@ -782,6 +785,7 @@
 #() iFipiii
 #() iFipipi
 #() iFipuip
+#() iFippLi
 #() iFippLp
 #() iFipppi
 #() iFipppp
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index dfb685a0..82b67ebf 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -601,6 +601,7 @@ typedef int64_t (*iFpuLL_t)(void*, uint64_t, uintptr_t, uintptr_t);
 typedef int64_t (*iFpuLp_t)(void*, uint64_t, uintptr_t, void*);
 typedef int64_t (*iFpupu_t)(void*, uint64_t, void*, uint64_t);
 typedef int64_t (*iFpupL_t)(void*, uint64_t, void*, uintptr_t);
+typedef int64_t (*iFpupp_t)(void*, uint64_t, void*, void*);
 typedef int64_t (*iFpupV_t)(void*, uint64_t, void*, void*);
 typedef int64_t (*iFplip_t)(void*, intptr_t, int64_t, void*);
 typedef int64_t (*iFpLwp_t)(void*, uintptr_t, int16_t, void*);
@@ -650,10 +651,12 @@ typedef intptr_t (*lFipLi_t)(int64_t, void*, uintptr_t, int64_t);
 typedef intptr_t (*lFipLI_t)(int64_t, void*, uintptr_t, int64_t);
 typedef intptr_t (*lFipLl_t)(int64_t, void*, uintptr_t, intptr_t);
 typedef intptr_t (*lFipLL_t)(int64_t, void*, uintptr_t, uintptr_t);
+typedef intptr_t (*lFippL_t)(int64_t, void*, void*, uintptr_t);
 typedef intptr_t (*lFlpip_t)(intptr_t, void*, int64_t, void*);
 typedef intptr_t (*lFpili_t)(void*, int64_t, intptr_t, int64_t);
 typedef intptr_t (*lFpilp_t)(void*, int64_t, intptr_t, void*);
 typedef intptr_t (*lFppii_t)(void*, void*, int64_t, int64_t);
+typedef intptr_t (*lFpppL_t)(void*, void*, void*, uintptr_t);
 typedef uintptr_t (*LFippL_t)(int64_t, void*, void*, uintptr_t);
 typedef uintptr_t (*LFpuuu_t)(void*, uint64_t, uint64_t, uint64_t);
 typedef uintptr_t (*LFpLLp_t)(void*, uintptr_t, uintptr_t, void*);
@@ -816,6 +819,7 @@ 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 (*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*);
 typedef int64_t (*iFipppi_t)(int64_t, void*, void*, void*, int64_t);
 typedef int64_t (*iFipppp_t)(int64_t, void*, void*, void*, void*);
@@ -2010,6 +2014,7 @@ void iFpuLL(x64emu_t *emu, uintptr_t fcn) { iFpuLL_t fn = (iFpuLL_t)fcn; R_RAX=(
 void iFpuLp(x64emu_t *emu, uintptr_t fcn) { iFpuLp_t fn = (iFpuLp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); }
 void iFpupu(x64emu_t *emu, uintptr_t fcn) { iFpupu_t fn = (iFpupu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (uint64_t)R_RCX); }
 void iFpupL(x64emu_t *emu, uintptr_t fcn) { iFpupL_t fn = (iFpupL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
+void iFpupp(x64emu_t *emu, uintptr_t fcn) { iFpupp_t fn = (iFpupp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFpupV(x64emu_t *emu, uintptr_t fcn) { iFpupV_t fn = (iFpupV_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
 void iFplip(x64emu_t *emu, uintptr_t fcn) { iFplip_t fn = (iFplip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (intptr_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); }
 void iFpLwp(x64emu_t *emu, uintptr_t fcn) { iFpLwp_t fn = (iFpLwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (int16_t)R_RDX, (void*)R_RCX); }
@@ -2059,10 +2064,12 @@ void lFipLi(x64emu_t *emu, uintptr_t fcn) { lFipLi_t fn = (lFipLi_t)fcn; R_RAX=(
 void lFipLI(x64emu_t *emu, uintptr_t fcn) { lFipLI_t fn = (lFipLI_t)fcn; R_RAX=(intptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int64_t)R_RCX); }
 void lFipLl(x64emu_t *emu, uintptr_t fcn) { lFipLl_t fn = (lFipLl_t)fcn; R_RAX=(intptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (intptr_t)R_RCX); }
 void lFipLL(x64emu_t *emu, uintptr_t fcn) { lFipLL_t fn = (lFipLL_t)fcn; R_RAX=(intptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX); }
+void lFippL(x64emu_t *emu, uintptr_t fcn) { lFippL_t fn = (lFippL_t)fcn; R_RAX=(intptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void lFlpip(x64emu_t *emu, uintptr_t fcn) { lFlpip_t fn = (lFlpip_t)fcn; R_RAX=(intptr_t)fn((intptr_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX); }
 void lFpili(x64emu_t *emu, uintptr_t fcn) { lFpili_t fn = (lFpili_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (intptr_t)R_RDX, (int64_t)R_RCX); }
 void lFpilp(x64emu_t *emu, uintptr_t fcn) { lFpilp_t fn = (lFpilp_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (intptr_t)R_RDX, (void*)R_RCX); }
 void lFppii(x64emu_t *emu, uintptr_t fcn) { lFppii_t fn = (lFppii_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); }
+void lFpppL(x64emu_t *emu, uintptr_t fcn) { lFpppL_t fn = (lFpppL_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void LFippL(x64emu_t *emu, uintptr_t fcn) { LFippL_t fn = (LFippL_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void LFpuuu(x64emu_t *emu, uintptr_t fcn) { LFpuuu_t fn = (LFpuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX); }
 void LFpLLp(x64emu_t *emu, uintptr_t fcn) { LFpLLp_t fn = (LFpLLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); }
@@ -2225,6 +2232,7 @@ void iFiLLLL(x64emu_t *emu, uintptr_t fcn) { iFiLLLL_t fn = (iFiLLLL_t)fcn; R_RA
 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 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); }
 void iFipppi(x64emu_t *emu, uintptr_t fcn) { iFipppi_t fn = (iFipppi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); }
 void iFipppp(x64emu_t *emu, uintptr_t fcn) { iFipppp_t fn = (iFipppp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
@@ -3350,6 +3358,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpuLp) return 1;
 	if (fun == &iFpupu) return 1;
 	if (fun == &iFpupL) return 1;
+	if (fun == &iFpupp) return 1;
 	if (fun == &iFplip) return 1;
 	if (fun == &iFpLwp) return 1;
 	if (fun == &iFpLpi) return 1;
@@ -3393,10 +3402,12 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &lFipLI) return 1;
 	if (fun == &lFipLl) return 1;
 	if (fun == &lFipLL) return 1;
+	if (fun == &lFippL) return 1;
 	if (fun == &lFlpip) return 1;
 	if (fun == &lFpili) return 1;
 	if (fun == &lFpilp) return 1;
 	if (fun == &lFppii) return 1;
+	if (fun == &lFpppL) return 1;
 	if (fun == &LFippL) return 1;
 	if (fun == &LFpuuu) return 1;
 	if (fun == &LFpLLp) return 1;
@@ -3533,6 +3544,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFipiii) return 1;
 	if (fun == &iFipipi) return 1;
 	if (fun == &iFipuip) return 1;
+	if (fun == &iFippLi) return 1;
 	if (fun == &iFippLp) return 1;
 	if (fun == &iFipppi) return 1;
 	if (fun == &iFipppp) return 1;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index b70137b9..ecc5c6af 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -597,6 +597,7 @@ void iFpuLL(x64emu_t *emu, uintptr_t fnc);
 void iFpuLp(x64emu_t *emu, uintptr_t fnc);
 void iFpupu(x64emu_t *emu, uintptr_t fnc);
 void iFpupL(x64emu_t *emu, uintptr_t fnc);
+void iFpupp(x64emu_t *emu, uintptr_t fnc);
 void iFpupV(x64emu_t *emu, uintptr_t fnc);
 void iFplip(x64emu_t *emu, uintptr_t fnc);
 void iFpLwp(x64emu_t *emu, uintptr_t fnc);
@@ -646,10 +647,12 @@ void lFipLi(x64emu_t *emu, uintptr_t fnc);
 void lFipLI(x64emu_t *emu, uintptr_t fnc);
 void lFipLl(x64emu_t *emu, uintptr_t fnc);
 void lFipLL(x64emu_t *emu, uintptr_t fnc);
+void lFippL(x64emu_t *emu, uintptr_t fnc);
 void lFlpip(x64emu_t *emu, uintptr_t fnc);
 void lFpili(x64emu_t *emu, uintptr_t fnc);
 void lFpilp(x64emu_t *emu, uintptr_t fnc);
 void lFppii(x64emu_t *emu, uintptr_t fnc);
+void lFpppL(x64emu_t *emu, uintptr_t fnc);
 void LFippL(x64emu_t *emu, uintptr_t fnc);
 void LFpuuu(x64emu_t *emu, uintptr_t fnc);
 void LFpLLp(x64emu_t *emu, uintptr_t fnc);
@@ -812,6 +815,7 @@ 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 iFipuip(x64emu_t *emu, uintptr_t fnc);
+void iFippLi(x64emu_t *emu, uintptr_t fnc);
 void iFippLp(x64emu_t *emu, uintptr_t fnc);
 void iFipppi(x64emu_t *emu, uintptr_t fnc);
 void iFipppp(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h
index 1a7f0faf..6f859ed6 100755
--- a/src/wrapped/wrappedlibc_private.h
+++ b/src/wrapped/wrappedlibc_private.h
@@ -362,7 +362,7 @@ GOW(fgetwc_unlocked, uFp)
 //GO(__fgetws_chk, 
 GO(fgetws_unlocked, pFpip)
 //GO(__fgetws_unlocked_chk, 
-//GO(fgetxattr, 
+GO(fgetxattr, lFippL)
 GOW(fileno, iFp)
 GOW(fileno_unlocked, iFp)
 GO(__finite, iFd)
@@ -425,7 +425,7 @@ GOW(fseeko64, iFpIi)
 GO(__fsetlocking, iFpi)
 GO(fsetpos, iFpp)
 GO(fsetpos64, iFpp)
-//GO(fsetxattr, 
+GO(fsetxattr, iFippLi)
 GOW(fstatfs, iFip)
 GOW(fstatfs64, iFip)
 //GOW(fstatvfs, 
@@ -515,7 +515,7 @@ GO(getgrgid, pFl)
 GO(getgrgid_r, iFlppLp)
 GO(getgrnam, pFp)
 GO(getgrnam_r, iFpppLp)
-//GO(getgrouplist, 
+GO(getgrouplist, iFpupp)
 GOW(getgroups, iFip)
 //GO(__getgroups_chk, 
 GO(gethostbyaddr, pFpui)
@@ -647,7 +647,7 @@ GO(getwchar_unlocked, uFp)
 GOW(getwc_unlocked, uFp)
 //GO(getwd, 
 //GO(__getwd_chk, 
-//GO(getxattr, 
+GO(getxattr, lFpppL)
 GOM(glob, iFEpipp)
 GOM(glob64, iFEpipp)
 GO(globfree, vFp)
@@ -1013,7 +1013,7 @@ GO(lcong48, vFp)
 //GOW(ldexpl, 
 GO(ldiv, HFll)
 GOM(lfind, pFEpppLp)
-//GO(lgetxattr, 
+GO(lgetxattr, lFpppL)
 //GO(__libc_alloca_cutoff, 
 //GO(__libc_allocate_once_slow, 
 //GO(__libc_allocate_rtsig, 
@@ -1092,12 +1092,12 @@ GOM(longjmp, vFEpi) //weak
 GOM(__longjmp_chk, vFEpi)
 GO(lrand48, lFv)
 //GO(lrand48_r, 
-//GO(lremovexattr, 
+GO(lremovexattr, iFpp)
 GOM(lsearch, pFEpppLp)
 GO(__lseek, IFiIi)
 GOW(lseek, IFiIi)
 GOW(lseek64, IFiIi)
-//GO(lsetxattr, 
+GO(lsetxattr, iFpppLi)
 //GO(lutimes, 
 GOM(__lxstat, iFEipp)
 GOM(__lxstat64, iFEipp)
@@ -1185,7 +1185,7 @@ GOM(mmap64, pFEpLiiiI)  //weak
 //GO(__monstartup, 
 //GOW(monstartup, 
 //DATA(__morecore, 
-//GOW(mount, 
+GOW(mount, iFpppLp)
 //GO(mprobe, 
 //GO(__mprotect, 
 GOM(mprotect, iFEpLi) //weak
@@ -1510,7 +1510,7 @@ GOM(__register_atfork, iFEpppp)
 //GOW(re_match_2, 
 //DATA(re_max_failures, 
 GO(remove, iFp)
-//GO(removexattr, 
+GO(removexattr, iFpp)
 //GO(remque, 
 GO(rename, iFpp)
 //GOW(renameat, 
@@ -1662,7 +1662,7 @@ GOW(setuid, iFu)
 //GOW(setutent, 
 //GO(setutxent, 
 GOW(setvbuf, iFppiL)
-//GO(setxattr, 
+GO(setxattr, iFpppLi)
 //GO(sgetsgent, 
 //GOW(sgetsgent_r, 
 //GO(sgetspent,