git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: kernel stack tracing
[lunaix-os.git]
/
lunaix-os
/
kernel
/
mm
/
vmm.c
diff --git
a/lunaix-os/kernel/mm/vmm.c
b/lunaix-os/kernel/mm/vmm.c
index 3340f114c895ea05bc153aed0f52a9ac88589d2a..c3ba8142c4b0a3f9139166781f5a6bc33f14ff3c 100644
(file)
--- a/
lunaix-os/kernel/mm/vmm.c
+++ b/
lunaix-os/kernel/mm/vmm.c
@@
-1,4
+1,4
@@
-#include <
hal
/cpu.h>
+#include <
sys
/cpu.h>
#include <klibc/string.h>
#include <lunaix/mm/pmm.h>
#include <lunaix/mm/vmm.h>
#include <klibc/string.h>
#include <lunaix/mm/pmm.h>
#include <lunaix/mm/vmm.h>
@@
-55,7
+55,7
@@
vmm_set_mapping(ptr_t mnt, ptr_t va, ptr_t pa, pt_attr attr, int options)
NEW_L1_ENTRY(attr | PG_WRITE | PG_PRESENT, new_l1pt_pa);
// make sure our new l2 table is visible to CPU
NEW_L1_ENTRY(attr | PG_WRITE | PG_PRESENT, new_l1pt_pa);
// make sure our new l2 table is visible to CPU
- cpu_
invplg
((ptr_t)l2pt);
+ cpu_
flush_page
((ptr_t)l2pt);
memset((void*)l2pt, 0, PG_SIZE);
} else {
memset((void*)l2pt, 0, PG_SIZE);
} else {
@@
-66,7
+66,7
@@
vmm_set_mapping(ptr_t mnt, ptr_t va, ptr_t pa, pt_attr attr, int options)
}
if (mnt == VMS_SELF) {
}
if (mnt == VMS_SELF) {
- cpu_
invplg
(va);
+ cpu_
flush_page
(va);
}
if ((options & VMAP_NOMAP)) {
}
if ((options & VMAP_NOMAP)) {
@@
-98,7
+98,7
@@
vmm_del_mapping(ptr_t mnt, ptr_t va)
x86_page_table* l2pt = (x86_page_table*)(mnt | (l1_index << 12));
x86_pte_t l2pte = l2pt->entry[l2_index];
x86_page_table* l2pt = (x86_page_table*)(mnt | (l1_index << 12));
x86_pte_t l2pte = l2pt->entry[l2_index];
- cpu_
invplg
(va);
+ cpu_
flush_page
(va);
l2pt->entry[l2_index] = PTE_NULL;
return PG_ENTRY_ADDR(l2pte);
l2pt->entry[l2_index] = PTE_NULL;
return PG_ENTRY_ADDR(l2pte);
@@
-184,7
+184,7
@@
vmm_mount_pd(ptr_t mnt, ptr_t pde)
{
x86_page_table* l1pt = (x86_page_table*)L1_BASE_VADDR;
l1pt->entry[(mnt >> 22)] = NEW_L1_ENTRY(T_SELF_REF_PERM, pde);
{
x86_page_table* l1pt = (x86_page_table*)L1_BASE_VADDR;
l1pt->entry[(mnt >> 22)] = NEW_L1_ENTRY(T_SELF_REF_PERM, pde);
- cpu_
invplg
(mnt);
+ cpu_
flush_page
(mnt);
return mnt;
}
return mnt;
}
@@
-193,6
+193,6
@@
vmm_unmount_pd(ptr_t mnt)
{
x86_page_table* l1pt = (x86_page_table*)L1_BASE_VADDR;
l1pt->entry[(mnt >> 22)] = 0;
{
x86_page_table* l1pt = (x86_page_table*)L1_BASE_VADDR;
l1pt->entry[(mnt >> 22)] = 0;
- cpu_
invplg
(mnt);
+ cpu_
flush_page
(mnt);
return mnt;
}
\ No newline at end of file
return mnt;
}
\ No newline at end of file