| /* | 
 |  * include/asm-v850/current.h -- Current task | 
 |  * | 
 |  *  Copyright (C) 2001,02  NEC Corporation | 
 |  *  Copyright (C) 2001,02  Miles Bader <miles@gnu.org> | 
 |  * | 
 |  * This file is subject to the terms and conditions of the GNU General | 
 |  * Public License.  See the file COPYING in the main directory of this | 
 |  * archive for more details. | 
 |  * | 
 |  * Written by Miles Bader <miles@gnu.org> | 
 |  */ | 
 |  | 
 | #ifndef __V850_CURRENT_H__ | 
 | #define __V850_CURRENT_H__ | 
 |  | 
 | #ifndef __ASSEMBLY__ /* <linux/thread_info.h> is not asm-safe.  */ | 
 | #include <linux/thread_info.h> | 
 | #endif | 
 |  | 
 | #include <asm/macrology.h> | 
 |  | 
 |  | 
 | /* Register used to hold the current task pointer while in the kernel. | 
 |    Any `call clobbered' register without a special meaning should be OK, | 
 |    but check asm/v850/kernel/entry.S to be sure.  */ | 
 | #define CURRENT_TASK_REGNUM	16 | 
 | #define CURRENT_TASK 		macrology_paste (r, CURRENT_TASK_REGNUM) | 
 |  | 
 |  | 
 | #ifdef __ASSEMBLY__ | 
 |  | 
 | /* Put a pointer to the current task structure into REG.  */ | 
 | #define GET_CURRENT_TASK(reg)						\ | 
 | 	GET_CURRENT_THREAD(reg);					\ | 
 | 	ld.w	TI_TASK[reg], reg | 
 |  | 
 | #else /* !__ASSEMBLY__ */ | 
 |  | 
 | /* A pointer to the current task.  */ | 
 | register struct task_struct *current					\ | 
 |    __asm__ (macrology_stringify (CURRENT_TASK)); | 
 |  | 
 | #endif /* __ASSEMBLY__ */ | 
 |  | 
 |  | 
 | #endif /* _V850_CURRENT_H */ |