summaryrefslogtreecommitdiff
path: root/src/mem/ruby/eventqueue
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/eventqueue')
-rw-r--r--src/mem/ruby/eventqueue/EventQueue_tester.cc89
-rw-r--r--src/mem/ruby/eventqueue/RubyEventQueue.cc (renamed from src/mem/ruby/eventqueue/EventQueue.cc)28
-rw-r--r--src/mem/ruby/eventqueue/RubyEventQueue.hh (renamed from src/mem/ruby/eventqueue/EventQueue.hh)22
-rw-r--r--src/mem/ruby/eventqueue/RubyEventQueueNode.cc (renamed from src/mem/ruby/eventqueue/EventQueueNode.cc)4
-rw-r--r--src/mem/ruby/eventqueue/RubyEventQueueNode.hh (renamed from src/mem/ruby/eventqueue/EventQueueNode.hh)24
5 files changed, 39 insertions, 128 deletions
diff --git a/src/mem/ruby/eventqueue/EventQueue_tester.cc b/src/mem/ruby/eventqueue/EventQueue_tester.cc
deleted file mode 100644
index 5e54aa7e0..000000000
--- a/src/mem/ruby/eventqueue/EventQueue_tester.cc
+++ /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/EventQueue.cc b/src/mem/ruby/eventqueue/RubyEventQueue.cc
index 0eef53530..b267eb1d3 100644
--- a/src/mem/ruby/eventqueue/EventQueue.cc
+++ b/src/mem/ruby/eventqueue/RubyEventQueue.cc
@@ -31,48 +31,48 @@
* $Id$
*/
-#include "EventQueue.hh"
+#include "RubyEventQueue.hh"
#include "RubyConfig.hh"
#include "Consumer.hh"
#include "Profiler.hh"
#include "System.hh"
#include "PrioHeap.hh"
-#include "EventQueueNode.hh"
+#include "RubyEventQueueNode.hh"
// Class public method definitions
-EventQueue::EventQueue()
+RubyEventQueue::RubyEventQueue()
{
m_prio_heap_ptr = NULL;
init();
}
-EventQueue::~EventQueue()
+RubyEventQueue::~RubyEventQueue()
{
delete m_prio_heap_ptr;
}
-void EventQueue::init()
+void RubyEventQueue::init()
{
m_globalTime = 1;
m_timeOfLastRecovery = 1;
- m_prio_heap_ptr = new PrioHeap<EventQueueNode>;
+ m_prio_heap_ptr = new PrioHeap<RubyEventQueueNode>;
m_prio_heap_ptr->init();
}
-bool EventQueue::isEmpty() const
+bool RubyEventQueue::isEmpty() const
{
return (m_prio_heap_ptr->size() == 0);
}
-void EventQueue::scheduleEventAbsolute(Consumer* consumer, Time timeAbs)
+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
- EventQueueNode thisNode;
+ RubyEventQueueNode thisNode;
thisNode.m_consumer_ptr = consumer;
assert(timeAbs > m_globalTime);
thisNode.m_time = timeAbs;
@@ -81,9 +81,9 @@ void EventQueue::scheduleEventAbsolute(Consumer* consumer, Time timeAbs)
}
}
-void EventQueue::triggerEvents(Time t)
+void RubyEventQueue::triggerEvents(Time t)
{
- EventQueueNode thisNode;
+ 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;
@@ -96,10 +96,10 @@ void EventQueue::triggerEvents(Time t)
m_globalTime = t;
}
-void EventQueue::triggerAllEvents()
+void RubyEventQueue::triggerAllEvents()
{
// FIXME - avoid repeated code
- EventQueueNode thisNode;
+ RubyEventQueueNode thisNode;
while(m_prio_heap_ptr->size() > 0) {
m_globalTime = m_prio_heap_ptr->peekMin().m_time;
@@ -114,7 +114,7 @@ void EventQueue::triggerAllEvents()
// Class private method definitions
void
-EventQueue::print(ostream& out) const
+RubyEventQueue::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/RubyEventQueue.hh
index 476e0d24a..dc8161cf1 100644
--- a/src/mem/ruby/eventqueue/EventQueue.hh
+++ b/src/mem/ruby/eventqueue/RubyEventQueue.hh
@@ -56,23 +56,23 @@
*
*/
-#ifndef EVENTQUEUE_H
-#define EVENTQUEUE_H
+#ifndef RUBYEVENTQUEUE_H
+#define RUBYEVENTQUEUE_H
#include "Global.hh"
#include "Vector.hh"
class Consumer;
template <class TYPE> class PrioHeap;
-class EventQueueNode;
+class RubyEventQueueNode;
-class EventQueue {
+class RubyEventQueue {
public:
// Constructors
- EventQueue();
+ RubyEventQueue();
// Destructor
- ~EventQueue();
+ ~RubyEventQueue();
// Public Methods
@@ -91,24 +91,24 @@ public:
private:
// Private copy constructor and assignment operator
void init();
- EventQueue(const EventQueue& obj);
- EventQueue& operator=(const EventQueue& obj);
+ RubyEventQueue(const RubyEventQueue& obj);
+ RubyEventQueue& operator=(const RubyEventQueue& obj);
// Data Members (m_ prefix)
- PrioHeap<EventQueueNode>* m_prio_heap_ptr;
+ PrioHeap<RubyEventQueueNode>* m_prio_heap_ptr;
Time m_globalTime;
Time m_timeOfLastRecovery;
};
// Output operator declaration
inline extern
-ostream& operator<<(ostream& out, const EventQueue& obj);
+ostream& operator<<(ostream& out, const RubyEventQueue& obj);
// ******************* Definitions *******************
// Output operator definition
inline extern
-ostream& operator<<(ostream& out, const EventQueue& obj)
+ostream& operator<<(ostream& out, const RubyEventQueue& obj)
{
obj.print(out);
out << flush;
diff --git a/src/mem/ruby/eventqueue/EventQueueNode.cc b/src/mem/ruby/eventqueue/RubyEventQueueNode.cc
index b0027506b..086465558 100644
--- a/src/mem/ruby/eventqueue/EventQueueNode.cc
+++ b/src/mem/ruby/eventqueue/RubyEventQueueNode.cc
@@ -32,9 +32,9 @@
*
*/
-#include "EventQueueNode.hh"
+#include "RubyEventQueueNode.hh"
-void EventQueueNode::print(ostream& out) const
+void RubyEventQueueNode::print(ostream& out) const
{
out << "[";
out << "Time=" << m_time;
diff --git a/src/mem/ruby/eventqueue/EventQueueNode.hh b/src/mem/ruby/eventqueue/RubyEventQueueNode.hh
index eff7ff37e..2ed5a1d9a 100644
--- a/src/mem/ruby/eventqueue/EventQueueNode.hh
+++ b/src/mem/ruby/eventqueue/RubyEventQueueNode.hh
@@ -32,32 +32,32 @@
*
*/
-#ifndef EVENTQUEUENODE_H
-#define EVENTQUEUENODE_H
+#ifndef RUBYEVENTQUEUENODE_H
+#define RUBYEVENTQUEUENODE_H
#include "Global.hh"
class Consumer;
-class EventQueueNode {
+class RubyEventQueueNode {
public:
// Constructors
- EventQueueNode() { m_time = 0; m_consumer_ptr = NULL; }
+ RubyEventQueueNode() { m_time = 0; m_consumer_ptr = NULL; }
// Destructor
- //~EventQueueNode();
+ //~RubyEventQueueNode();
// 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) {
+ RubyEventQueueNode& operator=(const RubyEventQueueNode& obj) {
m_time = obj.m_time;
m_consumer_ptr = obj.m_consumer_ptr;
return *this;
}
- EventQueueNode(const EventQueueNode& obj) {
+ RubyEventQueueNode(const RubyEventQueueNode& obj) {
m_time = obj.m_time;
m_consumer_ptr = obj.m_consumer_ptr;
}
@@ -65,7 +65,7 @@ private:
// Private Methods
// Default copy constructor and assignment operator
- // EventQueueNode(const EventQueueNode& obj);
+ // RubyEventQueueNode(const RubyEventQueueNode& obj);
// Data Members (m_ prefix)
public:
@@ -74,21 +74,21 @@ public:
};
// Output operator declaration
-ostream& operator<<(ostream& out, const EventQueueNode& obj);
+ostream& operator<<(ostream& out, const RubyEventQueueNode& obj);
// ******************* Definitions *******************
-inline extern bool node_less_then_eq(const EventQueueNode& n1, const EventQueueNode& n2);
+inline extern bool node_less_then_eq(const RubyEventQueueNode& n1, const RubyEventQueueNode& n2);
inline extern
-bool node_less_then_eq(const EventQueueNode& n1, const EventQueueNode& n2)
+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 EventQueueNode& obj)
+ostream& operator<<(ostream& out, const RubyEventQueueNode& obj)
{
obj.print(out);
out << flush;