move syscall_nr to generic for sharing between arch impls
[lunaix-os.git] / lunaix-os / arch / generic / vmutils.c
index 8fc0d820cab2d72c210fb6b3b18d337e06bbb984..ab25524e85d773bcc5b52461d539114e98bb8eb0 100644 (file)
@@ -10,7 +10,7 @@ dup_leaflet(struct leaflet* leaflet)
 _default void
 pmm_arch_init_pool(struct pmem* memory)
 {
-    fail("unimplemented");
+    pmm_declare_pool(POOL_UNIFIED, 1, memory->list_len);
 }
 
 _default ptr_t
@@ -18,3 +18,22 @@ pmm_arch_init_remap(struct pmem* memory, struct boot_handoff* bctx)
 {
     fail("unimplemented");
 }
+
+_default pte_t
+translate_vmr_prot(unsigned int vmr_prot, pte_t pte)
+{
+    pte = pte_mkuser(pte);
+
+    if ((vmr_prot & PROT_WRITE)) {
+        pte = pte_mkwritable(pte);
+    }
+
+    if ((vmr_prot & PROT_EXEC)) {
+        pte = pte_mkexec(pte);
+    }
+    else {
+        pte = pte_mknexec(pte);
+    }
+
+    return pte;
+}