#include int boot_cpu(void) { volatile unsigned long *local_apic; unsigned long apic_id; int bsp; msr_t msr; msr = rdmsr(0x1b); bsp = !!(msr.lo & (1 << 8)); return bsp; }