usbfs: don't store bad pointers in registration
[linux-2.6/mini2440.git] / include / asm-x86 / current.h
blob7515c19d498884d770e901740eb506d5f96c4807
1 #ifndef _X86_CURRENT_H
2 #define _X86_CURRENT_H
4 #ifdef CONFIG_X86_32
5 #include <linux/compiler.h>
6 #include <asm/percpu.h>
8 struct task_struct;
10 DECLARE_PER_CPU(struct task_struct *, current_task);
11 static __always_inline struct task_struct *get_current(void)
13 return x86_read_percpu(current_task);
16 #else /* X86_32 */
18 #ifndef __ASSEMBLY__
19 #include <asm/pda.h>
21 struct task_struct;
23 static __always_inline struct task_struct *get_current(void)
25 return read_pda(pcurrent);
28 #else /* __ASSEMBLY__ */
30 #include <asm/asm-offsets.h>
31 #define GET_CURRENT(reg) movq %gs:(pda_pcurrent),reg
33 #endif /* __ASSEMBLY__ */
35 #endif /* X86_32 */
37 #define current get_current()
39 #endif /* X86_CURRENT_H */