40 #ifndef __MEM_RUBY_NETWORK_NETWORK_HH__ 
   41 #define __MEM_RUBY_NETWORK_NETWORK_HH__ 
   47 #include "mem/protocol/LinkDirection.hh" 
   48 #include "mem/protocol/MessageSizeType.hh" 
   52 #include "params/RubyNetwork.hh" 
   81         int network_num, std::string vnet_type);
 
   84                              const NetDest& routing_table_entry) = 0;
 
   86                             const NetDest& routing_table_entry) = 0;
 
   88                                   const NetDest& routing_table_entry,
 
   93     virtual void print(std::ostream& out) 
const = 0;
 
  101     { 
fatal(
"Functional read not implemented.\n"); }
 
  103     { 
fatal(
"Functional write not implemented.\n"); }
 
  150 #endif // __MEM_RUBY_NETWORK_NETWORK_HH__ 
Network & operator=(const Network &obj)
 
virtual void makeExtInLink(NodeID src, SwitchID dest, BasicLink *link, const NetDest &routing_table_entry)=0
 
std::vector< std::vector< MessageBuffer * > > m_toNetQueues
 
StatsCallback(Network *_ctr)
 
void setToNetQueue(NodeID id, bool ordered, int netNumber, std::string vnet_type, MessageBuffer *b)
 
static uint32_t getNumberOfVirtualNetworks()
 
Callback class used for collating statistics from all the controller of this type. 
 
virtual bool functionalRead(Packet *pkt)
 
virtual void collateStats()=0
 
std::vector< bool > m_ordered
 
virtual void makeExtOutLink(SwitchID src, NodeID dest, BasicLink *link, const NetDest &routing_table_entry)=0
 
std::vector< std::string > m_vnet_type_names
 
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected. 
 
virtual void checkNetworkAllocation(NodeID id, bool ordered, int network_num, std::string vnet_type)
 
Topology * m_topology_ptr
 
static uint32_t m_control_msg_size
 
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
 
std::string PortDirection
 
ClockedObject declaration and implementation. 
 
const Params * params() const 
 
virtual void setFromNetQueue(NodeID id, bool ordered, int netNumber, std::string vnet_type, MessageBuffer *b)
 
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
 
static uint32_t MessageSizeType_to_int(MessageSizeType size_type)
 
static uint32_t m_data_msg_size
 
virtual void makeInternalLink(SwitchID src, SwitchID dest, BasicLink *link, const NetDest &routing_table_entry, PortDirection src_outport, PortDirection dst_inport)=0
 
Declaration of the Packet class. 
 
virtual uint32_t functionalWrite(Packet *pkt)
 
const SimObjectParams * _params
Cached copy of the object parameters. 
 
virtual void print(std::ostream &out) const =0
 
static uint32_t m_virtual_networks
 
std::ostream & operator<<(std::ostream &out, const Network &obj)
 
std::vector< std::vector< MessageBuffer * > > m_fromNetQueues
 
void process()
virtual process function that is invoked when the callback queue is executed.