summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2012-01-11 13:39:58 -0600
committerNilay Vaish <nilay@cs.wisc.edu>2012-01-11 13:39:58 -0600
commit2d3cae02f5d4a6c1f116f922d0ee3dde9e9dcc77 (patch)
tree549c4b9634a6ed2bf1fbd8914122615b2f89d618 /src/mem/ruby/system
parent17fc60ee88cf6cc6d0e703e04a90951f77cf48da (diff)
downloadgem5-2d3cae02f5d4a6c1f116f922d0ee3dde9e9dcc77.tar.xz
Ruby Port: Add a list of cpu ports attached to this port
Diffstat (limited to 'src/mem/ruby/system')
-rw-r--r--src/mem/ruby/system/RubyPort.cc6
-rw-r--r--src/mem/ruby/system/RubyPort.hh4
2 files changed, 8 insertions, 2 deletions
diff --git a/src/mem/ruby/system/RubyPort.cc b/src/mem/ruby/system/RubyPort.cc
index f7bde739e..d5f21c312 100644
--- a/src/mem/ruby/system/RubyPort.cc
+++ b/src/mem/ruby/system/RubyPort.cc
@@ -66,8 +66,10 @@ Port *
RubyPort::getPort(const std::string &if_name, int idx)
{
if (if_name == "port") {
- return new M5Port(csprintf("%s-port%d", name(), idx), this,
- ruby_system, access_phys_mem);
+ M5Port* cpuPort = new M5Port(csprintf("%s-port%d", name(), idx),
+ this, ruby_system, access_phys_mem);
+ cpu_ports.push_back(cpuPort);
+ return cpuPort;
}
if (if_name == "pio_port") {
diff --git a/src/mem/ruby/system/RubyPort.hh b/src/mem/ruby/system/RubyPort.hh
index 88e865766..0160d8fc8 100644
--- a/src/mem/ruby/system/RubyPort.hh
+++ b/src/mem/ruby/system/RubyPort.hh
@@ -148,6 +148,10 @@ class RubyPort : public MemObject
M5Port* physMemPort;
+ /*! Vector of CPU Port attached to this Ruby port. */
+ typedef std::vector<M5Port*>::iterator CpuPortIter;
+ std::vector<M5Port*> cpu_ports;
+
PhysicalMemory* physmem;
RubySystem* ruby_system;