1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (C) 2008-2009 Michal Simek <monstr@monstr.eu> 4 * Copyright (C) 2008-2009 PetaLogix 5 * Copyright (C) 2006 Atmark Techno, Inc. 6 */ 7 8 #ifndef _ASM_MICROBLAZE_CURRENT_H 9 #define _ASM_MICROBLAZE_CURRENT_H 10 11 /* 12 * Register used to hold the current task pointer while in the kernel. 13 * Any `call clobbered' register without a special meaning should be OK, 14 * but check asm/microblaze/kernel/entry.S to be sure. 15 */ 16 #define CURRENT_TASK r31 17 # ifndef __ASSEMBLY__ 18 /* 19 * Dedicate r31 to keeping the current task pointer 20 */ 21 register struct task_struct *current asm("r31"); 22 23 # define get_current() current 24 # endif /* __ASSEMBLY__ */ 25 26 #endif /* _ASM_MICROBLAZE_CURRENT_H */ 27