]> git.buserror.net Git - polintos/scott/priv.git/blobdiff - kernel/include/kern/rmap.h
random kernel stuff
[polintos/scott/priv.git] / kernel / include / kern / rmap.h
index 86dacd6febf352d550ef8209380c704aab31bfde..6124fdf00e31fb56a3e6b7e8b99f23ee1fb76be0 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <kern/mem.h>
 #include <kern/radix.h>
+#include <util/radix.h>
 
 namespace Mem {
        struct RMapNode {
@@ -32,7 +33,12 @@ namespace Mem {
        class Page;
        
        class RMapTable {
-               Util::RadixTree<RMapNode, u64> tree;
+               Util::PageRadixTree<RMapNode, u64> tree;
+               
+               RMapNode *lookup(u64 vaddr, bool add = false)
+               {
+                       return tree.lookup(vaddr >> Arch::page_shift, add);
+               }
                
        public:
                // rmap_lock must be held.