current.h 952 B

1234567891011121314151617181920212223242526272829303132333435
  1. /* include/asm/current.h
  2. *
  3. * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
  4. * Copyright (C) 2002 Pete Zaitcev (zaitcev@yahoo.com)
  5. * Copyright (C) 2007 David S. Miller (davem@davemloft.net)
  6. *
  7. * Derived from "include/asm-s390/current.h" by
  8. * Martin Schwidefsky (schwidefsky@de.ibm.com)
  9. * Derived from "include/asm-i386/current.h"
  10. */
  11. #ifndef _SPARC_CURRENT_H
  12. #define _SPARC_CURRENT_H
  13. #include <linux/thread_info.h>
  14. #ifdef CONFIG_SPARC64
  15. register struct task_struct *current asm("g4");
  16. #endif
  17. #ifdef CONFIG_SPARC32
  18. /* We might want to consider using %g4 like sparc64 to shave a few cycles.
  19. *
  20. * Two stage process (inline + #define) for type-checking.
  21. * We also obfuscate get_current() to check if anyone used that by mistake.
  22. */
  23. struct task_struct;
  24. static inline struct task_struct *__get_current(void)
  25. {
  26. return current_thread_info()->task;
  27. }
  28. #define current __get_current()
  29. #endif
  30. #endif /* !(_SPARC_CURRENT_H) */