]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/l4re-core/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/common/bits/uClibc_pthread.h
Update
[l4.git] / l4 / pkg / l4re-core / uclibc / lib / contrib / uclibc / libc / sysdeps / linux / common / bits / uClibc_pthread.h
1 /*  Copyright (C) 2003     Manuel Novoa III
2  *
3  *  This library is free software; you can redistribute it and/or
4  *  modify it under the terms of the GNU Lesser General Public
5  *  License as published by the Free Software Foundation; either
6  *  version 2.1 of the License, or (at your option) any later version.
7  *
8  *  The GNU C Library is distributed in the hope that it will be useful,
9  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11  *  Lesser General Public License for more details.
12  *
13  *  You should have received a copy of the GNU Lesser General Public
14  *  License along with the GNU C Library; see the file COPYING.LIB.  If
15  *  not, see <http://www.gnu.org/licenses/>.
16  */
17
18 /* Supply prototypes for the internal thread functions used by the
19  * uClibc library code.
20  */
21
22 #ifndef _UCLIBC_PTHREAD_H
23 #define _UCLIBC_PTHREAD_H
24
25 #ifndef _PTHREAD_H
26 # error "Always include <pthread.h> rather than <bits/uClibc_pthread.h>"
27 #endif
28
29 struct _pthread_cleanup_buffer;
30
31 /* Threading functions internal to uClibc.  Make these thread functions
32  * weak so that we can elide them from single-threaded processes.  */
33 extern int weak_function __pthread_mutex_init (pthread_mutex_t *__mutex,
34                 const pthread_mutexattr_t *__mutex_attr);
35 extern int weak_function __pthread_mutex_lock (pthread_mutex_t *__mutex);
36 extern int weak_function __pthread_mutex_unlock (pthread_mutex_t *__mutex);
37 extern int weak_function __pthread_mutex_trylock (pthread_mutex_t *__mutex);
38 extern void weak_function _pthread_cleanup_push_defer (
39                 struct _pthread_cleanup_buffer *__buffer,
40                 void (*__routine) (void *), void *__arg) /* L4 added: */ __THROW;
41 extern void weak_function _pthread_cleanup_pop_restore (
42                 struct _pthread_cleanup_buffer *__buffer,
43                 int __execute) /* L4 added: */ __THROW;
44
45 #endif