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