1 /* 2 * Copyright (C) 2008-2009 Michal Simek <monstr@monstr.eu> 3 * Copyright (C) 2008-2009 PetaLogix 4 * Copyright (C) 2006 Atmark Techno, Inc. 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file "COPYING" in the main directory of this archive 8 * for more details. 9 */ 10 11 #ifndef _ASM_MICROBLAZE_CURRENT_H 12 #define _ASM_MICROBLAZE_CURRENT_H 13 14 /* 15 * Register used to hold the current task pointer while in the kernel. 16 * Any `call clobbered' register without a special meaning should be OK, 17 * but check asm/microblaze/kernel/entry.S to be sure. 18 */ 19 #define CURRENT_TASK r31 20 # ifndef __ASSEMBLY__ 21 /* 22 * Dedicate r31 to keeping the current task pointer 23 */ 24 register struct task_struct *current asm("r31"); 25 26 # define get_current() current 27 # endif /* __ASSEMBLY__ */ 28 29 #endif /* _ASM_MICROBLAZE_CURRENT_H */ 30