stos: vmm: Initialize virtual memory manager
Signed-off-by: Chloe M. <chloe@mensia.org>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) 2026, Chloe M.
|
||||
* Provided under the BSD-3 clause.
|
||||
*
|
||||
* Description: Virtual memory manager
|
||||
* Author: Chloe M.
|
||||
*/
|
||||
|
||||
#include <mm/vmm.h>
|
||||
#include <hal/mmu.h>
|
||||
#include <ex/trace.h>
|
||||
|
||||
#define DTRACE(Fmt, ...) \
|
||||
TRACE("[ VMM ]: " Fmt, ##__VA_ARGS__)
|
||||
|
||||
static MMU_VAS KernelVas;
|
||||
|
||||
VOID
|
||||
MmInitVmm(VOID)
|
||||
{
|
||||
MMU_VAS OldVas;
|
||||
ST_STATUS Status;
|
||||
|
||||
DTRACE("breeding kvas from bootstrap instance...\n");
|
||||
HalMmuReadVas(&OldVas);
|
||||
Status = HalMmuForkVas(&OldVas, &KernelVas);
|
||||
|
||||
if (Status != STATUS_SUCCESS) {
|
||||
/* TODO: Panic here */
|
||||
return;
|
||||
}
|
||||
|
||||
HalMmuWriteVas(&KernelVas);
|
||||
DTRACE("ah!~... [ok @ %p]\n", VAS_BASE(&KernelVas));
|
||||
}
|
||||
Reference in New Issue
Block a user