current.h 991 B

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