diff --git a/kernel-src/arch/x86-64/main.c b/kernel-src/arch/x86-64/main.c index 654bdeba..a7ee64f0 100644 --- a/kernel-src/arch/x86-64/main.c +++ b/kernel-src/arch/x86-64/main.c @@ -124,3 +124,7 @@ void kernel_entry() { sched_runinit(); sched_threadexit(); } + +cpu_t *_bsp(void) { + return &bsp_cpu; +} diff --git a/kernel-src/include/x86-64/arch/cpu.h b/kernel-src/include/x86-64/arch/cpu.h index 132bf8c4..26bda0fb 100644 --- a/kernel-src/include/x86-64/arch/cpu.h +++ b/kernel-src/include/x86-64/arch/cpu.h @@ -54,6 +54,8 @@ static inline uint16_t be_to_cpu_w(uint16_t w) { return __builtin_bswap16(w); } +cpu_t *_bsp(void); + static inline cpu_t *_cpu() { cpu_t *cpu; asm volatile ("mov %%gs:0, %%rax" : "=a"(cpu) : : "memory");