General: Recover Prometheus project from harddrive failure
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
This commit is contained in:
parent
a83f0b607e
commit
7ee76003ad
57 changed files with 1349 additions and 824 deletions
|
@ -29,15 +29,12 @@ namespace Core::Memory {
|
|||
struct Memory::Impl {
|
||||
explicit Impl(Core::System& system_) : system{system_} {}
|
||||
|
||||
void SetCurrentPageTable(Kernel::Process& process) {
|
||||
void SetCurrentPageTable(Kernel::Process& process, u32 core_id) {
|
||||
current_page_table = &process.PageTable().PageTableImpl();
|
||||
|
||||
const std::size_t address_space_width = process.PageTable().GetAddressSpaceWidth();
|
||||
|
||||
system.ArmInterface(0).PageTableChanged(*current_page_table, address_space_width);
|
||||
system.ArmInterface(1).PageTableChanged(*current_page_table, address_space_width);
|
||||
system.ArmInterface(2).PageTableChanged(*current_page_table, address_space_width);
|
||||
system.ArmInterface(3).PageTableChanged(*current_page_table, address_space_width);
|
||||
system.ArmInterface(core_id).PageTableChanged(*current_page_table, address_space_width);
|
||||
}
|
||||
|
||||
void MapMemoryRegion(Common::PageTable& page_table, VAddr base, u64 size, PAddr target) {
|
||||
|
@ -689,8 +686,8 @@ struct Memory::Impl {
|
|||
Memory::Memory(Core::System& system) : impl{std::make_unique<Impl>(system)} {}
|
||||
Memory::~Memory() = default;
|
||||
|
||||
void Memory::SetCurrentPageTable(Kernel::Process& process) {
|
||||
impl->SetCurrentPageTable(process);
|
||||
void Memory::SetCurrentPageTable(Kernel::Process& process, u32 core_id) {
|
||||
impl->SetCurrentPageTable(process, core_id);
|
||||
}
|
||||
|
||||
void Memory::MapMemoryRegion(Common::PageTable& page_table, VAddr base, u64 size, PAddr target) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue