ruby: Renamed Ruby's EventQueue to RubyEventQueue
authorDerek Hower <drh5@cs.wisc.edu>
Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)
committerDerek Hower <drh5@cs.wisc.edu>
Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)
--HG--
rename : src/mem/ruby/eventqueue/EventQueue.cc => src/mem/ruby/eventqueue/RubyEventQueue.cc
rename : src/mem/ruby/eventqueue/EventQueue.hh => src/mem/ruby/eventqueue/RubyEventQueue.hh
rename : src/mem/ruby/eventqueue/EventQueueNode.cc => src/mem/ruby/eventqueue/RubyEventQueueNode.cc
rename : src/mem/ruby/eventqueue/EventQueueNode.hh => src/mem/ruby/eventqueue/RubyEventQueueNode.hh

31 files changed:
src/mem/ruby/buffers/MessageBuffer.hh
src/mem/ruby/buffers/MessageBufferNode.cc
src/mem/ruby/common/Consumer.hh
src/mem/ruby/common/Debug.cc
src/mem/ruby/common/Global.cc
src/mem/ruby/common/Global.hh
src/mem/ruby/eventqueue/EventQueue.cc [deleted file]
src/mem/ruby/eventqueue/EventQueue.hh [deleted file]
src/mem/ruby/eventqueue/EventQueueNode.cc [deleted file]
src/mem/ruby/eventqueue/EventQueueNode.hh [deleted file]
src/mem/ruby/eventqueue/EventQueue_tester.cc [deleted file]
src/mem/ruby/eventqueue/RubyEventQueue.cc [new file with mode: 0644]
src/mem/ruby/eventqueue/RubyEventQueue.hh [new file with mode: 0644]
src/mem/ruby/eventqueue/RubyEventQueueNode.cc [new file with mode: 0644]
src/mem/ruby/eventqueue/RubyEventQueueNode.hh [new file with mode: 0644]
src/mem/ruby/init.cc
src/mem/ruby/network/garnet-fixed-pipeline/OutVcState_d.cc
src/mem/ruby/profiler/StoreTrace.cc
src/mem/ruby/recorder/CacheRecorder.cc
src/mem/ruby/recorder/Tracer.cc
src/mem/ruby/simics/interface.cc
src/mem/ruby/slicc_interface/Message.hh
src/mem/ruby/system/MemoryNode.hh
src/mem/ruby/system/StoreBuffer.cc
src/mem/ruby/system/TimerTable.cc
src/mem/ruby/tester/DeterministicDriver.cc
src/mem/ruby/tester/RaceyDriver.cc
src/mem/ruby/tester/SyntheticDriver.cc
src/mem/ruby/tester/Tester.cc
src/mem/ruby/tester/main.cc
src/mem/ruby/tester/test_framework.cc

index 6851423c373b5ef0724e91b91991f3c1a95f569c..ea9933f8c70385ce97e14de66f07231657cb0dd6 100644 (file)
@@ -41,7 +41,7 @@
 #include "Global.hh"
 #include "MessageBufferNode.hh"
 #include "Consumer.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "Message.hh"
 #include "PrioHeap.hh"
 #include "util.hh"
index c84347a384ab6edbb8973edd69a70d8f5612ddc7..31117dd0ee071a79f7a2f771dba6849c8032b8e7 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/*
- * EventQueueNode.C
- *
- * Description: See EventQueueNode.h
- *
- * $Id: MessageBufferNode.C,v 3.1 2001/02/02 16:57:54 sorin Exp $
- *
- */
-
 #include "MessageBufferNode.hh"
 
 void MessageBufferNode::print(ostream& out) const
index bd51af7ba4309fc6bdee7300b4c7eadbb4d0db18..e8dada9cae8f885a2acb410f802694f65069e6e9 100644 (file)
@@ -40,7 +40,7 @@
 #define CONSUMER_H
 
 #include "Global.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 
 class MessageBuffer;
 
index f0319ceb8134f32dd3267363cbd358df110da6cb..a07e61b2d4c712a7dcc2251cf5ece223a6dc809f 100644 (file)
@@ -37,7 +37,7 @@
 
 #include "Global.hh"
 #include "Debug.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 
 class Debug;
 extern Debug* g_debug_ptr;
index 4ebcd93cec88efe49de2cde6bd3623b83a3ea780..73a26269af07e68c6e08a779ffd6491399b349e4 100644 (file)
@@ -29,7 +29,7 @@
 
 #include "Global.hh"
 
-EventQueue* g_eventQueue_ptr = NULL;
+RubyEventQueue* g_eventQueue_ptr = NULL;
 RubySystem* g_system_ptr = NULL;
 Debug* g_debug_ptr = NULL;
 
index 2977e696dce67451e42d9cde8f6147cb4b3ae45a..e4014df9b5954a2890b8990de970fab17fa9df0c 100644 (file)
@@ -89,8 +89,8 @@ typedef unsigned int uint;
 typedef int SwitchID;
 typedef int LinkID;
 
-class EventQueue;
-extern EventQueue* g_eventQueue_ptr;
+class RubyEventQueue;
+extern RubyEventQueue* g_eventQueue_ptr;
 
 class RubySystem;
 extern RubySystem* g_system_ptr;
diff --git a/src/mem/ruby/eventqueue/EventQueue.cc b/src/mem/ruby/eventqueue/EventQueue.cc
deleted file mode 100644 (file)
index 0eef535..0000000
+++ /dev/null
@@ -1,120 +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.
- */
-
-/*
- * $Id$
- */
-
-#include "EventQueue.hh"
-#include "RubyConfig.hh"
-#include "Consumer.hh"
-#include "Profiler.hh"
-#include "System.hh"
-#include "PrioHeap.hh"
-#include "EventQueueNode.hh"
-
-// Class public method definitions
-
-EventQueue::EventQueue()
-{
-  m_prio_heap_ptr = NULL;
-  init();
-}
-
-EventQueue::~EventQueue()
-{
-  delete m_prio_heap_ptr;
-}
-
-void EventQueue::init()
-{
-  m_globalTime = 1;
-  m_timeOfLastRecovery = 1;
-  m_prio_heap_ptr = new PrioHeap<EventQueueNode>;
-  m_prio_heap_ptr->init();
-}
-
-bool EventQueue::isEmpty() const
-{
-  return (m_prio_heap_ptr->size() == 0);
-}
-
-void EventQueue::scheduleEventAbsolute(Consumer* consumer, Time timeAbs)
-{
-  // Check to see if this is a redundant wakeup
-  //  Time time = timeDelta + m_globalTime;
-  ASSERT(consumer != NULL);
-  if (consumer->getLastScheduledWakeup() != timeAbs) {
-    // This wakeup is not redundant
-    EventQueueNode thisNode;
-    thisNode.m_consumer_ptr = consumer;
-    assert(timeAbs > m_globalTime);
-    thisNode.m_time = timeAbs;
-    m_prio_heap_ptr->insert(thisNode);
-    consumer->setLastScheduledWakeup(timeAbs);
-  }
-}
-
-void EventQueue::triggerEvents(Time t)
-{
-  EventQueueNode thisNode;
-
-  while(m_prio_heap_ptr->size() > 0 && m_prio_heap_ptr->peekMin().m_time <= t) {
-    m_globalTime = m_prio_heap_ptr->peekMin().m_time;
-    thisNode = m_prio_heap_ptr->extractMin();
-    assert(thisNode.m_consumer_ptr != NULL);
-    DEBUG_EXPR(EVENTQUEUE_COMP,MedPrio,*(thisNode.m_consumer_ptr));
-    DEBUG_EXPR(EVENTQUEUE_COMP,MedPrio,thisNode.m_time);
-    thisNode.m_consumer_ptr->triggerWakeup();
-  }
-  m_globalTime = t;
-}
-
-void EventQueue::triggerAllEvents()
-{
-  // FIXME - avoid repeated code
-  EventQueueNode thisNode;
-
-  while(m_prio_heap_ptr->size() > 0) {
-    m_globalTime = m_prio_heap_ptr->peekMin().m_time;
-    thisNode = m_prio_heap_ptr->extractMin();
-    assert(thisNode.m_consumer_ptr != NULL);
-    DEBUG_EXPR(EVENTQUEUE_COMP,MedPrio,*(thisNode.m_consumer_ptr));
-    DEBUG_EXPR(EVENTQUEUE_COMP,MedPrio,thisNode.m_time);
-    thisNode.m_consumer_ptr->triggerWakeup();
-  }
-}
-
-// Class private method definitions
-
-void
-EventQueue::print(ostream& out) const
-{
-  out << "[Event Queue: " << *m_prio_heap_ptr << "]";
-}
diff --git a/src/mem/ruby/eventqueue/EventQueue.hh b/src/mem/ruby/eventqueue/EventQueue.hh
deleted file mode 100644 (file)
index 476e0d2..0000000
+++ /dev/null
@@ -1,118 +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.
- */
-
-/*
- * $Id$
- *
- * Description: The EventQueue class implements an event queue which
- * can be trigger events, allowing our simulation to be event driven.
- *
- * Currently, the only event we support is a Consumer being signaled
- * by calling the consumer's wakeup() routine.  Adding the event to
- * the queue does not require a virtual function call, though calling
- * wakeup() is a virtual function call.
- *
- * The method triggerEvents() is called with a global time.  All
- * events which are before or at this time are triggered in timestamp
- * order.  No ordering is enforced for events scheduled to occur at
- * the same time.  Events scheduled to wakeup the same consumer at the
- * same time are combined into a single event.
- *
- * The method scheduleConsumerWakeup() is called with a global time
- * and a consumer pointer.  The event queue will call the wakeup()
- * method of the consumer at the appropriate time.
- *
- * This implementation of EventQueue uses a dynamically sized array
- * managed as a heap.  The algorithms used has O(lg n) for insert and
- * O(lg n) for extract minimum element. (Based on chapter 7 of Cormen,
- * Leiserson, and Rivest.)  The array is dynamically sized and is
- * automatically doubled in size when necessary.
- *
- */
-
-#ifndef EVENTQUEUE_H
-#define EVENTQUEUE_H
-
-#include "Global.hh"
-#include "Vector.hh"
-
-class Consumer;
-template <class TYPE> class PrioHeap;
-class EventQueueNode;
-
-class EventQueue {
-public:
-  // Constructors
-  EventQueue();
-
-  // Destructor
-  ~EventQueue();
-
-  // Public Methods
-
-  Time getTime() const { return m_globalTime; }
-  void scheduleEvent(Consumer* consumer, Time timeDelta) { scheduleEventAbsolute(consumer, timeDelta + m_globalTime); }
-  void scheduleEventAbsolute(Consumer* consumer, Time timeAbs);
-  void triggerEvents(Time t); // called to handle all events <= time t
-  void triggerAllEvents();
-  void print(ostream& out) const;
-  bool isEmpty() const;
-
-  Time getTimeOfLastRecovery() {return m_timeOfLastRecovery;}
-  void setTimeOfLastRecovery(Time t) {m_timeOfLastRecovery = t;}
-
-  // Private Methods
-private:
-  // Private copy constructor and assignment operator
-  void init();
-  EventQueue(const EventQueue& obj);
-  EventQueue& operator=(const EventQueue& obj);
-
-  // Data Members (m_ prefix)
-  PrioHeap<EventQueueNode>* m_prio_heap_ptr;
-  Time m_globalTime;
-  Time m_timeOfLastRecovery;
-};
-
-// Output operator declaration
-inline extern
-ostream& operator<<(ostream& out, const EventQueue& obj);
-
-// ******************* Definitions *******************
-
-// Output operator definition
-inline extern
-ostream& operator<<(ostream& out, const EventQueue& obj)
-{
-  obj.print(out);
-  out << flush;
-  return out;
-}
-
-#endif //EVENTQUEUE_H
diff --git a/src/mem/ruby/eventqueue/EventQueueNode.cc b/src/mem/ruby/eventqueue/EventQueueNode.cc
deleted file mode 100644 (file)
index b002750..0000000
+++ /dev/null
@@ -1,47 +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.
- */
-
-/*
- * $Id$
- *
- */
-
-#include "EventQueueNode.hh"
-
-void EventQueueNode::print(ostream& out) const
-{
-  out << "[";
-  out << "Time=" << m_time;
-  if (m_consumer_ptr != NULL) {
-    out << " Consumer=" << m_consumer_ptr;
-  } else {
-    out << " Consumer=NULL";
-  }
-  out << "]";
-}
diff --git a/src/mem/ruby/eventqueue/EventQueueNode.hh b/src/mem/ruby/eventqueue/EventQueueNode.hh
deleted file mode 100644 (file)
index eff7ff3..0000000
+++ /dev/null
@@ -1,98 +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.
- */
-
-/*
- * $Id$
- *
- */
-
-#ifndef EVENTQUEUENODE_H
-#define EVENTQUEUENODE_H
-
-#include "Global.hh"
-class Consumer;
-
-class EventQueueNode {
-public:
-  // Constructors
-  EventQueueNode() { m_time = 0; m_consumer_ptr = NULL; }
-
-  // Destructor
-  //~EventQueueNode();
-
-  // Public Methods
-  void print(ostream& out) const;
-
-  // Assignment operator and copy constructor since the default
-  // constructors confuse purify when long longs are present.
-  EventQueueNode& operator=(const EventQueueNode& obj) {
-    m_time = obj.m_time;
-    m_consumer_ptr = obj.m_consumer_ptr;
-    return *this;
-  }
-
-  EventQueueNode(const EventQueueNode& obj) {
-    m_time = obj.m_time;
-    m_consumer_ptr = obj.m_consumer_ptr;
-  }
-private:
-  // Private Methods
-
-  // Default copy constructor and assignment operator
-  // EventQueueNode(const EventQueueNode& obj);
-
-  // Data Members (m_ prefix)
-public:
-  Time m_time;
-  Consumer* m_consumer_ptr;
-};
-
-// Output operator declaration
-ostream& operator<<(ostream& out, const EventQueueNode& obj);
-
-// ******************* Definitions *******************
-
-inline extern bool node_less_then_eq(const EventQueueNode& n1, const EventQueueNode& n2);
-
-inline extern
-bool node_less_then_eq(const EventQueueNode& n1, const EventQueueNode& n2)
-{
-  return (n1.m_time <= n2.m_time);
-}
-
-// Output operator definition
-extern inline
-ostream& operator<<(ostream& out, const EventQueueNode& obj)
-{
-  obj.print(out);
-  out << flush;
-  return out;
-}
-
-#endif //EVENTQUEUENODE_H
diff --git a/src/mem/ruby/eventqueue/EventQueue_tester.cc b/src/mem/ruby/eventqueue/EventQueue_tester.cc
deleted file mode 100644 (file)
index 5e54aa7..0000000
+++ /dev/null
@@ -1,89 +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.
- */
-
-/*
- * $Id$
- *
- */
-
-#include "EventQueue.hh"
-#include "Consumer.hh"
-
-//static int global_counter = 0;
-
-class TestConsumer1 : public Consumer {
-public:
-  TestConsumer1(int description) { m_description = description; }
-  ~TestConsumer1() { }
-  void wakeup() { cout << "Wakeup#1: " << m_description << endl; }
-  // void wakeup() { global_counter++; }
-  void print(ostream& out) const { out << "1:" << m_description << endl; }
-
-private:
-  int m_description;
-};
-
-class TestConsumer2 : public Consumer {
-public:
-  TestConsumer2(int description) { m_description = description; }
-  ~TestConsumer2() { }
-  void wakeup() { cout << "Wakeup#2: " << m_description << endl; }
-  // void wakeup() { global_counter++; }
-  void print(ostream& out) const { out << "2:" << m_description << endl; }
-private:
-  int m_description;
-};
-
-int main()
-{
-  EventQueue q;
-  const int SIZE = 200;
-  const int MAX_TIME = 10000;
-  int numbers[SIZE];
-  Consumer* consumers[SIZE];
-
-  for (int i=0; i<SIZE; i++) {
-    numbers[i] = random() % MAX_TIME;
-    if (i%2 == 0) {
-      consumers[i] = new TestConsumer1(i);
-    } else {
-      consumers[i] = new TestConsumer2(i);
-    }
-  }
-
-  for(int i=0; i<SIZE; i++) {
-    q.scheduleEvent(consumers[i], numbers[i]);
-  }
-
-  q.triggerEvents(MAX_TIME);
-
-  for (int i=0; i<SIZE; i++) {
-    delete consumers[i];
-  }
-}
diff --git a/src/mem/ruby/eventqueue/RubyEventQueue.cc b/src/mem/ruby/eventqueue/RubyEventQueue.cc
new file mode 100644 (file)
index 0000000..b267eb1
--- /dev/null
@@ -0,0 +1,120 @@
+
+/*
+ * 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.
+ */
+
+/*
+ * $Id$
+ */
+
+#include "RubyEventQueue.hh"
+#include "RubyConfig.hh"
+#include "Consumer.hh"
+#include "Profiler.hh"
+#include "System.hh"
+#include "PrioHeap.hh"
+#include "RubyEventQueueNode.hh"
+
+// Class public method definitions
+
+RubyEventQueue::RubyEventQueue()
+{
+  m_prio_heap_ptr = NULL;
+  init();
+}
+
+RubyEventQueue::~RubyEventQueue()
+{
+  delete m_prio_heap_ptr;
+}
+
+void RubyEventQueue::init()
+{
+  m_globalTime = 1;
+  m_timeOfLastRecovery = 1;
+  m_prio_heap_ptr = new PrioHeap<RubyEventQueueNode>;
+  m_prio_heap_ptr->init();
+}
+
+bool RubyEventQueue::isEmpty() const
+{
+  return (m_prio_heap_ptr->size() == 0);
+}
+
+void RubyEventQueue::scheduleEventAbsolute(Consumer* consumer, Time timeAbs)
+{
+  // Check to see if this is a redundant wakeup
+  //  Time time = timeDelta + m_globalTime;
+  ASSERT(consumer != NULL);
+  if (consumer->getLastScheduledWakeup() != timeAbs) {
+    // This wakeup is not redundant
+    RubyEventQueueNode thisNode;
+    thisNode.m_consumer_ptr = consumer;
+    assert(timeAbs > m_globalTime);
+    thisNode.m_time = timeAbs;
+    m_prio_heap_ptr->insert(thisNode);
+    consumer->setLastScheduledWakeup(timeAbs);
+  }
+}
+
+void RubyEventQueue::triggerEvents(Time t)
+{
+  RubyEventQueueNode thisNode;
+
+  while(m_prio_heap_ptr->size() > 0 && m_prio_heap_ptr->peekMin().m_time <= t) {
+    m_globalTime = m_prio_heap_ptr->peekMin().m_time;
+    thisNode = m_prio_heap_ptr->extractMin();
+    assert(thisNode.m_consumer_ptr != NULL);
+    DEBUG_EXPR(EVENTQUEUE_COMP,MedPrio,*(thisNode.m_consumer_ptr));
+    DEBUG_EXPR(EVENTQUEUE_COMP,MedPrio,thisNode.m_time);
+    thisNode.m_consumer_ptr->triggerWakeup();
+  }
+  m_globalTime = t;
+}
+
+void RubyEventQueue::triggerAllEvents()
+{
+  // FIXME - avoid repeated code
+  RubyEventQueueNode thisNode;
+
+  while(m_prio_heap_ptr->size() > 0) {
+    m_globalTime = m_prio_heap_ptr->peekMin().m_time;
+    thisNode = m_prio_heap_ptr->extractMin();
+    assert(thisNode.m_consumer_ptr != NULL);
+    DEBUG_EXPR(EVENTQUEUE_COMP,MedPrio,*(thisNode.m_consumer_ptr));
+    DEBUG_EXPR(EVENTQUEUE_COMP,MedPrio,thisNode.m_time);
+    thisNode.m_consumer_ptr->triggerWakeup();
+  }
+}
+
+// Class private method definitions
+
+void
+RubyEventQueue::print(ostream& out) const
+{
+  out << "[Event Queue: " << *m_prio_heap_ptr << "]";
+}
diff --git a/src/mem/ruby/eventqueue/RubyEventQueue.hh b/src/mem/ruby/eventqueue/RubyEventQueue.hh
new file mode 100644 (file)
index 0000000..dc8161c
--- /dev/null
@@ -0,0 +1,118 @@
+
+/*
+ * 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.
+ */
+
+/*
+ * $Id$
+ *
+ * Description: The EventQueue class implements an event queue which
+ * can be trigger events, allowing our simulation to be event driven.
+ *
+ * Currently, the only event we support is a Consumer being signaled
+ * by calling the consumer's wakeup() routine.  Adding the event to
+ * the queue does not require a virtual function call, though calling
+ * wakeup() is a virtual function call.
+ *
+ * The method triggerEvents() is called with a global time.  All
+ * events which are before or at this time are triggered in timestamp
+ * order.  No ordering is enforced for events scheduled to occur at
+ * the same time.  Events scheduled to wakeup the same consumer at the
+ * same time are combined into a single event.
+ *
+ * The method scheduleConsumerWakeup() is called with a global time
+ * and a consumer pointer.  The event queue will call the wakeup()
+ * method of the consumer at the appropriate time.
+ *
+ * This implementation of EventQueue uses a dynamically sized array
+ * managed as a heap.  The algorithms used has O(lg n) for insert and
+ * O(lg n) for extract minimum element. (Based on chapter 7 of Cormen,
+ * Leiserson, and Rivest.)  The array is dynamically sized and is
+ * automatically doubled in size when necessary.
+ *
+ */
+
+#ifndef RUBYEVENTQUEUE_H
+#define RUBYEVENTQUEUE_H
+
+#include "Global.hh"
+#include "Vector.hh"
+
+class Consumer;
+template <class TYPE> class PrioHeap;
+class RubyEventQueueNode;
+
+class RubyEventQueue {
+public:
+  // Constructors
+  RubyEventQueue();
+
+  // Destructor
+  ~RubyEventQueue();
+
+  // Public Methods
+
+  Time getTime() const { return m_globalTime; }
+  void scheduleEvent(Consumer* consumer, Time timeDelta) { scheduleEventAbsolute(consumer, timeDelta + m_globalTime); }
+  void scheduleEventAbsolute(Consumer* consumer, Time timeAbs);
+  void triggerEvents(Time t); // called to handle all events <= time t
+  void triggerAllEvents();
+  void print(ostream& out) const;
+  bool isEmpty() const;
+
+  Time getTimeOfLastRecovery() {return m_timeOfLastRecovery;}
+  void setTimeOfLastRecovery(Time t) {m_timeOfLastRecovery = t;}
+
+  // Private Methods
+private:
+  // Private copy constructor and assignment operator
+  void init();
+  RubyEventQueue(const RubyEventQueue& obj);
+  RubyEventQueue& operator=(const RubyEventQueue& obj);
+
+  // Data Members (m_ prefix)
+  PrioHeap<RubyEventQueueNode>* m_prio_heap_ptr;
+  Time m_globalTime;
+  Time m_timeOfLastRecovery;
+};
+
+// Output operator declaration
+inline extern
+ostream& operator<<(ostream& out, const RubyEventQueue& obj);
+
+// ******************* Definitions *******************
+
+// Output operator definition
+inline extern
+ostream& operator<<(ostream& out, const RubyEventQueue& obj)
+{
+  obj.print(out);
+  out << flush;
+  return out;
+}
+
+#endif //EVENTQUEUE_H
diff --git a/src/mem/ruby/eventqueue/RubyEventQueueNode.cc b/src/mem/ruby/eventqueue/RubyEventQueueNode.cc
new file mode 100644 (file)
index 0000000..0864655
--- /dev/null
@@ -0,0 +1,47 @@
+
+/*
+ * 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.
+ */
+
+/*
+ * $Id$
+ *
+ */
+
+#include "RubyEventQueueNode.hh"
+
+void RubyEventQueueNode::print(ostream& out) const
+{
+  out << "[";
+  out << "Time=" << m_time;
+  if (m_consumer_ptr != NULL) {
+    out << " Consumer=" << m_consumer_ptr;
+  } else {
+    out << " Consumer=NULL";
+  }
+  out << "]";
+}
diff --git a/src/mem/ruby/eventqueue/RubyEventQueueNode.hh b/src/mem/ruby/eventqueue/RubyEventQueueNode.hh
new file mode 100644 (file)
index 0000000..2ed5a1d
--- /dev/null
@@ -0,0 +1,98 @@
+
+/*
+ * 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.
+ */
+
+/*
+ * $Id$
+ *
+ */
+
+#ifndef RUBYEVENTQUEUENODE_H
+#define RUBYEVENTQUEUENODE_H
+
+#include "Global.hh"
+class Consumer;
+
+class RubyEventQueueNode {
+public:
+  // Constructors
+  RubyEventQueueNode() { m_time = 0; m_consumer_ptr = NULL; }
+
+  // Destructor
+  //~RubyEventQueueNode();
+
+  // Public Methods
+  void print(ostream& out) const;
+
+  // Assignment operator and copy constructor since the default
+  // constructors confuse purify when long longs are present.
+  RubyEventQueueNode& operator=(const RubyEventQueueNode& obj) {
+    m_time = obj.m_time;
+    m_consumer_ptr = obj.m_consumer_ptr;
+    return *this;
+  }
+
+  RubyEventQueueNode(const RubyEventQueueNode& obj) {
+    m_time = obj.m_time;
+    m_consumer_ptr = obj.m_consumer_ptr;
+  }
+private:
+  // Private Methods
+
+  // Default copy constructor and assignment operator
+  // RubyEventQueueNode(const RubyEventQueueNode& obj);
+
+  // Data Members (m_ prefix)
+public:
+  Time m_time;
+  Consumer* m_consumer_ptr;
+};
+
+// Output operator declaration
+ostream& operator<<(ostream& out, const RubyEventQueueNode& obj);
+
+// ******************* Definitions *******************
+
+inline extern bool node_less_then_eq(const RubyEventQueueNode& n1, const RubyEventQueueNode& n2);
+
+inline extern
+bool node_less_then_eq(const RubyEventQueueNode& n1, const RubyEventQueueNode& n2)
+{
+  return (n1.m_time <= n2.m_time);
+}
+
+// Output operator definition
+extern inline
+ostream& operator<<(ostream& out, const RubyEventQueueNode& obj)
+{
+  obj.print(out);
+  out << flush;
+  return out;
+}
+
+#endif //EVENTQUEUENODE_H
index e230bb5916b87a9d510538882e15f2437fa546ee..534b1c28639949b82171aa8e966870644d3a2e57 100644 (file)
@@ -37,7 +37,7 @@
  */
 
 #include "Global.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "System.hh"
 #include "Debug.hh"
 #include "Profiler.hh"
@@ -213,7 +213,7 @@ void init_simulator()
                            DEBUG_OUTPUT_FILENAME );
 
   cout << "Creating event queue..." << endl;
-  g_eventQueue_ptr = new EventQueue;
+  g_eventQueue_ptr = new RubyEventQueue;
   cout << "Creating event queue done" << endl;
 
   cout << "Creating system..." << endl;
index 32cf8a51d8a662f1906319014a26de7bd7ad7fc1..c85abfd3a193d703055ffbfaabe8325210f6a6c3 100644 (file)
@@ -35,7 +35,7 @@
 
 #include "OutVcState_d.hh"
 #include "NetworkConfig.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 
 OutVcState_d::OutVcState_d(int id)
 {
index c53f590ac198b2d7944b1693b4f0a1aea659f0c2..7a1347a891bdeb86ef64f84f4016a4fb6df29f16 100644 (file)
@@ -33,7 +33,7 @@
  */
 
 #include "StoreTrace.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 
 bool StoreTrace::s_init = false; // Total number of store lifetimes of all lines
 int64 StoreTrace::s_total_samples = 0; // Total number of store lifetimes of all lines
index e858f618e7a2fd30a379cbfa1cd6104321e61ecc..73f33ff27aef56c7030f6b231eacf6b09b0434e0 100644 (file)
@@ -34,7 +34,7 @@
 
 #include "CacheRecorder.hh"
 #include "TraceRecord.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "PrioHeap.hh"
 #include "gzstream.hh"
 
index 2a0acba465de8e386e68be7013fc4103aefd3082..0a4a290b378306dbc71a94da378aacb276f68660 100644 (file)
@@ -34,7 +34,7 @@
 
 #include "Tracer.hh"
 #include "TraceRecord.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "PrioHeap.hh"
 #include "System.hh"
 
index 92c30c23e962912c859160a9ac4a78a1dd517a68..1f088c023d105ee2afb9356202d129d3306cbc84 100644 (file)
@@ -35,7 +35,7 @@
 #include "Global.hh"
 #include "System.hh"
 #include "OpalInterface.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "mf_api.hh"
 #include "interface.hh"
 #include "Sequencer.hh"
index 1604f1798491ddf6f03f5edcf23827d4e7b71379..596e1c12f1e791b75a7cc6e578bd23c1971338ea 100644 (file)
@@ -37,7 +37,7 @@
 #include "Global.hh"
 #include "RefCnt.hh"
 #include "RefCountable.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 
 class Message;
 typedef RefCnt<Message> MsgPtr;
index 1ed3968bbc88dce27246795a74d718c1cdec5e48..e6cce6c45a7bef078965efc3bf3992b82e12b5b0 100644 (file)
  * */
 
 /*
- * EventQueueNode.h
- *
  * Description:
  * This structure records everything known about a single
  * memory request that is queued in the memory controller.
  * It is created when the memory request first arrives
  * at a memory controller and is deleted when the underlying
  * message is enqueued to be sent back to the directory.
- *
- * $Id: MemoryNode.h,v 3.3 2003/12/04 15:01:34 xu Exp $
- *
  */
 
 #ifndef MEMORYNODE_H
index c6880bdd18b357728dff16ad1d1e6b67dd278879..4dc54a4810fe1ddb4b97c398299a5e6c6f0e9e22 100644 (file)
@@ -39,7 +39,7 @@
 #include "System.hh"
 #include "Driver.hh"
 #include "Vector.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "AddressProfiler.hh"
 #include "Sequencer.hh"
 #include "SubBlock.hh"
index a8453d4bb41e2ad5b452d2b28175d6a2bc0dffa6..48e548b5c2af5a8b9d94d355f32cbc56d4518f37 100644 (file)
@@ -33,7 +33,7 @@
 
 #include "Global.hh"
 #include "TimerTable.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 
 TimerTable::TimerTable(Chip* chip_ptr)
 {
index d5277f59a76ee0d5b86192ac953d71ce79f446a2..7317f1c5c908e3dec2ce4704d477b9f8e6f98d41 100644 (file)
@@ -35,7 +35,7 @@
 #include "Global.hh"
 #include "System.hh"
 #include "DeterministicDriver.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "SpecifiedGenerator.hh"
 #include "DetermGETXGenerator.hh"
 #include "DetermInvGenerator.hh"
index 4ed26da31441dfb73870b5c99aa070751f39ac21..5b1e7e3f79d632b615e57731b679e4e998c35743 100644 (file)
@@ -35,7 +35,7 @@
 #include "Global.hh"
 #include "System.hh"
 #include "RaceyDriver.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "RaceyPseudoThread.hh"
 #include "SubBlock.hh"
 
index 2f386d6503ede005574d87850604db64affcf5ef..f9f7b91b2c0d4c8fb8f530d703416abdb9029dd2 100644 (file)
@@ -35,7 +35,7 @@
 #include "Global.hh"
 #include "System.hh"
 #include "SyntheticDriver.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 //#ifndef XACT_MEM
 #include "RequestGenerator.hh"
 //#endif
index 9dcec1ed1552c19c31d6d70595cc7f99c077e1a3..6c12ff4718328a1cd74b77ec0e8887f87ac45157 100644 (file)
@@ -35,7 +35,7 @@
 #include "Global.hh"
 #include "System.hh"
 #include "Tester.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "SubBlock.hh"
 #include "Check.hh"
 #include "Chip.hh"
index 35b927f5e05232d49648ba043f7ee754a4436cb6..9642fd5b7efb94c5d933130ee46eb40d4a16a854 100644 (file)
@@ -33,7 +33,7 @@
  */
 
 #include "main.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "RubyConfig.hh"
 #include "test_framework.hh"
 
index 0f180409e5a7ac4335576f604e5ea47a7a772a57..02320c87199ce9fab68f12749c3e6ea4774e1394 100644 (file)
@@ -38,7 +38,7 @@
 #include "OpalInterface.hh"
 #include "init.hh"
 #include "Tester.hh"
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
 #include "getopt.hh"
 #include "Network.hh"
 #include "CacheRecorder.hh"