mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-27 11:55:53 +00:00
6ddfee0e79
percpu_modcopy() is defined multiple times in arch files. However, the only user is module.c. Put a static definition into module.c and remove the definitions from the arch files. Signed-off-by: Ingo Molnar <mingo@elte.hu>
41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
#ifndef _ASM_POWERPC_PERCPU_H_
|
|
#define _ASM_POWERPC_PERCPU_H_
|
|
#ifdef __powerpc64__
|
|
#include <linux/compiler.h>
|
|
|
|
/*
|
|
* Same as asm-generic/percpu.h, except that we store the per cpu offset
|
|
* in the paca. Based on the x86-64 implementation.
|
|
*/
|
|
|
|
#ifdef CONFIG_SMP
|
|
|
|
#include <asm/paca.h>
|
|
|
|
#define __per_cpu_offset(cpu) (paca[cpu].data_offset)
|
|
#define __my_cpu_offset() get_paca()->data_offset
|
|
#define per_cpu_offset(x) (__per_cpu_offset(x))
|
|
|
|
/* var is in discarded region: offset to particular copy we want */
|
|
#define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu)))
|
|
#define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()))
|
|
#define __raw_get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, local_paca->data_offset))
|
|
|
|
extern void setup_per_cpu_areas(void);
|
|
|
|
#else /* ! SMP */
|
|
|
|
#define per_cpu(var, cpu) (*((void)(cpu), &per_cpu__##var))
|
|
#define __get_cpu_var(var) per_cpu__##var
|
|
#define __raw_get_cpu_var(var) per_cpu__##var
|
|
|
|
#endif /* SMP */
|
|
|
|
#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu__##name
|
|
|
|
#else
|
|
#include <asm-generic/percpu.h>
|
|
#endif
|
|
|
|
#endif /* _ASM_POWERPC_PERCPU_H_ */
|