#ifndef ASMARM_ARCH_SMP_H | |
#define ASMARM_ARCH_SMP_H | |
#include <linux/config.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(cpumask_t callmap) | |
{ | |
gic_raise_softirq(callmap, 1); | |
} | |
/* | |
* Do nothing on MPcore. | |
*/ | |
static inline void smp_cross_call_done(cpumask_t callmap) | |
{ | |
} | |
#endif |