aboutsummaryrefslogtreecommitdiff
path: root/include/asm-i386/percpu.h
blob: a10e7c68ae9dcdc483345aea3510fc853da6e65b (plain)
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__ */