hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/kernel/vmm.rv
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-10-06 12:49:46 +0200
committerhachem <im@hachem.wtf>2026-10-06 12:49:46 +0200
commit5d4a723a5f157c0ed38a348099a600d1d21c3c2b (patch)
tree70e5fdf560a64cd0eb3a13d88ce046ddd29fd077 /kernel/vmm.rv
parent52dab7fc85d877e80e3032f0afabae906adebad8 (diff)
feat: gils core utils and other shit
Diffstat (limited to 'kernel/vmm.rv')
-rw-r--r--kernel/vmm.rv14
1 files changed, 7 insertions, 7 deletions
diff --git a/kernel/vmm.rv b/kernel/vmm.rv
index a4c0eea..0de5f33 100644
--- a/kernel/vmm.rv
+++ b/kernel/vmm.rv
@@ -2,7 +2,7 @@
# everything here only writes small entries we construct, so its f64 safe
const PTE_ADDR = 0x000FFFFFFFFFF000
-fn pte_idx(virt, level) (virt shr (12 + 9 * level)) band 0x1ff
+fn pte_index(virtual_address, level) (virtual_address shr (12 + 9 * level)) band 0x1ff
fn next_table(table, index) do
const slot = table + index * 8
@@ -14,10 +14,10 @@ fn next_table(table, index) do
frame
end
-fn as_map(pml4, virt, phys, flags) do
- const pdpt = next_table(pml4, pte_idx(virt, 3))
- const pd = next_table(pdpt, pte_idx(virt, 2))
- const pt = next_table(pd, pte_idx(virt, 1))
- mem_write(pt + pte_idx(virt, 0) * 8, (phys band PTE_ADDR) bor flags bor 1, 8)
- invlpg(virt)
+fn as_map(pml4, virtual_address, physical_address, flags) do
+ const pdpt = next_table(pml4, pte_index(virtual_address, 3))
+ const pd = next_table(pdpt, pte_index(virtual_address, 2))
+ const pt = next_table(pd, pte_index(virtual_address, 1))
+ mem_write(pt + pte_index(virtual_address, 0) * 8, (physical_address band PTE_ADDR) bor flags bor 1, 8)
+ invlpg(virtual_address)
end