about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-07-03 13:55:21 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-07-03 13:55:21 +0200
commit48b881f4912bc795e0467e334e359e9876f73c4f (patch)
tree68bf97bc36e371d44a41d124dd4b25e9d6c1c81b /src
parenta6f0525a4c2d96d2f54707369acc75e54d4d6574 (diff)
downloadbox64-48b881f4912bc795e0467e334e359e9876f73c4f.tar.gz
box64-48b881f4912bc795e0467e334e359e9876f73c4f.zip
Added wrapped pthread_cond_clockwait (for #303)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/libtools/threads.c5
-rw-r--r--src/wrapped/generated/functions_list.txt2
-rw-r--r--src/wrapped/generated/wrappedlibpthreadtypes.h2
-rwxr-xr-xsrc/wrapped/wrappedlibpthread_private.h1
4 files changed, 10 insertions, 0 deletions
diff --git a/src/libtools/threads.c b/src/libtools/threads.c
index 0c81f3ce..8486d3dd 100755
--- a/src/libtools/threads.c
+++ b/src/libtools/threads.c
@@ -672,6 +672,11 @@ EXPORT int my_pthread_cond_wait(x64emu_t* emu, pthread_cond_t* cond, void* mutex
 	(void)emu;
 	return pthread_cond_wait(cond, getAlignedMutex((pthread_mutex_t*)mutex));
 }
+EXPORT int my_pthread_cond_clockwait(x64emu_t *emu, pthread_cond_t* cond, void* mutex, __clockid_t __clock_id, const struct timespec* __abstime)
+{
+	(void)emu;
+	return pthread_cond_clockwait(cond, getAlignedMutex((pthread_mutex_t*)mutex), __clock_id, __abstime);
+}
 
 EXPORT void my__pthread_cleanup_push_defer(x64emu_t* emu, void* buffer, void* routine, void* arg)
 {
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index a4f1c7c9..69be082b 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -3128,6 +3128,8 @@ wrappedlibpthread:
   - pthread_atfork
   - pthread_attr_getstack
   - pthread_cond_timedwait
+- iFppip:
+  - pthread_cond_clockwait
 - iFpppp:
   - pthread_create
 wrappedlibresolv:
diff --git a/src/wrapped/generated/wrappedlibpthreadtypes.h b/src/wrapped/generated/wrappedlibpthreadtypes.h
index f7c3a0de..c22ae27b 100644
--- a/src/wrapped/generated/wrappedlibpthreadtypes.h
+++ b/src/wrapped/generated/wrappedlibpthreadtypes.h
@@ -23,6 +23,7 @@ typedef int64_t (*iFpLp_t)(void*, uintptr_t, void*);
 typedef int64_t (*iFppu_t)(void*, void*, uint64_t);
 typedef int64_t (*iFppL_t)(void*, void*, uintptr_t);
 typedef int64_t (*iFppp_t)(void*, void*, void*);
+typedef int64_t (*iFppip_t)(void*, void*, int64_t, void*);
 typedef int64_t (*iFpppp_t)(void*, void*, void*, void*);
 
 #define SUPER() ADDED_FUNCTIONS() \
@@ -101,6 +102,7 @@ typedef int64_t (*iFpppp_t)(void*, void*, void*, void*);
 	GO(pthread_atfork, iFppp_t) \
 	GO(pthread_attr_getstack, iFppp_t) \
 	GO(pthread_cond_timedwait, iFppp_t) \
+	GO(pthread_cond_clockwait, iFppip_t) \
 	GO(pthread_create, iFpppp_t)
 
 #endif // __wrappedlibpthreadTYPES_H_
diff --git a/src/wrapped/wrappedlibpthread_private.h b/src/wrapped/wrappedlibpthread_private.h
index 9722cb4c..d2291657 100755
--- a/src/wrapped/wrappedlibpthread_private.h
+++ b/src/wrapped/wrappedlibpthread_private.h
@@ -112,6 +112,7 @@ GO(pthread_cond_signal, iFp)
 GOM(pthread_cond_timedwait, iFEppp)
 GOM(pthread_cond_wait, iFEpp)
 GOM(pthread_create, iFEpppp)
+GOM(pthread_cond_clockwait, iFEppip)
 GO(pthread_detach, iFL)
 GO(pthread_equal, iFLL)
 GO(pthread_exit, vFp)