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 / powerpc / include / asm / current.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  835 b   |  41 lines

  1. #ifndef _ASM_POWERPC_CURRENT_H
  2. #define _ASM_POWERPC_CURRENT_H
  3. #ifdef __KERNEL__
  4.  
  5. /*
  6.  * This program is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public License
  8.  * as published by the Free Software Foundation; either version
  9.  * 2 of the License, or (at your option) any later version.
  10.  */
  11.  
  12. struct task_struct;
  13.  
  14. #ifdef __powerpc64__
  15. #include <linux/stddef.h>
  16. #include <asm/paca.h>
  17.  
  18. static inline struct task_struct *get_current(void)
  19. {
  20.     struct task_struct *task;
  21.  
  22.     __asm__ __volatile__("ld %0,%1(13)"
  23.     : "=r" (task)
  24.     : "i" (offsetof(struct paca_struct, __current)));
  25.  
  26.     return task;
  27. }
  28. #define current    get_current()
  29.  
  30. #else
  31.  
  32. /*
  33.  * We keep `current' in r2 for speed.
  34.  */
  35. register struct task_struct *current asm ("r2");
  36.  
  37. #endif
  38.  
  39. #endif /* __KERNEL__ */
  40. #endif /* _ASM_POWERPC_CURRENT_H */
  41.