summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-09-19 23:52:28 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-09-19 23:52:28 +0200
commit4c55be4204e998b57577b2c065cc876aa43da590 (patch)
tree284c195487c6837a0b71a1f86088b1410a9d32aa
parent2f04e8262d2e1b3c7d5f97e5558ed013bd49aa80 (diff)
parentd3997d502fbdc1fd6df8c66e8ce2b5b71212c177 (diff)
Merge commit 'refs/top-bases/tschwinge/Roger_Whittaker' into tschwinge/Roger_Whittaker
-rw-r--r--sysdeps/mach/hurd/i386/tls.h38
-rw-r--r--sysdeps/mach/hurd/tls.h25
2 files changed, 38 insertions, 25 deletions
diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h
index 3fc3e2cfaa..00b611e903 100644
--- a/sysdeps/mach/hurd/i386/tls.h
+++ b/sysdeps/mach/hurd/i386/tls.h
@@ -23,6 +23,44 @@
/* Some things really need not be machine-dependent. */
#include <sysdeps/mach/hurd/tls.h>
+
+#ifndef __ASSEMBLER__
+/* Type for the dtv. */
+typedef union dtv
+{
+ size_t counter;
+ struct
+ {
+ void *val;
+ bool is_static;
+ } pointer;
+} dtv_t;
+
+
+/* Type of the TCB. */
+typedef struct
+{
+ void *tcb; /* Points to this structure. */
+ dtv_t *dtv; /* Vector of pointers to TLS data. */
+ thread_t self; /* This thread's control port. */
+ int multiple_threads;
+ uintptr_t sysinfo;
+ uintptr_t stack_guard;
+ uintptr_t pointer_guard;
+ int gscope_flag;
+ int private_futex;
+ /* Reservation of some values for the TM ABI. */
+ void *__private_tm[4];
+ /* GCC split stack support. */
+ void *__private_ss;
+
+ /* Keep this field last */
+ mach_port_t reply_port; /* This thread's reply port. */
+ struct hurd_sigstate *_hurd_sigstate;
+} tcbhead_t;
+#endif
+
+
/* The TCB can have any size and the memory following the address the
thread pointer points to is unspecified. Allocate the TCB there. */
#define TLS_TCB_AT_TP 1
diff --git a/sysdeps/mach/hurd/tls.h b/sysdeps/mach/hurd/tls.h
index a2fb4d4f0c..487c84ae16 100644
--- a/sysdeps/mach/hurd/tls.h
+++ b/sysdeps/mach/hurd/tls.h
@@ -29,31 +29,6 @@
# include <mach.h>
-/* Type for the dtv. */
-typedef union dtv
-{
- size_t counter;
- struct
- {
- void *val;
- bool is_static;
- } pointer;
-} dtv_t;
-
-
-/* Type of the TCB. */
-typedef struct
-{
- void *tcb; /* Points to this structure. */
- dtv_t *dtv; /* Vector of pointers to TLS data. */
- thread_t self; /* This thread's control port. */
-
- /* Keep this field last */
- mach_port_t reply_port; /* This thread's reply port. */
- struct hurd_sigstate *_hurd_sigstate;
-} tcbhead_t;
-
-
/* This is the size of the initial TCB. */
# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)