ruby: Renamed Ruby's EventQueue to RubyEventQueue

--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
This commit is contained in:
Derek Hower
2009-05-11 10:38:45 -07:00
parent ab5e4a22b3
commit 6e8373fad6
27 changed files with 61 additions and 164 deletions

View 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"

View File

@@ -27,15 +27,6 @@
* 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

View File

@@ -40,7 +40,7 @@
#define CONSUMER_H
#include "Global.hh"
#include "EventQueue.hh"
#include "RubyEventQueue.hh"
class MessageBuffer;

View File

@@ -37,7 +37,7 @@
#include "Global.hh"
#include "Debug.hh"
#include "EventQueue.hh"
#include "RubyEventQueue.hh"
class Debug;
extern Debug* g_debug_ptr;

View 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;

View 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;

View File

@@ -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];
}
}

View File

@@ -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 << "]";
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View 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;

View File

@@ -35,7 +35,7 @@
#include "OutVcState_d.hh"
#include "NetworkConfig.hh"
#include "EventQueue.hh"
#include "RubyEventQueue.hh"
OutVcState_d::OutVcState_d(int id)
{

View 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

View File

@@ -34,7 +34,7 @@
#include "CacheRecorder.hh"
#include "TraceRecord.hh"
#include "EventQueue.hh"
#include "RubyEventQueue.hh"
#include "PrioHeap.hh"
#include "gzstream.hh"

View File

@@ -34,7 +34,7 @@
#include "Tracer.hh"
#include "TraceRecord.hh"
#include "EventQueue.hh"
#include "RubyEventQueue.hh"
#include "PrioHeap.hh"
#include "System.hh"

View 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"

View 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;

View File

@@ -17,17 +17,12 @@
* */
/*
* 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

View 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"

View File

@@ -33,7 +33,7 @@
#include "Global.hh"
#include "TimerTable.hh"
#include "EventQueue.hh"
#include "RubyEventQueue.hh"
TimerTable::TimerTable(Chip* chip_ptr)
{

View 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"

View 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"

View 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

View 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"

View File

@@ -33,7 +33,7 @@
*/
#include "main.hh"
#include "EventQueue.hh"
#include "RubyEventQueue.hh"
#include "RubyConfig.hh"
#include "test_framework.hh"

View 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"