Merge commit 'v2.6.26' into x86/core
[pandora-kernel.git] / include / asm-x86 / current.h
1 #ifndef _X86_CURRENT_H
2 #define _X86_CURRENT_H
3
4 #ifdef CONFIG_X86_32
5 #include <linux/compiler.h>
6 #include <asm/percpu.h>
7
8 struct task_struct;
9
10 DECLARE_PER_CPU(struct task_struct *, current_task);
11 static __always_inline struct task_struct *get_current(void)
12 {
13         return x86_read_percpu(current_task);
14 }
15
16 #else /* X86_32 */
17
18 #ifndef __ASSEMBLY__
19 #include <asm/pda.h>
20
21 struct task_struct;
22
23 static __always_inline struct task_struct *get_current(void)
24 {
25         return read_pda(pcurrent);
26 }
27
28 #else /* __ASSEMBLY__ */
29
30 #include <asm/asm-offsets.h>
31 #define GET_CURRENT(reg) movq %gs:(pda_pcurrent),reg
32
33 #endif /* __ASSEMBLY__ */
34
35 #endif /* X86_32 */
36
37 #define current get_current()
38
39 #endif /* X86_CURRENT_H */