about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-02-04 11:17:34 +0100
committerptitSeb <sebastien.chev@gmail.com>2023-02-04 11:17:34 +0100
commit4038ad5ce5c4d5702d229230697e4246991cbd59 (patch)
tree3cb8de17f66528598bbe8799eca9ebb0c4697d31 /src
parent973864e045c2080425619d47538db3455e4a7435 (diff)
downloadbox64-4038ad5ce5c4d5702d229230697e4246991cbd59.tar.gz
box64-4038ad5ce5c4d5702d229230697e4246991cbd59.zip
Added fts64_XXX wrapped functions to libc (for #503)
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/generated/functions_list.txt1
-rw-r--r--src/wrapped/generated/wrappedlibctypes.h1
-rwxr-xr-xsrc/wrapped/wrappedlibc.c8
-rwxr-xr-xsrc/wrapped/wrappedlibc_private.h10
4 files changed, 15 insertions, 5 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 26f9e680..63a1da02 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -3138,6 +3138,7 @@ wrappedlibc:
   - strlcat
   - strlcpy
 - pFpip:
+  - fts64_open
   - fts_open
 - pFppp:
   - tsearch
diff --git a/src/wrapped/generated/wrappedlibctypes.h b/src/wrapped/generated/wrappedlibctypes.h
index 5a08f38d..be8a3f3a 100644
--- a/src/wrapped/generated/wrappedlibctypes.h
+++ b/src/wrapped/generated/wrappedlibctypes.h
@@ -209,6 +209,7 @@ typedef int64_t (*iFppipppp_t)(void*, void*, int64_t, void*, void*, void*, void*
 	GO(readlink, lFppL_t) \
 	GO(strlcat, LFppL_t) \
 	GO(strlcpy, LFppL_t) \
+	GO(fts64_open, pFpip_t) \
 	GO(fts_open, pFpip_t) \
 	GO(tsearch, pFppp_t) \
 	GO(__syslog_chk, vFiipV_t) \
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index 2f25b9ae..8ee59a30 100755
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -90,10 +90,12 @@ typedef int32_t (*iFipiI_t)(int32_t, void*, int32_t, int64_t);
 typedef int32_t (*iFipuup_t)(int32_t, void*, uint32_t, uint32_t, void*);
 typedef int32_t (*iFiiV_t)(int32_t, int32_t, ...);
 typedef void* (*pFp_t)(void*);
+typedef void* (*pFpip_t)(void*, int, void*);
 
 #define SUPER() \
     GO(_ITM_addUserCommitAction, iFpup_t)   \
     GO(_IO_file_stat, iFpp_t)               \
+    GO(fts64_open, pFpip_t)                 \
     GO(register_printf_specifier, iFipp_t)  \
     GO(register_printf_type, iFp_t)
 
@@ -1278,6 +1280,12 @@ EXPORT void* my_fts_open(x64emu_t* emu, void* path, int options, void* c)
     return fts_open(path, options, findcompareFct(c));
 }
 
+EXPORT void* my_fts64_open(x64emu_t* emu, void* path, int options, void* c)
+{
+    (void)emu;
+    return my->fts64_open(path, options, findcompareFct(c));
+}
+
 #if 0
 struct i386_dirent {
     uint32_t d_ino;
diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h
index 1ce329d3..6f682431 100755
--- a/src/wrapped/wrappedlibc_private.h
+++ b/src/wrapped/wrappedlibc_private.h
@@ -446,11 +446,11 @@ GO(ftok, iFpi)
 GOW(ftruncate, iFil)
 GOW(ftruncate64, iFil)
 GOW(ftrylockfile, iFp)
-//GOW(fts64_children, !F!i)
-//GOW(fts64_close, iF!)
-//GOW(fts64_open, !Fpi@)
-//GOW(fts64_read, !F!)
-//GOW(fts64_set, iF!!i)
+GOW(fts64_children, pFpi)
+GOW(fts64_close, iFp)
+GOWM(fts64_open, pFEpip)
+GOW(fts64_read, pFp)
+GOW(fts64_set, iFppi)
 GO(fts_children, pFpi)
 GO(fts_close, iFp)
 GOM(fts_open, pFEpip)