summaryrefslogtreecommitdiff
path: root/src/mem/ruby/slicc_interface
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2015-07-04 10:43:46 -0500
committerNilay Vaish <nilay@cs.wisc.edu>2015-07-04 10:43:46 -0500
commit16ac48e6a419b75e6a9e86fab9cd2fd62ef9a574 (patch)
tree3b4753b480fb2b6cb8ff35680d72990831a4be44 /src/mem/ruby/slicc_interface
parentbaa3eb0de3b2b0f4a7edf35c5d165b11d1d95872 (diff)
downloadgem5-16ac48e6a419b75e6a9e86fab9cd2fd62ef9a574.tar.xz
ruby: drop NetworkMessage class
This patch drops the NetworkMessage class. The relevant data members and functions have been moved to the Message class, which was the parent of NetworkMessage.
Diffstat (limited to 'src/mem/ruby/slicc_interface')
-rw-r--r--src/mem/ruby/slicc_interface/Message.hh24
-rw-r--r--src/mem/ruby/slicc_interface/NetworkMessage.hh102
2 files changed, 22 insertions, 104 deletions
diff --git a/src/mem/ruby/slicc_interface/Message.hh b/src/mem/ruby/slicc_interface/Message.hh
index ea33c1340..5d8ed9711 100644
--- a/src/mem/ruby/slicc_interface/Message.hh
+++ b/src/mem/ruby/slicc_interface/Message.hh
@@ -34,6 +34,8 @@
#include <stack>
#include "mem/packet.hh"
+#include "mem/protocol/MessageSizeType.hh"
+#include "mem/ruby/common/NetDest.hh"
class Message;
typedef std::shared_ptr<Message> MsgPtr;
@@ -58,8 +60,11 @@ class Message
virtual MsgPtr clone() const = 0;
virtual void print(std::ostream& out) const = 0;
- virtual void setIncomingLink(int) {}
- virtual void setVnet(int) {}
+
+ virtual const MessageSizeType& getMessageSize() const
+ { panic("MessageSizeType() called on wrong message!"); }
+ virtual MessageSizeType& getMessageSize()
+ { panic("MessageSizeType() called on wrong message!"); }
/**
* The two functions below are used for reading / writing the message
@@ -87,11 +92,26 @@ class Message
void setMsgCounter(uint64_t c) { m_msg_counter = c; }
uint64_t getMsgCounter() const { return m_msg_counter; }
+ // Functions related to network traversal
+ virtual const NetDest& getDestination() const
+ { panic("getDestination() called on wrong message!"); }
+ virtual NetDest& getDestination()
+ { panic("getDestination() called on wrong message!"); }
+
+ int getIncomingLink() const { return incoming_link; }
+ void setIncomingLink(int link) { incoming_link = link; }
+ int getVnet() const { return vnet; }
+ void setVnet(int net) { vnet = net; }
+
private:
const Tick m_time;
Tick m_LastEnqueueTime; // my last enqueue time
Tick m_DelayedTicks; // my delayed cycles
uint64_t m_msg_counter; // FIXME, should this be a 64-bit value?
+
+ // Variables for required network traversal
+ int incoming_link;
+ int vnet;
};
inline bool
diff --git a/src/mem/ruby/slicc_interface/NetworkMessage.hh b/src/mem/ruby/slicc_interface/NetworkMessage.hh
deleted file mode 100644
index 1b5edcfcd..000000000
--- a/src/mem/ruby/slicc_interface/NetworkMessage.hh
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __MEM_RUBY_SLICC_INTERFACE_NETWORKMESSAGE_HH__
-#define __MEM_RUBY_SLICC_INTERFACE_NETWORKMESSAGE_HH__
-
-#include <iostream>
-#include <memory>
-
-#include "mem/protocol/MessageSizeType.hh"
-#include "mem/ruby/common/NetDest.hh"
-#include "mem/ruby/slicc_interface/Message.hh"
-
-class NetworkMessage;
-typedef std::shared_ptr<NetworkMessage> NetMsgPtr;
-
-class NetworkMessage : public Message
-{
- public:
- NetworkMessage(Tick curTime)
- : Message(curTime), m_internal_dest_valid(false)
- { }
-
- NetworkMessage(const NetworkMessage &other)
- : Message(other), m_internal_dest(other.m_internal_dest),
- m_internal_dest_valid(other.m_internal_dest_valid)
- { }
-
- virtual ~NetworkMessage() { }
-
- virtual const NetDest& getDestination() const = 0;
- virtual NetDest& getDestination() = 0;
- virtual const MessageSizeType& getMessageSize() const = 0;
- virtual MessageSizeType& getMessageSize() = 0;
-
- const NetDest&
- getInternalDestination() const
- {
- if (!m_internal_dest_valid)
- return getDestination();
-
- return m_internal_dest;
- }
-
- NetDest&
- getInternalDestination()
- {
- if (!m_internal_dest_valid) {
- m_internal_dest = getDestination();
- m_internal_dest_valid = true;
- }
- return m_internal_dest;
- }
-
- virtual void print(std::ostream& out) const = 0;
-
- int getIncomingLink() const { return incoming_link; }
- void setIncomingLink(int link) { incoming_link = link; }
- int getVnet() const { return vnet; }
- void setVnet(int net) { vnet = net; }
-
- private:
- NetDest m_internal_dest;
- bool m_internal_dest_valid;
- int incoming_link;
- int vnet;
-};
-
-inline std::ostream&
-operator<<(std::ostream& out, const NetworkMessage& obj)
-{
- obj.print(out);
- out << std::flush;
- return out;
-}
-
-#endif // __MEM_RUBY_SLICC_INTERFACE_NETWORKMESSAGE_HH__