diff options
Diffstat (limited to 'arch/arm/mach-vexpress/include/mach/smp.h')
-rw-r--r-- | arch/arm/mach-vexpress/include/mach/smp.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/mach-vexpress/include/mach/smp.h b/arch/arm/mach-vexpress/include/mach/smp.h new file mode 100644 index 000000000000..72a9621ed087 --- /dev/null +++ b/arch/arm/mach-vexpress/include/mach/smp.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #ifndef __MACH_SMP_H | ||
2 | #define __MACH_SMP_H | ||
3 | |||
4 | #include <asm/hardware/gic.h> | ||
5 | |||
6 | #define hard_smp_processor_id() \ | ||
7 | ({ \ | ||
8 | unsigned int cpunum; \ | ||
9 | __asm__("mrc p15, 0, %0, c0, c0, 5" \ | ||
10 | : "=r" (cpunum)); \ | ||
11 | cpunum &= 0x0F; \ | ||
12 | }) | ||
13 | |||
14 | /* | ||
15 | * We use IRQ1 as the IPI | ||
16 | */ | ||
17 | static inline void smp_cross_call(const struct cpumask *mask) | ||
18 | { | ||
19 | gic_raise_softirq(mask, 1); | ||
20 | } | ||
21 | #endif | ||