xref: /openbmc/linux/arch/sparc/include/asm/percpu_64.h (revision 48017e54)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2a439fe51SSam Ravnborg #ifndef __ARCH_SPARC64_PERCPU__
3a439fe51SSam Ravnborg #define __ARCH_SPARC64_PERCPU__
4a439fe51SSam Ravnborg 
5a439fe51SSam Ravnborg #include <linux/compiler.h>
6a439fe51SSam Ravnborg 
748017e54SPeter Zijlstra #ifndef BUILD_VDSO
8a439fe51SSam Ravnborg register unsigned long __local_per_cpu_offset asm("g5");
948017e54SPeter Zijlstra #endif
10a439fe51SSam Ravnborg 
11a439fe51SSam Ravnborg #ifdef CONFIG_SMP
12a439fe51SSam Ravnborg 
135a5488d3SDavid S. Miller #include <asm/trap_block.h>
145a5488d3SDavid S. Miller 
15a439fe51SSam Ravnborg #define __per_cpu_offset(__cpu) \
165a5488d3SDavid S. Miller 	(trap_block[(__cpu)].__per_cpu_base)
17a439fe51SSam Ravnborg #define per_cpu_offset(x) (__per_cpu_offset(x))
18a439fe51SSam Ravnborg 
19a439fe51SSam Ravnborg #define __my_cpu_offset __local_per_cpu_offset
20a439fe51SSam Ravnborg 
21a439fe51SSam Ravnborg #else /* ! SMP */
22a439fe51SSam Ravnborg 
23a439fe51SSam Ravnborg #endif	/* SMP */
24a439fe51SSam Ravnborg 
25a439fe51SSam Ravnborg #include <asm-generic/percpu.h>
26a439fe51SSam Ravnborg 
27a439fe51SSam Ravnborg #endif /* __ARCH_SPARC64_PERCPU__ */
28