mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 14:41:22 -05:00
While the GCC and Clang compilers already define __ASSEMBLER__ automatically when compiling assembly code, __ASSEMBLY__ is a macro that only gets defined by the Makefiles in the kernel. This can be very confusing when switching between userspace and kernelspace coding, or when dealing with uapi headers that rather should use __ASSEMBLER__ instead. So let's standardize now on the __ASSEMBLER__ macro that is provided by the compilers. This is a mostly mechanical patch (done with a simple "sed -i" statement), except for the following files where comments with mis-spelled macros were tweaked manually: arch/arm64/include/asm/stacktrace/frame.h arch/arm64/include/asm/kvm_ptrauth.h arch/arm64/include/asm/debug-monitors.h arch/arm64/include/asm/esr.h arch/arm64/include/asm/scs.h arch/arm64/include/asm/memory.h Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
30 lines
519 B
C
30 lines
519 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __ASM_CURRENT_H
|
|
#define __ASM_CURRENT_H
|
|
|
|
#include <linux/compiler.h>
|
|
|
|
#ifndef __ASSEMBLER__
|
|
|
|
struct task_struct;
|
|
|
|
/*
|
|
* We don't use read_sysreg() as we want the compiler to cache the value where
|
|
* possible.
|
|
*/
|
|
static __always_inline struct task_struct *get_current(void)
|
|
{
|
|
unsigned long sp_el0;
|
|
|
|
asm ("mrs %0, sp_el0" : "=r" (sp_el0));
|
|
|
|
return (struct task_struct *)sp_el0;
|
|
}
|
|
|
|
#define current get_current()
|
|
|
|
#endif /* __ASSEMBLER__ */
|
|
|
|
#endif /* __ASM_CURRENT_H */
|
|
|