linux/arch/x86/include/asm/current.h
<<
>>
Prefs
   1#ifndef _ASM_X86_CURRENT_H
   2#define _ASM_X86_CURRENT_H
   3
   4#ifdef CONFIG_X86_32
   5#include <linux/compiler.h>
   6#include <asm/percpu.h>
   7
   8struct task_struct;
   9
  10DECLARE_PER_CPU(struct task_struct *, current_task);
  11static __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
  21struct task_struct;
  22
  23static __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 /* _ASM_X86_CURRENT_H */
  40
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.