about summary refs log tree commit diff
path: root/nptl/pthreadP.h
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/pthreadP.h')
-rw-r--r--nptl/pthreadP.h25
1 files changed, 23 insertions, 2 deletions
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index c6c1e49a53..74243d1382 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -80,10 +80,10 @@ extern int __pthread_debug attribute_hidden;
 
 /* Set cancellation mode to asynchronous.  */
 #define CANCEL_ASYNC(oldtype) \
-  pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype)
+  __pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype)
 /* Reset to previous cancellation mode.  */
 #define CANCEL_RESET(oldtype) \
-  pthread_setcanceltype (oldtype, NULL)
+  __pthread_setcanceltype (oldtype, NULL)
 
 /* Function performing the cancellation.  */
 extern void __do_cancel (char *currentframe)
@@ -147,7 +147,9 @@ extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
 extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
 extern int __pthread_mutex_trylock (pthread_mutex_t *_mutex);
 extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
+extern int __pthread_mutex_lock_internal (pthread_mutex_t *__mutex);
 extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
+extern int __pthread_mutex_unlock_internal (pthread_mutex_t *__mutex);
 extern int __pthread_mutexattr_init (pthread_mutexattr_t *attr);
 extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *attr);
 extern int __pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind);
@@ -179,7 +181,26 @@ extern void *__pthread_getspecific (pthread_key_t key);
 extern int __pthread_setspecific (pthread_key_t key, const void *value);
 extern int __pthread_once (pthread_once_t *once_control,
 			   void (*init_routine) (void));
+extern int __pthread_once_internal (pthread_once_t *once_control,
+				    void (*init_routine) (void));
 extern int __pthread_atfork (void (*prepare) (void), void (*parent) (void),
 			     void (*child) (void));
+extern int __pthread_kill (pthread_t threadid, int signo);
+extern int __pthread_setcanceltype (int type, int *oldtype);
+
+/* Special versions which use non-exported functions.  */
+extern void _GI_pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
+				      void (*routine) (void *), void *arg)
+     attribute_hidden;
+#undef pthread_cleanup_push
+#define pthread_cleanup_push(routine,arg) \
+  { struct _pthread_cleanup_buffer _buffer;				      \
+    _GI_pthread_cleanup_push (&_buffer, (routine), (arg));
+
+extern void _GI_pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
+				     int execute) attribute_hidden;
+#undef pthread_cleanup_pop
+#define pthread_cleanup_pop(execute) \
+    _GI_pthread_cleanup_pop (&_buffer, (execute)); }
 
 #endif	/* pthreadP.h */