summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-03-19 00:47:53 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-03-19 00:47:53 +0100
commit1efaba2cd9eb0c5af4617c5be01a6b5e96d7d8a0 (patch)
tree02c0f399da54477fb9d042d28ca009ed8aca6f84 /sysdeps
parent332c0bf4bca963ee6f104634349546864ecf62e5 (diff)
Remove bits/pt-atomic.h
* pthread/pt-create.c: Include <atomic.h> instead of <bits/pt-atomic.h>. (__pthread_total): Change type from __atomic_t to unsigned int. (__pthread_create_internal): Use atomic_increment and atomic_decrement instead of __atomic_inc and __atomic_dec. * pthread/pt-dealloc.c: Include <atomic.h> instead of <bits/pt-atomic.h>. (__pthread_dealloc): Use atomic_decrement_and_test instead of __atomic_dec_and_test. * pthread/pt-exit.c: Include <atomic.h> instead of <bits/pt-atomic.h>. (__pthread_exit): Use atomic_decrement_and_test instead of __atomic_dec_and_test. * pthread/pt-internal.h: Include <atomic.h> instead of <bits/pt-atomic.h>. (struct __pthread): Use unsigned int type for nr_refs field instead of __atomic_t. (__pthread_total): Use unsigned int type instead of nr_refs.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/bits/pt-atomic.h65
1 files changed, 0 insertions, 65 deletions
diff --git a/sysdeps/i386/bits/pt-atomic.h b/sysdeps/i386/bits/pt-atomic.h
deleted file mode 100644
index fe5ded5..0000000
--- a/sysdeps/i386/bits/pt-atomic.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Atomic operations. i386 version.
- Copyright (C) 2000-2018 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 Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_ATOMIC_H
-#define _BITS_ATOMIC_H 1
-
-typedef __volatile int __atomic_t;
-
-static inline void
-__atomic_inc (__atomic_t *__var)
-{
- __asm__ __volatile ("lock; incl %0" : "=m" (*__var) : "m" (*__var));
-}
-
-static inline void
-__atomic_dec (__atomic_t *__var)
-{
- __asm__ __volatile ("lock; decl %0" : "=m" (*__var) : "m" (*__var));
-}
-
-static inline int
-__atomic_dec_and_test (__atomic_t *__var)
-{
- unsigned char __ret;
-
- __asm__ __volatile ("lock; decl %0; sete %1"
- : "=m" (*__var), "=qm" (__ret) : "m" (*__var));
- return __ret != 0;
-}
-
-/* We assume that an __atomicptr_t is only used for pointers to
- word-aligned objects, and use the lowest bit for a simple lock. */
-typedef __volatile int * __atomicptr_t;
-
-/* Actually we don't implement that yet, and assume that we run on
- something that has the i486 instruction set. */
-static inline int
-__atomicptr_compare_and_swap (__atomicptr_t *__ptr, void *__oldval,
- void * __newval)
-{
- char __ret;
- int __dummy;
-
- __asm__ __volatile ("lock; cmpxchgl %3, %1; sete %0"
- : "=q" (__ret), "=m" (*__ptr), "=a" (__dummy)
- : "r" (__newval), "m" (*__ptr), "a" (__oldval));
- return __ret;
-}
-
-#endif