GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / parisc / include / asm / current.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ASM_PARISC_CURRENT_H
3 #define _ASM_PARISC_CURRENT_H
4
5 #ifndef __ASSEMBLY__
6 struct task_struct;
7
8 static __always_inline struct task_struct *get_current(void)
9 {
10         struct task_struct *ts;
11
12         /* do not use mfctl() macro as it is marked volatile */
13         asm( "mfctl %%cr30,%0" : "=r" (ts) );
14         return ts;
15 }
16
17 #define current get_current()
18
19 #endif /* __ASSEMBLY__ */
20
21 #endif /* _ASM_PARISC_CURRENT_H */