/* SPDX-License-Identifier: GPL-2.0 */1/* include/asm/current.h2*3* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation4* Copyright (C) 2002 Pete Zaitcev ([email protected])5* Copyright (C) 2007 David S. Miller ([email protected])6*7* Derived from "include/asm-s390/current.h" by8* Martin Schwidefsky ([email protected])9* Derived from "include/asm-i386/current.h"10*/11#ifndef _SPARC_CURRENT_H12#define _SPARC_CURRENT_H1314#include <linux/thread_info.h>1516#ifdef CONFIG_SPARC6417register 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*/26struct task_struct;27static inline struct task_struct *__get_current(void)28{29return current_thread_info()->task;30}31#define current __get_current()32#endif3334#endif /* !(_SPARC_CURRENT_H) */353637