PrOSess/kernel/include/apic/core.h

31 lines
No EOL
480 B
C++

#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<Core> initCore(acpi::Madt madt, core_id id);
void initCores(acpi::discovery_result_t);
[[noreturn]] void transitionStartupCore();
} // namespace apic