|
AquilaOS documentation
How it works, and its code
|
x86: setting up the boot CPU and memory, then on to the kernel. More...
#include <boot/boot.h>#include <boot/multiboot.h>#include <console/earlycon.h>#include <core/kargs.h>#include <core/platform.h>#include <core/printk.h>#include <core/string.h>#include <cpu/cpu.h>#include <ds/bitmap.h>#include <sys/cpu.h>#include <sys/lock.h>#include <mm/mm.h>#include <mm/vm.h>#include <video/vbe.h>Go to the source code of this file.
Functions | |
| void | x86_cpu_init (void) |
| Sets up the boot CPU, memory and the platform, and starts the kernel (kmain()). | |
Variables | |
| struct boot * | __kboot |
| static char | bsp_idle_stack [8192] |
x86: setting up the boot CPU and memory, then on to the kernel.
Once the kernel runs in the higher half, x86_cpu_init() sets up the boot CPU (its GDT, the IDT, the exception handlers, the FPU), reads what the boot loader passed, sets up memory and the platform, and calls kmain().
Definition in file init.c.
| void x86_cpu_init | ( | void | ) |
Sets up the boot CPU, memory and the platform, and starts the kernel (kmain()).
It doesn't return.
Definition at line 34 of file init.c.
References __kboot, cpu::arch, bsp_idle_stack, boot::cmdline, cpus, cpus_count, earlycon_init(), earlycon_reinit(), cpu::id, arch_cpu::idle_stack, kargs_parse(), kernel_lock(), kmain(), kvmem_setup(), mm_setup(), platform_init(), printk(), VMA, x86_cpu_init(), x86_fpu_setup(), x86_gdt_setup(), x86_idt_setup(), and x86_isr_setup().
Referenced by x86_bootstrap(), and x86_cpu_init().