#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 =
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;
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);
void RMapTable::unmap(u64 virtaddr)
{
Lock::AutoLock autolock(rmap_lock);
- RMapNode *head = tree.lookup(virtaddr);
+ RMapNode *head = lookup(virtaddr);
if (!head || !head->va)
return;
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);