home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / x86 / include / asm / current.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  706 b   |  40 lines

  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.  
  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 /* _ASM_X86_CURRENT_H */
  40.