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 */
21register struct task_struct *current asm("r31");
22
23# define get_current()	current
24# endif /* __ASSEMBLY__ */
25
26#endif /* _ASM_MICROBLAZE_CURRENT_H */
27