[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH 07/11] kernel2: Kernel-Kontext erstellen
! mmc_create_kernel_kontext: Da Paging ja schon läuft einfach die Aktuelle
Page-Map nehmen und daraus einen mm-Kontext erstellen
Signed-off-by: Andreas Freimuth <m.nemo@xxxxxxx>
---
src/kernel2/src/arch/amd64/mm/mm_context.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/kernel2/src/arch/amd64/mm/mm_context.c b/src/kernel2/src/arch/amd64/mm/mm_context.c
index 5438e78..d21b1db 100644
--- a/src/kernel2/src/arch/amd64/mm/mm_context.c
+++ b/src/kernel2/src/arch/amd64/mm/mm_context.c
@@ -111,15 +111,20 @@ mmc_context_t mmc_create()
}
/**
- * Erstellt einen neuen MM-Kontext (PM) f� Kernel.
+ * Erstellt einen neuen MM-Kontext für den Kernel.
* Diese Funktion wird nur zur Initialisierung benutzt, solange kein richtiges
- * Paging laeuft. Dies spielt aber bei AMD64 keine Rolle, weil Pagin aktiv sein
- * muss, deshalb wird einfach die normale mmc_create benutzt.
+ * Paging läuft. Dies spielt aber bei AMD64 keine Rolle, weil Paging aktiv sein
+ * muss, deshalb wird einfach die aktuelle Page Map eingetragen.
*/
mmc_context_t mmc_create_kernel_context()
{
- mmc_context_t context = mmc_create();
- return context;
+ kernel_ctx.version = 1;
+ kernel_ctx.lock = LOCK_UNLOCKED;
+
+ // Die Aktuelle Page Map in den Kernel MM-Kontext übernehmen
+ asm volatile ("mov %%cr3, %0" : "=a"(kernel_ctx.pml4));
+
+ return kernel_ctx;
}
/**
--
1.7.3.4