]>
Commit | Line | Data |
---|---|---|
33574c17 | 1 | /* Initialize pthreads library. |
581c785b | 2 | Copyright (C) 2000-2022 Free Software Foundation, Inc. |
33574c17 ST |
3 | This file is part of the GNU C Library. |
4 | ||
5 | The GNU C Library is free software; you can redistribute it and/or | |
ad2b41bf ST |
6 | modify it under the terms of the GNU Lesser General Public |
7 | License as published by the Free Software Foundation; either | |
8 | version 2.1 of the License, or (at your option) any later version. | |
33574c17 ST |
9 | |
10 | The GNU C Library is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
ad2b41bf | 13 | Lesser General Public License for more details. |
33574c17 | 14 | |
ad2b41bf ST |
15 | You should have received a copy of the GNU Lesser General Public |
16 | License along with the GNU C Library; if not, see | |
5a82c748 | 17 | <https://www.gnu.org/licenses/>. */ |
33574c17 ST |
18 | |
19 | #include <assert.h> | |
20 | #include <string.h> | |
21 | ||
22 | #include <pt-internal.h> | |
23 | #include <set-hooks.h> | |
24 | ||
25 | #include <pthread.h> | |
26 | #include <pthread-functions.h> | |
27 | ||
28 | #if IS_IN (libpthread) | |
29 | static const struct pthread_functions pthread_functions = { | |
30 | .ptr_pthread_attr_destroy = __pthread_attr_destroy, | |
31 | .ptr_pthread_attr_init = __pthread_attr_init, | |
32 | .ptr_pthread_attr_getdetachstate = __pthread_attr_getdetachstate, | |
33 | .ptr_pthread_attr_setdetachstate = __pthread_attr_setdetachstate, | |
34 | .ptr_pthread_attr_getinheritsched = __pthread_attr_getinheritsched, | |
35 | .ptr_pthread_attr_setinheritsched = __pthread_attr_setinheritsched, | |
36 | .ptr_pthread_attr_getschedparam = __pthread_attr_getschedparam, | |
37 | .ptr_pthread_attr_setschedparam = __pthread_attr_setschedparam, | |
38 | .ptr_pthread_attr_getschedpolicy = __pthread_attr_getschedpolicy, | |
39 | .ptr_pthread_attr_setschedpolicy = __pthread_attr_setschedpolicy, | |
40 | .ptr_pthread_attr_getscope = __pthread_attr_getscope, | |
41 | .ptr_pthread_attr_setscope = __pthread_attr_setscope, | |
42 | .ptr_pthread_condattr_destroy = __pthread_condattr_destroy, | |
43 | .ptr_pthread_condattr_init = __pthread_condattr_init, | |
44 | .ptr_pthread_cond_broadcast = __pthread_cond_broadcast, | |
45 | .ptr_pthread_cond_destroy = __pthread_cond_destroy, | |
46 | .ptr_pthread_cond_init = __pthread_cond_init, | |
47 | .ptr_pthread_cond_signal = __pthread_cond_signal, | |
48 | .ptr_pthread_cond_wait = __pthread_cond_wait, | |
49 | .ptr_pthread_cond_timedwait = __pthread_cond_timedwait, | |
50 | .ptr_pthread_equal = __pthread_equal, | |
51 | .ptr___pthread_exit = __pthread_exit, | |
52 | .ptr_pthread_getschedparam = __pthread_getschedparam, | |
53 | .ptr_pthread_setschedparam = __pthread_setschedparam, | |
e775f443 ST |
54 | .ptr_pthread_mutex_destroy = __pthread_mutex_destroy, |
55 | .ptr_pthread_mutex_init = __pthread_mutex_init, | |
33574c17 ST |
56 | .ptr_pthread_mutex_lock = __pthread_mutex_lock, |
57 | .ptr_pthread_mutex_trylock = __pthread_mutex_trylock, | |
58 | .ptr_pthread_mutex_unlock = __pthread_mutex_unlock, | |
59 | .ptr_pthread_self = __pthread_self, | |
60 | .ptr___pthread_setcancelstate = __pthread_setcancelstate, | |
61 | .ptr_pthread_setcanceltype = __pthread_setcanceltype, | |
62 | .ptr___pthread_get_cleanup_stack = __pthread_get_cleanup_stack, | |
63 | .ptr_pthread_once = __pthread_once, | |
64 | .ptr_pthread_rwlock_rdlock = __pthread_rwlock_rdlock, | |
65 | .ptr_pthread_rwlock_wrlock = __pthread_rwlock_wrlock, | |
66 | .ptr_pthread_rwlock_unlock = __pthread_rwlock_unlock, | |
67 | .ptr___pthread_key_create = __pthread_key_create, | |
68 | .ptr___pthread_getspecific = __pthread_getspecific, | |
69 | .ptr___pthread_setspecific = __pthread_setspecific, | |
70 | .ptr__IO_flockfile = _cthreads_flockfile, | |
71 | .ptr__IO_funlockfile = _cthreads_funlockfile, | |
72 | .ptr__IO_ftrylockfile = _cthreads_ftrylockfile, | |
73 | }; | |
74 | #endif /* IS_IN (libpthread) */ | |
75 | ||
76 | /* Initialize the pthreads library. */ | |
77 | void | |
78 | ___pthread_init (void) | |
79 | { | |
80 | #if IS_IN (libpthread) | |
81 | __libc_pthread_init (&pthread_functions); | |
82 | #endif | |
83 | } |