29 lines
No EOL
433 B
C++
29 lines
No EOL
433 B
C++
#pragma once
|
|
|
|
#include "memory/pointer.h"
|
|
|
|
#include "acpi/discovery.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;
|
|
};
|
|
|
|
optional<Core> initCore(acpi::Madt madt, core_id id);
|
|
|
|
void initCores(acpi::discovery_result_t);
|
|
|
|
void transitionStartupCore();
|
|
|
|
} // namespace apic
|