summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.topdeps2
-rw-r--r--.topmsg24
-rw-r--r--sysdeps/mach/hurd/i386/tls.h34
-rw-r--r--sysdeps/mach/hurd/tls.h21
4 files changed, 48 insertions, 33 deletions
diff --git a/.topdeps b/.topdeps
index df7c3c6e56..180b47c18b 100644
--- a/.topdeps
+++ b/.topdeps
@@ -1 +1 @@
-9a869d822025be8e43b78234997b10bf0cf9d859
+baseline
diff --git a/.topmsg b/.topmsg
index dd6634c886..123198f38f 100644
--- a/.topmsg
+++ b/.topmsg
@@ -1,16 +1,18 @@
-Subject: Baseline for our topic branches.
+From upstream git:
----
+commit 9f2a4fbc3c3265227f1493469ad67a81a786c3b1
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Wed Apr 16 23:43:28 2014 +0200
-This need not strictly be a TopGit branch, but it is for easy synchronization
-between different machines.
+ hurd: Move dtv, dtv_t, tcbhead_t declaration to per-arch file.
-As the baseline is merged into the topic branches, it is forward-only.
-To advance it:
+commit 3c799e913168a84197c08e62d47be666329308e0
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Wed Apr 16 23:45:36 2014 +0200
- $ echo [SHA1] > .topdeps
- $ git commit -m Advance. -- .topdeps
- $ tg update
-
----
+ hurd: Add i386 fields to TLS structure
+
+ * sysdeps/mach/hurd/i386/tls.h (tcbhead_t): Add multiple_threads,
+ sysinfo, stack_guard, pointer_guard, gscope_flag, private_futex,
+ __private_tm, __private_ss fields.
diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h
index 3f84300206..6432aedcec 100644
--- a/sysdeps/mach/hurd/i386/tls.h
+++ b/sysdeps/mach/hurd/i386/tls.h
@@ -23,6 +23,40 @@
/* 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;
+} 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 dbe73f5035..3b8b713170 100644
--- a/sysdeps/mach/hurd/tls.h
+++ b/sysdeps/mach/hurd/tls.h
@@ -27,27 +27,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. */
-} tcbhead_t;
-
-
/* This is the size of the initial TCB. */
# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)