1/* linux/arch/arm/mach-s5pv310/include/mach/smp.h 2 * 3 * Cloned from arch/arm/mach-realview/include/mach/smp.h 4*/ 5 6#ifndef ASM_ARCH_SMP_H 7#define ASM_ARCH_SMP_H __FILE__ 8 9#include <asm/hardware/gic.h> 10 11extern void __iomem *gic_cpu_base_addr; 12 13#define hard_smp_processor_id() \ 14 ({ \ 15 unsigned int cpunum; \ 16 __asm__("mrc p15, 0, %0, c0, c0, 5" \ 17 : "=r" (cpunum)); \ 18 cpunum &= 0x03; \ 19 }) 20 21/* 22 * We use IRQ1 as the IPI 23 */ 24static inline void smp_cross_call(const struct cpumask *mask) 25{ 26 gic_raise_softirq(mask, 1); 27} 28 29#endif 30