summaryrefslogtreecommitdiffstats
path: root/include/asm-x86/desc.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2008-01-30 13:31:51 +0100
committerIngo Molnar <mingo@elte.hu>2008-01-30 13:31:51 +0100
commit1bd5718ce58fb49ac158653380fa200f4759daad (patch)
tree51769d5394214fe0bb6affeb9b9ae33c447ffa73 /include/asm-x86/desc.h
parent1eeaed7679eab3666d2d8c964d060c2169b3813b (diff)
x86: x86 TLS desc_struct cleanup
This cleans up the TLS code to use struct desc_struct and to separate the encoding and installation magic from the interface wrappers. Signed-off-by: Roland McGrath <roland@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/desc.h')
-rw-r--r--include/asm-x86/desc.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/include/asm-x86/desc.h b/include/asm-x86/desc.h
index e17581ad882..5b6a05d3a77 100644
--- a/include/asm-x86/desc.h
+++ b/include/asm-x86/desc.h
@@ -7,7 +7,8 @@
#include <asm/mmu.h>
#include <linux/smp.h>
-static inline void fill_ldt(struct desc_struct *desc, struct user_desc *info)
+static inline void fill_ldt(struct desc_struct *desc,
+ const struct user_desc *info)
{
desc->limit0 = info->limit & 0x0ffff;
desc->base0 = info->base_addr & 0x0000ffff;
@@ -275,10 +276,16 @@ static inline void load_LDT(mm_context_t *pc)
preempt_enable();
}
-static inline unsigned long get_desc_base(struct desc_struct *desc)
+static inline unsigned long get_desc_base(const struct desc_struct *desc)
{
return desc->base0 | ((desc->base1) << 16) | ((desc->base2) << 24);
}
+
+static inline unsigned long get_desc_limit(const struct desc_struct *desc)
+{
+ return desc->limit0 | (desc->limit << 16);
+}
+
static inline void _set_gate(int gate, unsigned type, void *addr,
unsigned dpl, unsigned ist, unsigned seg)
{