OSDN Git Service

uClibc_pthread.h: do not install on target
[uclinux-h8/uClibc.git] / 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; if not, write to the Free
15  *  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
16  *  02111-1307 USA.
17  */
18
19 /* Supply prototypes for the internal thread functions used by the
20  * uClibc library code.
21  */
22
23 #ifndef _UCLIBC_PTHREAD_H
24 #define _UCLIBC_PTHREAD_H
25
26 #ifndef _PTHREAD_H
27 # error "Always include <pthread.h> rather than <bits/uClibc_pthread.h>"
28 #endif
29
30 struct _pthread_cleanup_buffer;
31
32 /* Threading functions internal to uClibc.  Make these thread functions
33  * weak so that we can elide them from single-threaded processes.  */
34 extern int weak_function __pthread_mutex_init (pthread_mutex_t *__mutex,
35                 __const pthread_mutexattr_t *__mutex_attr);
36 extern int weak_function __pthread_mutex_destroy (pthread_mutex_t *__mutex);
37 extern int weak_function __pthread_mutex_lock (pthread_mutex_t *__mutex);
38 extern int weak_function __pthread_mutex_unlock (pthread_mutex_t *__mutex);
39 extern int weak_function __pthread_mutex_trylock (pthread_mutex_t *__mutex);
40 extern void weak_function _pthread_cleanup_push_defer (
41                 struct _pthread_cleanup_buffer *__buffer,
42                 void (*__routine) (void *), void *__arg);
43 extern void weak_function _pthread_cleanup_pop_restore (
44                 struct _pthread_cleanup_buffer *__buffer,
45                 int __execute);
46
47 #endif