summaryrefslogtreecommitdiff
path: root/src/mem/page_table.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/page_table.hh')
-rw-r--r--src/mem/page_table.hh10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mem/page_table.hh b/src/mem/page_table.hh
index 61da5f322..d60f4a433 100644
--- a/src/mem/page_table.hh
+++ b/src/mem/page_table.hh
@@ -79,11 +79,19 @@ class PageTable
Addr pageAlign(Addr a) { return (a & ~offsetMask); }
Addr pageOffset(Addr a) { return (a & offsetMask); }
- void allocate(Addr vaddr, int64_t size);
+ void allocate(Addr vaddr, int64_t size, bool clobber = false);
void remap(Addr vaddr, int64_t size, Addr new_vaddr);
void deallocate(Addr vaddr, int64_t size);
/**
+ * Check if any pages in a region are already allocated
+ * @param vaddr The starting virtual address of the region.
+ * @param size The length of the region.
+ * @return True if no pages in the region are mapped.
+ */
+ bool isUnmapped(Addr vaddr, int64_t size);
+
+ /**
* Lookup function
* @param vaddr The virtual address.
* @return entry The page table entry corresponding to vaddr.