Proc data structure management, env gutting
[akaros.git] / kern / arch / sparc / pmap.c
index cbaf19d..4e3c1f3 100644 (file)
@@ -1,3 +1,7 @@
+#ifdef __SHARC__
+#pragma nosharc
+#endif
+
 #ifdef __DEPUTY__
 #pragma nodeputy
 #endif
@@ -22,10 +26,6 @@ vm_init(void)
        extern pde_t l1_page_table[NL1ENTRIES];
        boot_pgdir = l1_page_table;
        boot_cr3 = PADDR(boot_pgdir);
-
-       size_t env_array_size = ROUNDUP(NENV*sizeof(env_t), PGSIZE);
-       envs = /*(env_t *)*/boot_calloc(env_array_size, PGSIZE);
-       //memset(envs, 0, env_array_size);
 }
 
 error_t
@@ -114,6 +114,24 @@ pgdir_walk(pde_t* l1pt, const void*SNT va, int create)
        l3pte = &l3pt[L3X(va)];
        return l3pte;
 }
+
+/* TODO: this is probably wrong, since it only returns the pte as if it were the
+ * perms. */
+int get_va_perms(pde_t *pgdir, const void *SNT va)
+{
+       pte_t* pte = pgdir_walk(pgdir, va, 0);
+       return pte == NULL ? 0 : (*pte & (PTE_ACC | PTE_PTE));
+}
+
+void *get_free_va_range(pde_t *pgdir, uintptr_t addr, size_t len)
+{
+       // SARAH TODO
+       assert(0);
+}
+
+
+
+
 void
 page_check(void)
 {