2008-07-28 05:00:59 +08:00
|
|
|
/* include/asm/current.h
|
2005-04-17 06:20:36 +08:00
|
|
|
*
|
|
|
|
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
|
|
|
|
* Copyright (C) 2002 Pete Zaitcev (zaitcev@yahoo.com)
|
2007-11-16 19:12:56 +08:00
|
|
|
* Copyright (C) 2007 David S. Miller (davem@davemloft.net)
|
2005-04-17 06:20:36 +08:00
|
|
|
*
|
|
|
|
* Derived from "include/asm-s390/current.h" by
|
|
|
|
* Martin Schwidefsky (schwidefsky@de.ibm.com)
|
|
|
|
* Derived from "include/asm-i386/current.h"
|
2007-11-16 19:12:56 +08:00
|
|
|
*/
|
|
|
|
#ifndef _SPARC_CURRENT_H
|
|
|
|
#define _SPARC_CURRENT_H
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
#include <linux/thread_info.h>
|
|
|
|
|
2007-11-16 19:12:56 +08:00
|
|
|
#ifdef CONFIG_SPARC64
|
|
|
|
register struct task_struct *current asm("g4");
|
|
|
|
#endif
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2007-11-16 19:12:56 +08:00
|
|
|
#ifdef CONFIG_SPARC32
|
|
|
|
/* We might want to consider using %g4 like sparc64 to shave a few cycles.
|
|
|
|
*
|
|
|
|
* Two stage process (inline + #define) for type-checking.
|
|
|
|
* We also obfuscate get_current() to check if anyone used that by mistake.
|
|
|
|
*/
|
|
|
|
struct task_struct;
|
2005-04-17 06:20:36 +08:00
|
|
|
static inline struct task_struct *__get_current(void)
|
|
|
|
{
|
|
|
|
return current_thread_info()->task;
|
|
|
|
}
|
|
|
|
#define current __get_current()
|
2007-11-16 19:12:56 +08:00
|
|
|
#endif
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2007-11-16 19:12:56 +08:00
|
|
|
#endif /* !(_SPARC_CURRENT_H) */
|