18 lines
373 B
C
18 lines
373 B
C
#ifndef ASMARM_SMP_MIDR_H
|
|
#define ASMARM_SMP_MIDR_H
|
|
|
|
#define hard_smp_processor_id() \
|
|
({ \
|
|
unsigned int cpunum; \
|
|
__asm__("\n" \
|
|
"1: mrc p15, 0, %0, c0, c0, 5\n" \
|
|
" .pushsection \".alt.smp.init\", \"a\"\n"\
|
|
" .long 1b\n" \
|
|
" mov %0, #0\n" \
|
|
" .popsection" \
|
|
: "=r" (cpunum)); \
|
|
cpunum &= 0x0F; \
|
|
})
|
|
|
|
#endif
|