#pragma once #include "memory/pointer.h" #include "acpi/discovery.h" #include "cpu/gdt.h" #include "memory/pagetable.h" namespace apic { struct stack_t { paddr_t ptr; size_t size; }; using core_id = uint8_t; struct Core { core_id id; stack_t stack; PageTable kernelPageTable; Gdt gdt; }; optional initCore(acpi::Madt madt, core_id id); void initCores(acpi::discovery_result_t); [[noreturn]] void transitionStartupCore(); } // namespace apic