#ifndef __ARCH_I386_PERCPU__ #define __ARCH_I386_PERCPU__ #ifndef __ASSEMBLY__ #include #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__ */