1#ifndef ASMARM_ARCH_SMP_H 2#define ASMARM_ARCH_SMP_H 3 4 5#include <asm/hardware/gic.h> 6 7#define hard_smp_processor_id() \ 8 ({ \ 9 unsigned int cpunum; \ 10 __asm__("mrc p15, 0, %0, c0, c0, 5" \ 11 : "=r" (cpunum)); \ 12 cpunum &= 0x0F; \ 13 }) 14 15/* 16 * We use IRQ1 as the IPI 17 */ 18static inline void smp_cross_call(const struct cpumask *mask) 19{ 20 gic_raise_softirq(mask, 1); 21} 22 23#endif 24