summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/_pthread_stubs.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/gen/_pthread_stubs.c')
-rw-r--r--lib/libc/gen/_pthread_stubs.c93
1 files changed, 93 insertions, 0 deletions
diff --git a/lib/libc/gen/_pthread_stubs.c b/lib/libc/gen/_pthread_stubs.c
index be6dab7..4783359 100644
--- a/lib/libc/gen/_pthread_stubs.c
+++ b/lib/libc/gen/_pthread_stubs.c
@@ -26,7 +26,9 @@
* $FreeBSD$
*/
+#include <signal.h>
#include <pthread.h>
+#include <pthread_np.h>
/*
* Weak symbols: All libc internal usage of these functions should
@@ -37,9 +39,13 @@
* between application locks and libc locks (threads holding the
* latter can't be allowed to exit/terminate).
*/
+#pragma weak _pthread_cond_init=_pthread_cond_init_stub
+#pragma weak _pthread_cond_signal=_pthread_cond_signal_stub
+#pragma weak _pthread_cond_wait=_pthread_cond_wait_stub
#pragma weak _pthread_getspecific=_pthread_getspecific_stub
#pragma weak _pthread_key_create=_pthread_key_create_stub
#pragma weak _pthread_key_delete=_pthread_key_delete_stub
+#pragma weak _pthread_main_np=_pthread_main_np_stub
#pragma weak _pthread_mutex_destroy=_pthread_mutex_destroy_stub
#pragma weak _pthread_mutex_init=_pthread_mutex_init_stub
#pragma weak _pthread_mutex_lock=_pthread_mutex_lock_stub
@@ -50,13 +56,40 @@
#pragma weak _pthread_mutexattr_settype=_pthread_mutexattr_settype_stub
#pragma weak _pthread_once=_pthread_once_stub
#pragma weak _pthread_self=_pthread_self_stub
+#pragma weak _pthread_rwlock_init=_pthread_rwlock_init_stub
+#pragma weak _pthread_rwlock_rdlock=_pthread_rwlock_rdlock_stub
+#pragma weak _pthread_rwlock_tryrdlock=_pthread_rwlock_tryrdlock_stub
+#pragma weak _pthread_rwlock_trywrloc=_pthread_rwlock_trywrlock_stub
+#pragma weak _pthread_rwlock_unlock=_pthread_rwlock_unlock_stub
+#pragma weak _pthread_rwlock_wrlock=_pthread_rwlock_wrlock_stub
#pragma weak _pthread_setspecific=_pthread_setspecific_stub
+#pragma weak _pthread_sigmask=_pthread_sigmask_stub
+/* Define a null pthread structure just to satisfy _pthread_self. */
struct pthread {
};
static struct pthread main_thread;
+int
+_pthread_cond_init_stub(pthread_cond_t *cond,
+ const pthread_condattr_t *cond_attr)
+{
+ return (0);
+}
+
+int
+_pthread_cond_signal_stub(pthread_cond_t *cond)
+{
+ return (0);
+}
+
+int
+_pthread_cond_wait_stub(pthread_cond_t *cond,
+ pthread_mutex_t *mutex)
+{
+ return (0);
+}
void *
_pthread_getspecific_stub(pthread_key_t key)
@@ -77,6 +110,12 @@ _pthread_key_delete_stub(pthread_key_t key)
}
int
+_pthread_main_np_stub()
+{
+ return (-1);
+}
+
+int
_pthread_mutex_destroy_stub(pthread_mutex_t *mattr)
{
return (0);
@@ -130,6 +169,49 @@ _pthread_once_stub(pthread_once_t *once_control, void (*init_routine) (void))
return (0);
}
+int
+_pthread_rwlock_init_stub(pthread_rwlock_t *rwlock,
+ const pthread_rwlockattr_t *attr)
+{
+ return (0);
+}
+
+int
+_pthread_rwlock_destroy_stub(pthread_rwlock_t *rwlock)
+{
+ return (0);
+}
+
+int
+_pthread_rwlock_rdlock_stub(pthread_rwlock_t *rwlock)
+{
+ return (0);
+}
+
+int
+_pthread_rwlock_tryrdlock_stub(pthread_rwlock_t *rwlock)
+{
+ return (0);
+}
+
+int
+_pthread_rwlock_trywrlock_stub(pthread_rwlock_t *rwlock)
+{
+ return (0);
+}
+
+int
+_pthread_rwlock_unlock_stub(pthread_rwlock_t *rwlock)
+{
+ return (0);
+}
+
+int
+_pthread_rwlock_wrlock_stub(pthread_rwlock_t *rwlock)
+{
+ return (0);
+}
+
pthread_t
_pthread_self_stub(void)
{
@@ -141,3 +223,14 @@ _pthread_setspecific_stub(pthread_key_t key, const void *value)
{
return (0);
}
+
+int
+_pthread_sigmask_stub(int how, const sigset_t *set, sigset_t *oset)
+{
+ /*
+ * No need to use _sigprocmask, since we know that the threads
+ * library is not linked in.
+ *
+ */
+ return (sigprocmask(how, set, oset));
+}
OpenPOWER on IntegriCloud