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