···1-/*2- * include/asm-sparc/current.h3 *4 * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation5 * Copyright (C) 2002 Pete Zaitcev (zaitcev@yahoo.com)06 *7 * Derived from "include/asm-s390/current.h" by8 * Martin Schwidefsky (schwidefsky@de.ibm.com)9 * Derived from "include/asm-i386/current.h"10- */11-#ifndef _ASM_CURRENT_H12-#define _ASM_CURRENT_H13-14-/*15- * At the sparc64 DaveM keeps current_thread_info in %g4.16- * We might want to consider doing the same to shave a few cycles.17- */1819#include <linux/thread_info.h>2021-struct task_struct;002223-/* Two stage process (inline + #define) for type-checking. */24-/* We also obfuscate get_current() to check if anyone used that by mistake. */0000025static inline struct task_struct *__get_current(void)26{27 return current_thread_info()->task;28}29#define current __get_current()03031-#endif /* !(_ASM_CURRENT_H) */
···1+/* include/asm-sparc/current.h02 *3 * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation4 * 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" by8 * Martin Schwidefsky (schwidefsky@de.ibm.com)9 * Derived from "include/asm-i386/current.h"10+*/11+#ifndef _SPARC_CURRENT_H12+#define _SPARC_CURRENT_H000001314#include <linux/thread_info.h>1516+#ifdef CONFIG_SPARC6417+register struct task_struct *current asm("g4");18+#endif1920+#ifdef CONFIG_SPARC3221+/* We might want to consider using %g4 like sparc64 to shave a few cycles.22+ *23+ * Two stage process (inline + #define) for type-checking.24+ * We also obfuscate get_current() to check if anyone used that by mistake.25+ */26+struct task_struct;27static inline struct task_struct *__get_current(void)28{29 return current_thread_info()->task;30}31#define current __get_current()32+#endif3334+#endif /* !(_SPARC_CURRENT_H) */