diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibctypes.h | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc.c | 6 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 4 |
6 files changed, 16 insertions, 2 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 5f546d8b..74f01ac7 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -974,6 +974,7 @@ #() vFpppppp #() cFppLppi #() iFEiippi +#() iFEipppp #() iFElpppp #() iFEpiipp #() iFEpiipV @@ -1661,6 +1662,8 @@ wrappedlibc: - __fxstatat64 - iFipiip: - epoll_pwait +- iFipppp: + - scandirat - iFpilpV: - __sprintf_chk - iFpuppp: diff --git a/src/wrapped/generated/wrappedlibctypes.h b/src/wrapped/generated/wrappedlibctypes.h index 0a9a7bf9..6fcfe37b 100644 --- a/src/wrapped/generated/wrappedlibctypes.h +++ b/src/wrapped/generated/wrappedlibctypes.h @@ -57,6 +57,7 @@ typedef int64_t (*iFpppp_t)(void*, void*, void*, void*); typedef void (*vFpLLpp_t)(void*, uintptr_t, uintptr_t, void*, void*); typedef int64_t (*iFiippi_t)(int64_t, int64_t, void*, void*, int64_t); typedef int64_t (*iFipiip_t)(int64_t, void*, int64_t, int64_t, void*); +typedef int64_t (*iFipppp_t)(int64_t, void*, void*, void*, void*); typedef int64_t (*iFpilpV_t)(void*, int64_t, intptr_t, void*, void*); typedef int64_t (*iFpuppp_t)(void*, uint64_t, void*, void*, void*); typedef void* (*pFpLLiN_t)(void*, uintptr_t, uintptr_t, int64_t, ...); @@ -179,6 +180,7 @@ typedef int64_t (*iFpippppp_t)(void*, int64_t, void*, void*, void*, void*, void* GO(__fxstatat, iFiippi_t) \ GO(__fxstatat64, iFiippi_t) \ GO(epoll_pwait, iFipiip_t) \ + GO(scandirat, iFipppp_t) \ GO(__sprintf_chk, iFpilpV_t) \ GO(__vswprintf_chk, iFpuppp_t) \ GO(vswprintf, iFpuppp_t) \ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 82b67ebf..756a2e07 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -1008,6 +1008,7 @@ typedef void (*vFpppppi_t)(void*, void*, void*, void*, void*, int64_t); typedef void (*vFpppppp_t)(void*, void*, void*, void*, void*, void*); typedef int8_t (*cFppLppi_t)(void*, void*, uintptr_t, void*, void*, int64_t); typedef int64_t (*iFEiippi_t)(x64emu_t*, int64_t, int64_t, void*, void*, int64_t); +typedef int64_t (*iFEipppp_t)(x64emu_t*, int64_t, void*, void*, void*, void*); typedef int64_t (*iFElpppp_t)(x64emu_t*, intptr_t, void*, void*, void*, void*); typedef int64_t (*iFEpiipp_t)(x64emu_t*, void*, int64_t, int64_t, void*, void*); typedef int64_t (*iFEpiipV_t)(x64emu_t*, void*, int64_t, int64_t, void*, void*); @@ -2421,6 +2422,7 @@ void vFpppppi(x64emu_t *emu, uintptr_t fcn) { vFpppppi_t fn = (vFpppppi_t)fcn; f void vFpppppp(x64emu_t *emu, uintptr_t fcn) { vFpppppp_t fn = (vFpppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void cFppLppi(x64emu_t *emu, uintptr_t fcn) { cFppLppi_t fn = (cFppLppi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9); } void iFEiippi(x64emu_t *emu, uintptr_t fcn) { iFEiippi_t fn = (iFEiippi_t)fcn; R_RAX=(int64_t)fn(emu, (int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); } +void iFEipppp(x64emu_t *emu, uintptr_t fcn) { iFEipppp_t fn = (iFEipppp_t)fcn; R_RAX=(int64_t)fn(emu, (int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void iFElpppp(x64emu_t *emu, uintptr_t fcn) { iFElpppp_t fn = (iFElpppp_t)fcn; R_RAX=(int64_t)fn(emu, (intptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void iFEpiipp(x64emu_t *emu, uintptr_t fcn) { iFEpiipp_t fn = (iFEpiipp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void iFEpiipV(x64emu_t *emu, uintptr_t fcn) { iFEpiipV_t fn = (iFEpiipV_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8)); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index ecc5c6af..a4541dab 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -1004,6 +1004,7 @@ void vFpppppi(x64emu_t *emu, uintptr_t fnc); void vFpppppp(x64emu_t *emu, uintptr_t fnc); void cFppLppi(x64emu_t *emu, uintptr_t fnc); void iFEiippi(x64emu_t *emu, uintptr_t fnc); +void iFEipppp(x64emu_t *emu, uintptr_t fnc); void iFElpppp(x64emu_t *emu, uintptr_t fnc); void iFEpiipp(x64emu_t *emu, uintptr_t fnc); void iFEpiipV(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index c11a27e3..301062f0 100755 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -1523,6 +1523,12 @@ EXPORT int my_scandir64(x64emu_t *emu, void* dir, void* namelist, void* sel, voi } EXPORT int my_scandir(x64emu_t *emu, void* dir, void* namelist, void* sel, void* comp) __attribute__((alias("my_scandir64"))); +EXPORT int my_scandirat(x64emu_t *emu, int dirfd, void* dirp, void* namelist, void* sel, void* comp) +{ + (void)emu; + return scandirat(dirfd, dirp, namelist, findfilter64Fct(sel), findcompare64Fct(comp)); +} + EXPORT int my_ftw64(x64emu_t* emu, void* filename, void* func, int descriptors) { (void)emu; diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index 6f859ed6..38009323 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -1561,7 +1561,7 @@ GOW(sbrk, pFl) //GOW(scalbnl, GOM(scandir, iFEpppp) //weak GOM(scandir64, iFEpppp) //weak -//GOW(scandirat, +GOM(scandirat, iFEipppp) //weak //GO(scandirat64, //GO(scanf, GO(__sched_cpualloc, pFL) @@ -1633,7 +1633,7 @@ GO(__setmntent, pFpp) GOW(setmntent, pFpp) //GO(setnetent, //GO(setnetgrent, -//GO(setns, +GO(setns, iFii) GO(__setpgid, iFpp) GOW(setpgid, iFpp) GO(setpgrp, lFv) |