diff options
Diffstat (limited to 'sysdeps')
31 files changed, 179 insertions, 39 deletions
diff --git a/sysdeps/arm/backtrace.c b/sysdeps/arm/backtrace.c index 5a30c209ff..b19def6e0b 100644 --- a/sysdeps/arm/backtrace.c +++ b/sysdeps/arm/backtrace.c @@ -17,7 +17,7 @@ License along with the GNU C Library. If not, see <http://www.gnu.org/licenses/>. */ -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <dlfcn.h> #include <execinfo.h> #include <stdlib.h> diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index 7a0fe8dbe4..7f7ff72f88 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -35,7 +35,7 @@ #include <link.h> #include <dl-lookupcfg.h> #include <dl-sysdep.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <hp-timing.h> #include <tls.h> diff --git a/sysdeps/generic/libc-lock.h b/sysdeps/generic/libc-lock.h new file mode 100644 index 0000000000..f05f88878a --- /dev/null +++ b/sysdeps/generic/libc-lock.h @@ -0,0 +1,140 @@ +/* libc-internal interface for mutex locks. Stub version. + Copyright (C) 1996-2015 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LIBC_LOCK_H +#define _LIBC_LOCK_H 1 + + +/* Define a lock variable NAME with storage class CLASS. The lock must be + initialized with __libc_lock_init before it can be used (or define it + with __libc_lock_define_initialized, below). Use `extern' for CLASS to + declare a lock defined in another module. In public structure + definitions you must use a pointer to the lock structure (i.e., NAME + begins with a `*'), because its storage size will not be known outside + of libc. */ +#define __libc_lock_define(CLASS,NAME) +#define __libc_lock_define_recursive(CLASS,NAME) +#define __rtld_lock_define_recursive(CLASS,NAME) +#define __libc_rwlock_define(CLASS,NAME) + +/* Define an initialized lock variable NAME with storage class CLASS. */ +#define __libc_lock_define_initialized(CLASS,NAME) +#define __libc_rwlock_define_initialized(CLASS,NAME) + +/* Define an initialized recursive lock variable NAME with storage + class CLASS. */ +#define __libc_lock_define_initialized_recursive(CLASS,NAME) +#define __rtld_lock_define_initialized_recursive(CLASS,NAME) + +/* Initialize the named lock variable, leaving it in a consistent, unlocked + state. */ +#define __libc_lock_init(NAME) +#define __rtld_lock_initialize(NAME) +#define __libc_rwlock_init(NAME) + +/* Same as last but this time we initialize a recursive mutex. */ +#define __libc_lock_init_recursive(NAME) + +/* Finalize the named lock variable, which must be locked. It cannot be + used again until __libc_lock_init is called again on it. This must be + called on a lock variable before the containing storage is reused. */ +#define __libc_lock_fini(NAME) +#define __libc_rwlock_fini(NAME) + +/* Finalize recursive named lock. */ +#define __libc_lock_fini_recursive(NAME) + +/* Lock the named lock variable. */ +#define __libc_lock_lock(NAME) +#define __libc_rwlock_rdlock(NAME) +#define __libc_rwlock_wrlock(NAME) + +/* Lock the recursive named lock variable. */ +#define __libc_lock_lock_recursive(NAME) +#define __rtld_lock_lock_recursive(NAME) + +/* Try to lock the named lock variable. */ +#define __libc_lock_trylock(NAME) 0 +#define __libc_rwlock_tryrdlock(NAME) 0 +#define __libc_rwlock_trywrlock(NAME) 0 + +/* Try to lock the recursive named lock variable. */ +#define __libc_lock_trylock_recursive(NAME) 0 + +/* Unlock the named lock variable. */ +#define __libc_lock_unlock(NAME) +#define __libc_rwlock_unlock(NAME) + +/* Unlock the recursive named lock variable. */ +#define __libc_lock_unlock_recursive(NAME) +#define __rtld_lock_unlock_recursive(NAME) + + +/* Define once control variable. */ +#define __libc_once_define(CLASS, NAME) CLASS int NAME = 0 + +/* Call handler iff the first call. */ +#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \ + do { \ + if ((ONCE_CONTROL) == 0) { \ + INIT_FUNCTION (); \ + (ONCE_CONTROL) = 1; \ + } \ + } while (0) + +/* Get once control variable. */ +#define __libc_once_get(ONCE_CONTROL) \ + ((ONCE_CONTROL) == 1) + +/* Start a critical region with a cleanup function */ +#define __libc_cleanup_region_start(DOIT, FCT, ARG) \ +{ \ + typeof (***(FCT)) *__save_FCT = (DOIT) ? (FCT) : 0; \ + typeof (ARG) __save_ARG = ARG; \ + /* close brace is in __libc_cleanup_region_end below. */ + +/* End a critical region started with __libc_cleanup_region_start. */ +#define __libc_cleanup_region_end(DOIT) \ + if ((DOIT) && __save_FCT != 0) \ + (*__save_FCT)(__save_ARG); \ +} + +/* Sometimes we have to exit the block in the middle. */ +#define __libc_cleanup_end(DOIT) \ + if ((DOIT) && __save_FCT != 0) \ + (*__save_FCT)(__save_ARG); \ + +#define __libc_cleanup_push(fct, arg) __libc_cleanup_region_start (1, fct, arg) +#define __libc_cleanup_pop(execute) __libc_cleanup_region_end (execute) + +/* We need portable names for some of the functions. */ +#define __libc_mutex_unlock + +/* Type for key of thread specific data. */ +typedef int __libc_key_t; + +/* Create key for thread specific data. */ +#define __libc_key_create(KEY,DEST) ((void) (KEY), (void) (DEST), -1) + +/* Set thread-specific data associated with KEY to VAL. */ +#define __libc_setspecific(KEY,VAL) ((void) (KEY), (void) (VAL)) + +/* Get thread-specific data associated with KEY. */ +#define __libc_getspecific(KEY) ((void) (KEY), (void *) 0) + +#endif /* libc-lock.h */ diff --git a/sysdeps/generic/stdio-lock.h b/sysdeps/generic/stdio-lock.h index 620e207f80..38f93efce9 100644 --- a/sysdeps/generic/stdio-lock.h +++ b/sysdeps/generic/stdio-lock.h @@ -19,7 +19,7 @@ #ifndef _STDIO_LOCK_H #define _STDIO_LOCK_H 1 -#include <bits/libc-lock.h> +#include <libc-lock.h> __libc_lock_define_recursive (typedef, _IO_lock_t) diff --git a/sysdeps/generic/unwind-dw2-fde.c b/sysdeps/generic/unwind-dw2-fde.c index 1da37ab508..6db9aeaffc 100644 --- a/sysdeps/generic/unwind-dw2-fde.c +++ b/sysdeps/generic/unwind-dw2-fde.c @@ -27,7 +27,7 @@ #ifdef _LIBC #include <stdlib.h> #include <string.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <dwarf2.h> #include <unwind.h> #define NO_BASE_OF_ENCODED_VALUE diff --git a/sysdeps/i386/backtrace.c b/sysdeps/i386/backtrace.c index f10ed566dc..a1b4d33322 100644 --- a/sysdeps/i386/backtrace.c +++ b/sysdeps/i386/backtrace.c @@ -17,7 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <dlfcn.h> #include <execinfo.h> #include <stdlib.h> diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c index 0198886758..0f0e20bf11 100644 --- a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c +++ b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c @@ -25,7 +25,7 @@ #include <monetary.h> #include <locale/localeinfo.h> #include <sys/syslog.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include "nldbl-compat.h" diff --git a/sysdeps/m68k/backtrace.c b/sysdeps/m68k/backtrace.c index ca7d25929e..982b4b82df 100644 --- a/sysdeps/m68k/backtrace.c +++ b/sysdeps/m68k/backtrace.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <dlfcn.h> #include <execinfo.h> #include <stdlib.h> diff --git a/sysdeps/mach/hurd/cthreads.c b/sysdeps/mach/hurd/cthreads.c index e213819a5a..695a243395 100644 --- a/sysdeps/mach/hurd/cthreads.c +++ b/sysdeps/mach/hurd/cthreads.c @@ -15,7 +15,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <errno.h> #include <stdlib.h> diff --git a/sysdeps/mach/hurd/dirstream.h b/sysdeps/mach/hurd/dirstream.h index 7edd23afd0..81220ad076 100644 --- a/sysdeps/mach/hurd/dirstream.h +++ b/sysdeps/mach/hurd/dirstream.h @@ -19,7 +19,7 @@ #define _DIRSTREAM_H 1 -#include <bits/libc-lock.h> +#include <libc-lock.h> /* Directory stream type. diff --git a/sysdeps/mach/hurd/bits/libc-lock.h b/sysdeps/mach/hurd/libc-lock.h index 63d3e8179a..b67a049bca 100644 --- a/sysdeps/mach/hurd/bits/libc-lock.h +++ b/sysdeps/mach/hurd/libc-lock.h @@ -16,8 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifndef _BITS_LIBC_LOCK_H -#define _BITS_LIBC_LOCK_H 1 +#ifndef _LIBC_LOCK_H +#define _LIBC_LOCK_H 1 #if (_LIBC - 0) || (_CTHREADS_ - 0) #include <cthreads.h> @@ -206,7 +206,7 @@ void *__libc_getspecific (__libc_key_t key); /* Hide the definitions which are only supposed to be used inside libc in a separate file. This file is not present in the installation! */ #ifdef _LIBC -# include <bits/libc-lockP.h> +# include <libc-lockP.h> #endif -#endif /* bits/libc-lock.h */ +#endif /* libc-lock.h */ diff --git a/sysdeps/mach/hurd/malloc-machine.h b/sysdeps/mach/hurd/malloc-machine.h index ba8b60dee8..1fdbd3de93 100644 --- a/sysdeps/mach/hurd/malloc-machine.h +++ b/sysdeps/mach/hurd/malloc-machine.h @@ -23,7 +23,7 @@ #undef thread_atfork_static #include <atomic.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> /* Assume hurd, with cthreads */ diff --git a/sysdeps/mach/bits/libc-lock.h b/sysdeps/mach/libc-lock.h index 9fad433c86..e1fc4596cd 100644 --- a/sysdeps/mach/bits/libc-lock.h +++ b/sysdeps/mach/libc-lock.h @@ -16,8 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifndef _BITS_LIBC_LOCK_H -#define _BITS_LIBC_LOCK_H 1 +#ifndef _LIBC_LOCK_H +#define _LIBC_LOCK_H 1 #ifdef _LIBC #include <cthreads.h> @@ -142,4 +142,4 @@ void *__libc_getspecific (__libc_key_t key); #define __rtld_lock_unlock_recursive __libc_lock_unlock #define __rtld_lock_lock_recursive __libc_lock_lock -#endif /* bits/libc-lock.h */ +#endif /* libc-lock.h */ diff --git a/sysdeps/nptl/bits/libc-lock.h b/sysdeps/nptl/libc-lock.h index 5599cf1734..4db5f1b41d 100644 --- a/sysdeps/nptl/bits/libc-lock.h +++ b/sysdeps/nptl/libc-lock.h @@ -16,8 +16,8 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef _BITS_LIBC_LOCK_H -#define _BITS_LIBC_LOCK_H 1 +#ifndef _LIBC_LOCK_H +#define _LIBC_LOCK_H 1 #include <pthread.h> #define __need_NULL @@ -184,4 +184,4 @@ extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer # include "libc-lockP.h" #endif -#endif /* bits/libc-lock.h */ +#endif /* libc-lock.h */ diff --git a/sysdeps/nptl/bits/libc-lockP.h b/sysdeps/nptl/libc-lockP.h index f55f6212ec..a64daca008 100644 --- a/sysdeps/nptl/bits/libc-lockP.h +++ b/sysdeps/nptl/libc-lockP.h @@ -16,8 +16,8 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef _BITS_LIBC_LOCKP_H -#define _BITS_LIBC_LOCKP_H 1 +#ifndef _LIBC_LOCKP_H +#define _LIBC_LOCKP_H 1 #include <pthread.h> #define __need_NULL @@ -433,4 +433,4 @@ weak_extern (pthread_setcancelstate) # endif #endif -#endif /* bits/libc-lockP.h */ +#endif /* libc-lockP.h */ diff --git a/sysdeps/nptl/malloc-machine.h b/sysdeps/nptl/malloc-machine.h index a3d10892bf..c0ec49ee56 100644 --- a/sysdeps/nptl/malloc-machine.h +++ b/sysdeps/nptl/malloc-machine.h @@ -23,7 +23,7 @@ #undef thread_atfork_static #include <atomic.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> __libc_lock_define (typedef, mutex_t) diff --git a/sysdeps/nptl/stdio-lock.h b/sysdeps/nptl/stdio-lock.h index 9406eaa045..51d123a1fc 100644 --- a/sysdeps/nptl/stdio-lock.h +++ b/sysdeps/nptl/stdio-lock.h @@ -19,7 +19,7 @@ #ifndef _STDIO_LOCK_H #define _STDIO_LOCK_H 1 -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <lowlevellock.h> diff --git a/sysdeps/posix/dirstream.h b/sysdeps/posix/dirstream.h index c7e1a5af5c..70cc77dd9c 100644 --- a/sysdeps/posix/dirstream.h +++ b/sysdeps/posix/dirstream.h @@ -20,7 +20,7 @@ #include <sys/types.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> /* Directory stream type. diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 31bb7e66dc..1ef3f20d98 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -58,7 +58,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include <sys/utsname.h> #include <unistd.h> #include <nsswitch.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <not-cancel.h> #include <nscd/nscd-client.h> #include <nscd/nscd_proto.h> diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c index 95b91abec4..84401a07d4 100644 --- a/sysdeps/posix/system.c +++ b/sysdeps/posix/system.c @@ -22,7 +22,7 @@ #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <sysdep-cancel.h> diff --git a/sysdeps/pthread/aio_suspend.c b/sysdeps/pthread/aio_suspend.c index 641eafb1bd..bfca6627f1 100644 --- a/sysdeps/pthread/aio_suspend.c +++ b/sysdeps/pthread/aio_suspend.c @@ -34,7 +34,7 @@ #include <stdlib.h> #include <sys/time.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <aio_misc.h> diff --git a/sysdeps/s390/s390-32/backtrace.c b/sysdeps/s390/s390-32/backtrace.c index 4e5e1feee6..5b5738cae7 100644 --- a/sysdeps/s390/s390-32/backtrace.c +++ b/sysdeps/s390/s390-32/backtrace.c @@ -17,7 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <dlfcn.h> #include <execinfo.h> #include <stddef.h> diff --git a/sysdeps/s390/s390-64/backtrace.c b/sysdeps/s390/s390-64/backtrace.c index 184a73741b..e4d7efe2a3 100644 --- a/sysdeps/s390/s390-64/backtrace.c +++ b/sysdeps/s390/s390-64/backtrace.c @@ -17,7 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <dlfcn.h> #include <execinfo.h> #include <stddef.h> diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c index 162606d7ab..f072fb3de7 100644 --- a/sysdeps/unix/sysv/linux/check_pf.c +++ b/sysdeps/unix/sysv/linux/check_pf.c @@ -32,7 +32,7 @@ #include <linux/rtnetlink.h> #include <not-cancel.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <atomic.h> #include <nscd/nscd-client.h> diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c index 04bf54e5ad..8ee55d9450 100644 --- a/sysdeps/unix/sysv/linux/if_index.c +++ b/sysdeps/unix/sysv/linux/if_index.c @@ -24,7 +24,7 @@ #include <net/if.h> #include <sys/socket.h> #include <sys/ioctl.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <not-cancel.h> #include "netlinkaccess.h" diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c index c00583ed0b..70b2a2d952 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c +++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <stdlib.h> #include <utmp.h> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c index 20f09cdef2..c8da99cea9 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c +++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <errno.h> #include <stdlib.h> #include <utmp.h> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c index e9b215e5e5..c640239d20 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c +++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c @@ -17,7 +17,7 @@ <http://www.gnu.org/licenses/>. */ #include <errno.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <utmp.h> #include "utmp-compat.h" diff --git a/sysdeps/unix/sysv/linux/shm-directory.c b/sysdeps/unix/sysv/linux/shm-directory.c index c1ef38a9ea..9c32051979 100644 --- a/sysdeps/unix/sysv/linux/shm-directory.c +++ b/sysdeps/unix/sysv/linux/shm-directory.c @@ -24,7 +24,7 @@ #include <stdio.h> #include <string.h> #include <sys/statfs.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> #include "linux_fsinfo.h" diff --git a/sysdeps/unix/sysv/linux/system.c b/sysdeps/unix/sysv/linux/system.c index 12d6d191d8..73833e6e13 100644 --- a/sysdeps/unix/sysv/linux/system.c +++ b/sysdeps/unix/sysv/linux/system.c @@ -21,7 +21,7 @@ #include <sysdep.h> #include <unistd.h> #include <sys/wait.h> -#include <bits/libc-lock.h> +#include <libc-lock.h> /* We have to and actually can handle cancelable system(). The big problem: we have to kill the child process if necessary. To do diff --git a/sysdeps/x86_64/backtrace.c b/sysdeps/x86_64/backtrace.c index 21448c8f1c..04a4e82436 100644 --- a/sysdeps/x86_64/backtrace.c +++ b/sysdeps/x86_64/backtrace.c @@ -17,7 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <bits/libc-lock.h> +#include <libc-lock.h> #include <dlfcn.h> #include <execinfo.h> #include <stdlib.h> |