70c70
< PageTable::allocate(Addr vaddr, int64_t size)
---
> PageTable::allocate(Addr vaddr, int64_t size, bool clobber)
78,80c78
< PTableItr iter = pTable.find(vaddr);
<
< if (iter != pTable.end()) {
---
> if (!clobber && (pTable.find(vaddr) != pTable.end())) {
82,83c80
< fatal("PageTable::allocate: address 0x%x already mapped",
< vaddr);
---
> fatal("PageTable::allocate: address 0x%x already mapped", vaddr);
87c84
< process->system->new_page());
---
> process->system->new_page());
130a128,142
> PageTable::isUnmapped(Addr vaddr, int64_t size)
> {
> // starting address must be page aligned
> assert(pageOffset(vaddr) == 0);
>
> for (; size > 0; size -= pageSize, vaddr += pageSize) {
> if (pTable.find(vaddr) != pTable.end()) {
> return false;
> }
> }
>
> return true;
> }
>
> bool