summaryrefslogtreecommitdiffstats
path: root/libpthread/linuxthreads/sysdeps
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2005-07-23 22:10:27 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2005-07-23 22:10:27 +0000
commit1d2230a7d275706c5f0de850e15527aae3744310 (patch)
tree55f15700b16f705aa953d5c4051b2e63ca72041a /libpthread/linuxthreads/sysdeps
parent6fa52ec791e030081b7102f50222a13af7fa0d49 (diff)
downloaduClibc-alpine-1d2230a7d275706c5f0de850e15527aae3744310.tar.bz2
uClibc-alpine-1d2230a7d275706c5f0de850e15527aae3744310.tar.xz
Merge from trunk.
Diffstat (limited to 'libpthread/linuxthreads/sysdeps')
-rw-r--r--libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h38
-rw-r--r--libpthread/linuxthreads/sysdeps/x86_64/tls.h9
2 files changed, 11 insertions, 36 deletions
diff --git a/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h b/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
index d1daef07a..db4c3790c 100644
--- a/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
+++ b/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
@@ -25,9 +25,8 @@
/* Fast locks (not abstract because mutexes and conditions aren't abstract). */
struct _pthread_fastlock
{
- long int __status; /* "Free" or "taken" or head of waiting list */
- int __spinlock; /* Used by compare_and_swap emulation. Also,
- adaptive SMP lock stores spin count here. */
+ long int __status; /* "Free" or "taken" or head of waiting list */
+ int __spinlock; /* For compare-and-swap emulation */
};
#ifndef _PTHREAD_DESCR_DEFINED
@@ -38,7 +37,7 @@ typedef struct _pthread_descr_struct *_pthread_descr;
/* Attributes for threads. */
-typedef struct __pthread_attr_s
+typedef struct
{
int __detachstate;
int __schedpolicy;
@@ -53,20 +52,10 @@ typedef struct __pthread_attr_s
/* Conditions (not abstract because of PTHREAD_COND_INITIALIZER */
-
-#ifdef __GLIBC_HAVE_LONG_LONG
-__extension__ typedef long long __pthread_cond_align_t;
-#else
-typedef long __pthread_cond_align_t;
-#endif
-
typedef struct
{
struct _pthread_fastlock __c_lock; /* Protect against concurrent access */
_pthread_descr __c_waiting; /* Threads waiting on this condition */
- char __padding[48 - sizeof (struct _pthread_fastlock)
- - sizeof (_pthread_descr) - sizeof (__pthread_cond_align_t)];
- __pthread_cond_align_t __align;
} pthread_cond_t;
@@ -104,7 +93,7 @@ typedef struct
typedef int pthread_once_t;
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K
+#ifdef __USE_UNIX98
/* Read-write locks. */
typedef struct _pthread_rwlock_t
{
@@ -126,25 +115,6 @@ typedef struct
} pthread_rwlockattr_t;
#endif
-#ifdef __USE_XOPEN2K
-/* POSIX spinlock data type. */
-typedef volatile int pthread_spinlock_t;
-
-/* POSIX barrier. */
-typedef struct {
- struct _pthread_fastlock __ba_lock; /* Lock to guarantee mutual exclusion */
- int __ba_required; /* Threads needed for completion */
- int __ba_present; /* Threads waiting */
- _pthread_descr __ba_waiting; /* Queue of waiting threads */
-} pthread_barrier_t;
-
-/* barrier attribute */
-typedef struct {
- int __pshared;
-} pthread_barrierattr_t;
-
-#endif
-
/* Thread identifiers */
typedef unsigned long int pthread_t;
diff --git a/libpthread/linuxthreads/sysdeps/x86_64/tls.h b/libpthread/linuxthreads/sysdeps/x86_64/tls.h
index 63feebdb2..d67275c10 100644
--- a/libpthread/linuxthreads/sysdeps/x86_64/tls.h
+++ b/libpthread/linuxthreads/sysdeps/x86_64/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. linuxthreads/x86-64 version.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 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
@@ -23,13 +23,18 @@
#ifndef __ASSEMBLER__
# include <pt-machine.h>
+# include <stdbool.h>
# include <stddef.h>
/* Type for the dtv. */
typedef union dtv
{
size_t counter;
- void *pointer;
+ struct
+ {
+ void *val;
+ bool is_static;
+ } pointer;
} dtv_t;