1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __ARCH_SPARC64_PERCPU__ 3*4882a593Smuzhiyun #define __ARCH_SPARC64_PERCPU__ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/compiler.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #ifndef BUILD_VDSO 8*4882a593Smuzhiyun register unsigned long __local_per_cpu_offset asm("g5"); 9*4882a593Smuzhiyun #endif 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifdef CONFIG_SMP 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #include <asm/trap_block.h> 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #define __per_cpu_offset(__cpu) \ 16*4882a593Smuzhiyun (trap_block[(__cpu)].__per_cpu_base) 17*4882a593Smuzhiyun #define per_cpu_offset(x) (__per_cpu_offset(x)) 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define __my_cpu_offset __local_per_cpu_offset 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #else /* ! SMP */ 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #endif /* SMP */ 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #include <asm-generic/percpu.h> 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun #endif /* __ARCH_SPARC64_PERCPU__ */ 28