diff options
Diffstat (limited to 'include/asm-x86/desc_32.h')
-rw-r--r-- | include/asm-x86/desc_32.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/include/asm-x86/desc_32.h b/include/asm-x86/desc_32.h index bc5ca3453466..77f1e5a4ad7c 100644 --- a/include/asm-x86/desc_32.h +++ b/include/asm-x86/desc_32.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #include <asm/ldt.h> | 4 | #include <asm/ldt.h> |
5 | #include <asm/segment.h> | 5 | #include <asm/segment.h> |
6 | #include <asm/desc_defs.h> | ||
6 | 7 | ||
7 | #ifndef __ASSEMBLY__ | 8 | #ifndef __ASSEMBLY__ |
8 | 9 | ||
@@ -24,7 +25,7 @@ static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu) | |||
24 | } | 25 | } |
25 | 26 | ||
26 | extern struct desc_ptr idt_descr; | 27 | extern struct desc_ptr idt_descr; |
27 | extern struct desc_struct idt_table[]; | 28 | extern gate_desc idt_table[]; |
28 | extern void set_intr_gate(unsigned int irq, void * addr); | 29 | extern void set_intr_gate(unsigned int irq, void * addr); |
29 | 30 | ||
30 | static inline void pack_descriptor(__u32 *a, __u32 *b, | 31 | static inline void pack_descriptor(__u32 *a, __u32 *b, |
@@ -35,11 +36,11 @@ static inline void pack_descriptor(__u32 *a, __u32 *b, | |||
35 | (limit & 0x000f0000) | ((type & 0xff) << 8) | ((flags & 0xf) << 20); | 36 | (limit & 0x000f0000) | ((type & 0xff) << 8) | ((flags & 0xf) << 20); |
36 | } | 37 | } |
37 | 38 | ||
38 | static inline void pack_gate(__u32 *a, __u32 *b, | 39 | static inline void pack_gate(gate_desc *gate, |
39 | unsigned long base, unsigned short seg, unsigned char type, unsigned char flags) | 40 | unsigned long base, unsigned short seg, unsigned char type, unsigned char flags) |
40 | { | 41 | { |
41 | *a = (seg << 16) | (base & 0xffff); | 42 | gate->a = (seg << 16) | (base & 0xffff); |
42 | *b = (base & 0xffff0000) | ((type & 0xff) << 8) | (flags & 0xff); | 43 | gate->b = (base & 0xffff0000) | ((type & 0xff) << 8) | (flags & 0xff); |
43 | } | 44 | } |
44 | 45 | ||
45 | #define DESCTYPE_LDT 0x82 /* present, system, DPL-0, LDT */ | 46 | #define DESCTYPE_LDT 0x82 /* present, system, DPL-0, LDT */ |
@@ -139,9 +140,9 @@ static inline void native_load_tls(struct thread_struct *t, unsigned int cpu) | |||
139 | 140 | ||
140 | static inline void _set_gate(int gate, unsigned int type, void *addr, unsigned short seg) | 141 | static inline void _set_gate(int gate, unsigned int type, void *addr, unsigned short seg) |
141 | { | 142 | { |
142 | __u32 a, b; | 143 | gate_desc g; |
143 | pack_gate(&a, &b, (unsigned long)addr, seg, type, 0); | 144 | pack_gate(&g, (unsigned long)addr, seg, type, 0); |
144 | write_idt_entry(idt_table, gate, a, b); | 145 | write_idt_entry(idt_table, gate, g.a, g.b); |
145 | } | 146 | } |
146 | 147 | ||
147 | static inline void __set_tss_desc(unsigned int cpu, unsigned int entry, const void *addr) | 148 | static inline void __set_tss_desc(unsigned int cpu, unsigned int entry, const void *addr) |