1/* 2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 30 unchanged lines hidden (view full) --- 39 40#ifndef __MEM_RUBY_NETWORK_NETWORK_HH__ 41#define __MEM_RUBY_NETWORK_NETWORK_HH__ 42 43#include <iostream> 44#include <string> 45#include <vector> 46 |
47#include "mem/protocol/LinkDirection.hh" 48#include "mem/protocol/MessageSizeType.hh" 49#include "mem/ruby/common/TypeDefines.hh" |
50#include "mem/ruby/network/Topology.hh" 51#include "mem/packet.hh" |
52#include "params/RubyNetwork.hh" 53#include "sim/clocked_object.hh" 54 55class NetDest; 56class MessageBuffer; 57class Throttle; |
58 59class Network : public ClockedObject 60{ 61 public: 62 typedef RubyNetworkParams Params; 63 Network(const Params *p); 64 virtual ~Network() {} |
65 const Params * params() const 66 { return dynamic_cast<const Params *>(_params);} |
67 68 virtual void init(); 69 70 static uint32_t getNumberOfVirtualNetworks() { return m_virtual_networks; } 71 static uint32_t MessageSizeType_to_int(MessageSizeType size_type); 72 73 // returns the queue requested for the given component 74 virtual MessageBuffer* getToNetQueue(NodeID id, bool ordered, --- 58 unchanged lines hidden --- |