summaryrefslogtreecommitdiff
path: root/src/mem/ruby/network/simple/PerfectSwitch.hh
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2012-10-02 14:35:45 -0500
committerNilay Vaish <nilay@cs.wisc.edu>2012-10-02 14:35:45 -0500
commit4488379244cdf3c211e76dbf3b4278347f639039 (patch)
treed8ae21ee6a35e60c0856d91479e199126f4ba5ac /src/mem/ruby/network/simple/PerfectSwitch.hh
parentb370f6a7b2fb9a4cd8e38b1db12845d401d3adf3 (diff)
downloadgem5-4488379244cdf3c211e76dbf3b4278347f639039.tar.xz
ruby: changes to simple network
This patch makes the Switch structure inherit from BasicRouter, as is done in two other networks.
Diffstat (limited to 'src/mem/ruby/network/simple/PerfectSwitch.hh')
-rw-r--r--src/mem/ruby/network/simple/PerfectSwitch.hh9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mem/ruby/network/simple/PerfectSwitch.hh b/src/mem/ruby/network/simple/PerfectSwitch.hh
index 65a52eb08..695c848bc 100644
--- a/src/mem/ruby/network/simple/PerfectSwitch.hh
+++ b/src/mem/ruby/network/simple/PerfectSwitch.hh
@@ -41,11 +41,11 @@
#include <vector>
#include "mem/ruby/common/Consumer.hh"
-#include "mem/ruby/common/Global.hh"
class MessageBuffer;
class NetDest;
class SimpleNetwork;
+class Switch;
struct LinkOrder
{
@@ -56,12 +56,13 @@ struct LinkOrder
class PerfectSwitch : public Consumer
{
public:
- PerfectSwitch(SwitchID sid, SimpleNetwork* network_ptr);
+ PerfectSwitch(SwitchID sid, Switch *, uint32_t);
~PerfectSwitch();
std::string name()
{ return csprintf("PerfectSwitch-%i", m_switch_id); }
+ void init(SimpleNetwork *);
void addInPort(const std::vector<MessageBuffer*>& in);
void addOutPort(const std::vector<MessageBuffer*>& out,
const NetDest& routing_table_entry);
@@ -90,9 +91,11 @@ class PerfectSwitch : public Consumer
std::vector<std::vector<MessageBuffer*> > m_out;
std::vector<NetDest> m_routing_table;
std::vector<LinkOrder> m_link_order;
- int m_virtual_networks;
+
+ uint32_t m_virtual_networks;
int m_round_robin_start;
int m_wakeups_wo_switch;
+
SimpleNetwork* m_network_ptr;
std::vector<int> m_pending_message_count;
};