diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-06-09 15:42:36 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-06-12 08:01:58 +0200 |
commit | 7b0c74ffb085656d67554102857224223ee03f88 (patch) | |
tree | d2cf69f695da218e67c6c5cb7d26f82c3fc967be /cpukit/score/cpu/i386/rtems/score/cpu.h | |
parent | i386: Move _CPU_Context_Initialize() (diff) | |
download | rtems-7b0c74ffb085656d67554102857224223ee03f88.tar.bz2 |
i386: Support thread-local storage (TLS)
Update #2468.
Diffstat (limited to '')
-rw-r--r-- | cpukit/score/cpu/i386/rtems/score/cpu.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/cpukit/score/cpu/i386/rtems/score/cpu.h b/cpukit/score/cpu/i386/rtems/score/cpu.h index 64f049ed0b..f78149c24b 100644 --- a/cpukit/score/cpu/i386/rtems/score/cpu.h +++ b/cpukit/score/cpu/i386/rtems/score/cpu.h @@ -122,9 +122,11 @@ extern "C" { #define I386_CONTEXT_CONTROL_EBX_OFFSET 12 #define I386_CONTEXT_CONTROL_ESI_OFFSET 16 #define I386_CONTEXT_CONTROL_EDI_OFFSET 20 +#define I386_CONTEXT_CONTROL_GS_0_OFFSET 24 +#define I386_CONTEXT_CONTROL_GS_1_OFFSET 28 #ifdef RTEMS_SMP - #define I386_CONTEXT_CONTROL_IS_EXECUTING_OFFSET 24 + #define I386_CONTEXT_CONTROL_IS_EXECUTING_OFFSET 32 #endif /* structures */ @@ -136,12 +138,13 @@ extern "C" { */ typedef struct { - uint32_t eflags; /* extended flags register */ - void *esp; /* extended stack pointer register */ - void *ebp; /* extended base pointer register */ - uint32_t ebx; /* extended bx register */ - uint32_t esi; /* extended source index register */ - uint32_t edi; /* extended destination index flags register */ + uint32_t eflags; /* extended flags register */ + void *esp; /* extended stack pointer register */ + void *ebp; /* extended base pointer register */ + uint32_t ebx; /* extended bx register */ + uint32_t esi; /* extended source index register */ + uint32_t edi; /* extended destination index flags register */ + segment_descriptors gs; /* gs segment descriptor */ #ifdef RTEMS_SMP volatile bool is_executing; #endif |