[PATCH] i386: Basic definitions for i386-pda
[linux-2.6] / include / asm-i386 / percpu.h
1 #ifndef __ARCH_I386_PERCPU__
2 #define __ARCH_I386_PERCPU__
3
4 #ifndef __ASSEMBLY__
5 #include <asm-generic/percpu.h>
6 #else
7
8 /*
9  * PER_CPU finds an address of a per-cpu variable.
10  *
11  * Args:
12  *    var - variable name
13  *    cpu - 32bit register containing the current CPU number
14  *
15  * The resulting address is stored in the "cpu" argument.
16  *
17  * Example:
18  *    PER_CPU(cpu_gdt_descr, %ebx)
19  */
20 #ifdef CONFIG_SMP
21 #define PER_CPU(var, cpu) \
22         movl __per_cpu_offset(,cpu,4), cpu;     \
23         addl $per_cpu__/**/var, cpu;
24 #else /* ! SMP */
25 #define PER_CPU(var, cpu) \
26         movl $per_cpu__/**/var, cpu;
27 #endif  /* SMP */
28
29 #endif /* !__ASSEMBLY__ */
30
31 #endif /* __ARCH_I386_PERCPU__ */