]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - nptl/pthreadP.h
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
[thirdparty/glibc.git] / nptl / pthreadP.h
index 21ce6fe0b7e7143363c3ee307f774c6e06ed3f47..24168146fa3742d267af0043df219cf6cf13bf19 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -31,7 +31,6 @@
 #include <internaltypes.h>
 #include <pthread-functions.h>
 #include <atomic.h>
-#include <kernel-features.h>
 
 
 /* Atomic operations on TLS memory.  */
 #endif
 
 
-/* Magic cookie representing robust mutex with dead owner.  */
-#define PTHREAD_MUTEX_INCONSISTENT     INT_MAX
-/* Magic cookie representing not recoverable robust mutex.  */
-#define PTHREAD_MUTEX_NOTRECOVERABLE   (INT_MAX - 1)
-
-
-/* Internal mutex type value.  */
-enum
-{
-  PTHREAD_MUTEX_KIND_MASK_NP = 3,
-  PTHREAD_MUTEX_ROBUST_NORMAL_NP = 16,
-  PTHREAD_MUTEX_ROBUST_RECURSIVE_NP
-  = PTHREAD_MUTEX_ROBUST_NORMAL_NP | PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP
-  = PTHREAD_MUTEX_ROBUST_NORMAL_NP | PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP
-  = PTHREAD_MUTEX_ROBUST_NORMAL_NP | PTHREAD_MUTEX_ADAPTIVE_NP,
-  PTHREAD_MUTEX_PRIO_INHERIT_NP = 32,
-  PTHREAD_MUTEX_PI_NORMAL_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_NORMAL,
-  PTHREAD_MUTEX_PI_RECURSIVE_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_PI_ERRORCHECK_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_PI_ADAPTIVE_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ADAPTIVE_NP,
-  PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_NORMAL_NP,
-  PTHREAD_MUTEX_PI_ROBUST_RECURSIVE_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_RECURSIVE_NP,
-  PTHREAD_MUTEX_PI_ROBUST_ERRORCHECK_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP,
-  PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP,
-  PTHREAD_MUTEX_PRIO_PROTECT_NP = 64,
-  PTHREAD_MUTEX_PP_NORMAL_NP
-  = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_NORMAL,
-  PTHREAD_MUTEX_PP_RECURSIVE_NP
-  = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_PP_ERRORCHECK_NP
-  = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_PP_ADAPTIVE_NP
-  = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_ADAPTIVE_NP
-};
-
-/* Ceiling in __data.__lock.  __data.__lock is signed, so don't
-   use the MSB bit in there, but in the mask also include that bit,
-   so that the compiler can optimize & PTHREAD_MUTEX_PRIO_CEILING_MASK
-   masking if the value is then shifted down by
-   PTHREAD_MUTEX_PRIO_CEILING_SHIFT.  */
-#define PTHREAD_MUTEX_PRIO_CEILING_SHIFT       19
-#define PTHREAD_MUTEX_PRIO_CEILING_MASK                0xfff80000
-
-
-/* Flags in mutex attr.  */
-#define PTHREAD_MUTEXATTR_PROTOCOL_SHIFT       28
-#define PTHREAD_MUTEXATTR_PROTOCOL_MASK                0x30000000
-#define PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT   12
-#define PTHREAD_MUTEXATTR_PRIO_CEILING_MASK    0x00fff000
-#define PTHREAD_MUTEXATTR_FLAG_ROBUST          0x40000000
-#define PTHREAD_MUTEXATTR_FLAG_PSHARED         0x80000000
-#define PTHREAD_MUTEXATTR_FLAG_BITS \
-  (PTHREAD_MUTEXATTR_FLAG_ROBUST | PTHREAD_MUTEXATTR_FLAG_PSHARED \
-   | PTHREAD_MUTEXATTR_PROTOCOL_MASK | PTHREAD_MUTEXATTR_PRIO_CEILING_MASK)
-
-
-/* Bits used in robust mutex implementation.  */
-#define FUTEX_WAITERS          0x80000000
-#define FUTEX_OWNER_DIED       0x40000000
-#define FUTEX_TID_MASK         0x3fffffff
-
-
 /* Internal variables.  */
 
 
@@ -160,19 +87,6 @@ hidden_proto (__pthread_keys)
 /* Number of threads running.  */
 extern unsigned int __nptl_nthreads attribute_hidden;
 
-#ifndef __ASSUME_SET_ROBUST_LIST
-/* Negative if we do not have the system call and we can use it.  */
-extern int __set_robust_list_avail attribute_hidden;
-#endif
-
-/* Thread Priority Protection.  */
-extern int __sched_fifo_min_prio attribute_hidden;
-extern int __sched_fifo_max_prio attribute_hidden;
-extern void __init_sched_fifo_prio (void) attribute_hidden;
-extern int __pthread_tpp_change_priority (int prev_prio, int new_prio)
-     attribute_hidden;
-extern int __pthread_current_priority (void) attribute_hidden;
-
 /* The library can run in debugging mode where it performs a lot more
    tests.  */
 extern int __pthread_debug attribute_hidden;
@@ -543,25 +457,10 @@ extern void __nptl_deallocate_tsd (void) attribute_hidden;
 
 extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden;
 
-extern void __free_stack_cache (void) attribute_hidden;
-
-extern void __wait_lookup_done (void) attribute_hidden;
-
 #ifdef SHARED
 # define PTHREAD_STATIC_FN_REQUIRE(name)
 #else
 # define PTHREAD_STATIC_FN_REQUIRE(name) __asm (".globl " #name);
 #endif
 
-
-#ifndef __NR_set_robust_list
-/* XXX For the time being...  Once we can rely on the kernel headers
-   having the definition remove these lines.  */
-# if defined __i386__
-#  define __NR_set_robust_list  311
-# elif defined __x86_64__
-#  define __NR_set_robust_list  273
-# endif
-#endif
-
 #endif /* pthreadP.h */