diff options
Diffstat (limited to 'src/sim/system.cc')
-rw-r--r-- | src/sim/system.cc | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/src/sim/system.cc b/src/sim/system.cc index 2c5d4e44b..40f5ea0ce 100644 --- a/src/sim/system.cc +++ b/src/sim/system.cc @@ -73,7 +73,6 @@ int System::numSystemsRunning = 0; System::System(Params *p) : MemObject(p), _systemPort("system_port", this), - physmem(p->physmem), _numContexts(0), pagePtr(0), init_param(p->init_param), @@ -81,6 +80,7 @@ System::System(Params *p) virtProxy(_systemPort), loadAddrMask(p->load_addr_mask), nextPID(0), + physmem(p->memories), memoryMode(p->mem_mode), workItemsBegin(0), workItemsEnd(0), @@ -92,16 +92,6 @@ System::System(Params *p) // add self to global system list systemList.push_back(this); - /** Keep track of all memories we can execute code out of - * in our system - */ - for (int x = 0; x < p->memories.size(); x++) { - if (!p->memories[x]) - continue; - memRanges.push_back(RangeSize(p->memories[x]->start(), - p->memories[x]->size())); - } - if (FullSystem) { kernelSymtab = new SymbolTable; if (!debugSymbolTable) @@ -308,32 +298,27 @@ System::allocPhysPages(int npages) { Addr return_addr = pagePtr << LogVMPageSize; pagePtr += npages; - if (pagePtr > physmem->size()) + if (pagePtr > physmem.totalSize()) fatal("Out of memory, please increase size of physical memory."); return return_addr; } Addr -System::memSize() +System::memSize() const { - return physmem->size(); + return physmem.totalSize(); } Addr -System::freeMemSize() +System::freeMemSize() const { - return physmem->size() - (pagePtr << LogVMPageSize); + return physmem.totalSize() - (pagePtr << LogVMPageSize); } bool -System::isMemory(const Addr addr) const +System::isMemAddr(Addr addr) const { - std::list<Range<Addr> >::const_iterator i; - for (i = memRanges.begin(); i != memRanges.end(); i++) { - if (*i == addr) - return true; - } - return false; + return physmem.isMemAddr(addr); } void |