blob: c0ab102d11f60c1a7c64e439a176c044a9d3481a [file] [log] [blame]
Sam Ravnborgf5e706a2008-07-17 21:55:51 -07001#ifndef __ARCH_SPARC64_PERCPU__
2#define __ARCH_SPARC64_PERCPU__
3
4#include <linux/compiler.h>
5
6register unsigned long __local_per_cpu_offset asm("g5");
7
8#ifdef CONFIG_SMP
9
David S. Miller5a5488d2009-04-01 01:47:10 -070010#include <asm/trap_block.h>
11
Sam Ravnborgf5e706a2008-07-17 21:55:51 -070012extern void real_setup_per_cpu_areas(void);
13
Sam Ravnborgf5e706a2008-07-17 21:55:51 -070014#define __per_cpu_offset(__cpu) \
David S. Miller5a5488d2009-04-01 01:47:10 -070015 (trap_block[(__cpu)].__per_cpu_base)
Sam Ravnborgf5e706a2008-07-17 21:55:51 -070016#define per_cpu_offset(x) (__per_cpu_offset(x))
17
18#define __my_cpu_offset __local_per_cpu_offset
19
20#else /* ! SMP */
21
22#define real_setup_per_cpu_areas() do { } while (0)
23
24#endif /* SMP */
25
26#include <asm-generic/percpu.h>
27
28#endif /* __ARCH_SPARC64_PERCPU__ */