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:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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__
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user