aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-i386/percpu.h
blob: 510ae1d3486c7c289b80e765af719aa80c166c94 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef __ARCH_I386_PERCPU__
#define __ARCH_I386_PERCPU__

#ifndef __ASSEMBLY__
#include <asm-generic/percpu.h>
#else

/*
 * PER_CPU finds an address of a per-cpu variable.
 *
 * Args:
 *    var - variable name
 *    cpu - 32bit register containing the current CPU number
 *
 * The resulting address is stored in the "cpu" argument.
 *
 * Example:
 *    PER_CPU(cpu_gdt_descr, %ebx)
 */
#ifdef CONFIG_SMP
#define PER_CPU(var, cpu) \
	movl __per_cpu_offset(,cpu,4), cpu;	\
	addl $per_cpu__/**/var, cpu;
#else /* ! SMP */
#define PER_CPU(var, cpu) \
	movl $per_cpu__/**/var, cpu;
#endif	/* SMP */

#endif /* !__ASSEMBLY__ */

#endif /* __ARCH_I386_PERCPU__ */