]> git.buserror.net Git - polintos/scott/priv.git/blobdiff - kernel/mem/rmap.cc
Initial struct marshalling.
[polintos/scott/priv.git] / kernel / mem / rmap.cc
index 14ca7f78348bb5ec121ea70f0bec42802e2d5355..dc9e2563efb23885d78eaec8c2cc424cb374b5a3 100644 (file)
@@ -17,6 +17,8 @@
 #include <kern/pagealloc.h>
 #include <kern/rmap.h>
 #include <kern/pagetable.h>
+#include <kern/sched.h>
+#include <kern/thread.h>
 
 namespace Mem {
        static const ulong rmap_node_len =
@@ -26,7 +28,7 @@ namespace Mem {
                                 u64 dsvaddr, u64 usvaddr)
        {
                RMapNode *dsrmap = dsva->aspace->page_table->
-                                  rmap_table.tree.lookup(dsvaddr, true);
+                                  rmap_table.lookup(dsvaddr, true);
 
                assert(!dsrmap->va);
                dsrmap->va = dsva;
@@ -35,7 +37,7 @@ namespace Mem {
                dsrmap->tail.init();
                
                if (usptbl) {
-                       RMapNode *usrmap = usptbl->rmap_table.tree.lookup(usvaddr);
+                       RMapNode *usrmap = usptbl->rmap_table.lookup(usvaddr);
                        assert(usrmap);
                        assert(usrmap->va->aspace->page_table == usptbl);
 
@@ -51,7 +53,7 @@ namespace Mem {
        void RMapTable::unmap(u64 virtaddr)
        {
                Lock::AutoLock autolock(rmap_lock);
-               RMapNode *head = tree.lookup(virtaddr);
+               RMapNode *head = lookup(virtaddr);
                
                if (!head || !head->va)
                        return;
@@ -85,7 +87,7 @@ namespace Mem {
        void RMapTable::break_copy_on_write(u64 virtaddr, Page *new_page)
        {
                assert(rmap_lock.held_by_curthread());
-               RMapNode *head = tree.lookup(virtaddr);
+               RMapNode *head = lookup(virtaddr);
                RMapNode *still_cow = NULL;
                
                assert(head && head->va);