testers: Refactor some Event subclasses to lambdas

Change-Id: I897b6162a827216b7bad74d955c0e50e06a5a3ec
Signed-off-by: Sean Wilson <spwilson2@wisc.edu>
Reviewed-on: https://gem5-review.googlesource.com/3926
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
Sean Wilson
2017-06-28 10:44:34 -05:00
parent e5c9e9c4d4
commit 60adacb571
6 changed files with 11 additions and 49 deletions

View File

@@ -47,7 +47,9 @@
#include "sim/sim_exit.hh"
RubyDirectedTester::RubyDirectedTester(const Params *p)
: MemObject(p), directedStartEvent(this),
: MemObject(p),
directedStartEvent([this]{ wakeup(); }, "Directed tick",
false, Event::CPU_Tick_Pri),
m_requests_to_complete(p->requests_to_complete),
generator(p->generator)
{

View File

@@ -85,20 +85,7 @@ class RubyDirectedTester : public MemObject
void print(std::ostream& out) const;
protected:
class DirectedStartEvent : public Event
{
private:
RubyDirectedTester *tester;
public:
DirectedStartEvent(RubyDirectedTester *_tester)
: Event(CPU_Tick_Pri), tester(_tester)
{}
void process() { tester->wakeup(); }
virtual const char *description() const { return "Directed tick"; }
};
DirectedStartEvent directedStartEvent;
EventFunctionWrapper directedStartEvent;
private:
void hitCallback(NodeID proc, Addr addr);

View File

@@ -76,7 +76,8 @@ GarnetSyntheticTraffic::sendPkt(PacketPtr pkt)
GarnetSyntheticTraffic::GarnetSyntheticTraffic(const Params *p)
: MemObject(p),
tickEvent(this),
tickEvent([this]{ tick(); }, "GarnetSyntheticTraffic tick",
false, Event::CPU_Tick_Pri),
cachePort("GarnetSyntheticTraffic", this),
retryPkt(NULL),
size(p->memory_size),

View File

@@ -74,21 +74,7 @@ class GarnetSyntheticTraffic : public MemObject
void printAddr(Addr a);
protected:
class TickEvent : public Event
{
private:
GarnetSyntheticTraffic *cpu;
public:
TickEvent(GarnetSyntheticTraffic *c) : Event(CPU_Tick_Pri), cpu(c) {}
void process() { cpu->tick(); }
virtual const char *description() const
{
return "GarnetSyntheticTraffic tick";
}
};
TickEvent tickEvent;
EventFunctionWrapper tickEvent;
class CpuPort : public MasterPort
{
@@ -160,6 +146,3 @@ class GarnetSyntheticTraffic : public MemObject
};
#endif // __CPU_GARNET_SYNTHETIC_TRAFFIC_HH__

View File

@@ -50,7 +50,9 @@
#include "sim/system.hh"
RubyTester::RubyTester(const Params *p)
: MemObject(p), checkStartEvent(this),
: MemObject(p),
checkStartEvent([this]{ wakeup(); }, "RubyTester tick",
false, Event::CPU_Tick_Pri),
_masterId(p->system->getMasterId(name())),
m_checkTable_ptr(nullptr),
m_num_cpus(p->num_cpus),

View File

@@ -118,20 +118,7 @@ class RubyTester : public MemObject
MasterID masterId() { return _masterId; }
protected:
class CheckStartEvent : public Event
{
private:
RubyTester *tester;
public:
CheckStartEvent(RubyTester *_tester)
: Event(CPU_Tick_Pri), tester(_tester)
{}
void process() { tester->wakeup(); }
virtual const char *description() const { return "RubyTester tick"; }
};
CheckStartEvent checkStartEvent;
EventFunctionWrapper checkStartEvent;
MasterID _masterId;