2005-04-17 06:20:36 +08:00
|
|
|
#ifndef _X86_64_CURRENT_H
|
|
|
|
#define _X86_64_CURRENT_H
|
|
|
|
|
2008-03-23 16:01:56 +08:00
|
|
|
#if !defined(__ASSEMBLY__)
|
2005-04-17 06:20:36 +08:00
|
|
|
struct task_struct;
|
|
|
|
|
|
|
|
#include <asm/pda.h>
|
|
|
|
|
2008-03-23 16:01:56 +08:00
|
|
|
static inline struct task_struct *get_current(void)
|
|
|
|
{
|
|
|
|
struct task_struct *t = read_pda(pcurrent);
|
2005-04-17 06:20:36 +08:00
|
|
|
return t;
|
2008-03-23 16:01:56 +08:00
|
|
|
}
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
#define current get_current()
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
#ifndef ASM_OFFSET_H
|
2008-03-23 16:01:56 +08:00
|
|
|
#include <asm/asm-offsets.h>
|
2005-04-17 06:20:36 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#define GET_CURRENT(reg) movq %gs:(pda_pcurrent),reg
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* !(_X86_64_CURRENT_H) */
|