pTable.emplace(vaddr, Entry(paddr, flags));
}
- size -= pageSize;
- vaddr += pageSize;
- paddr += pageSize;
+ size -= _pageSize;
+ vaddr += _pageSize;
+ paddr += _pageSize;
}
}
new_vaddr, size);
while (size > 0) {
- auto new_it M5_VAR_USED = pTable.find(new_vaddr);
+ M5_VAR_USED auto new_it = pTable.find(new_vaddr);
auto old_it = pTable.find(vaddr);
assert(old_it != pTable.end() && new_it == pTable.end());
pTable.emplace(new_vaddr, old_it->second);
pTable.erase(old_it);
- size -= pageSize;
- vaddr += pageSize;
- new_vaddr += pageSize;
+ size -= _pageSize;
+ vaddr += _pageSize;
+ new_vaddr += _pageSize;
}
}
auto it = pTable.find(vaddr);
assert(it != pTable.end());
pTable.erase(it);
- size -= pageSize;
- vaddr += pageSize;
+ size -= _pageSize;
+ vaddr += _pageSize;
}
}
// starting address must be page aligned
assert(pageOffset(vaddr) == 0);
- for (int64_t offset = 0; offset < size; offset += pageSize)
+ for (int64_t offset = 0; offset < size; offset += _pageSize)
if (pTable.find(vaddr + offset) != pTable.end())
return false;
if (!translate(req->getVaddr(), paddr))
return Fault(new GenericPageTableFault(req->getVaddr()));
req->setPaddr(paddr);
- if ((paddr & (pageSize - 1)) + req->getSize() > pageSize) {
+ if ((paddr & (_pageSize - 1)) + req->getSize() > _pageSize) {
panic("Request spans page boundaries!\n");
return NoFault;
}
void
EmulationPageTable::serialize(CheckpointOut &cp) const
{
- paramOut(cp, "ptable.size", pTable.size());
+ ScopedCheckpointSection sec(cp, "ptable");
+ paramOut(cp, "size", pTable.size());
PTable::size_type count = 0;
for (auto &pte : pTable) {
EmulationPageTable::unserialize(CheckpointIn &cp)
{
int count;
- paramIn(cp, "ptable.size", count);
+ ScopedCheckpointSection sec(cp, "ptable");
+ paramIn(cp, "size", count);
for (int i = 0; i < count; ++i) {
ScopedCheckpointSection sec(cp, csprintf("Entry%d", i));