Added single stepping for gem5, which is necessary to periodically check for events like interrupts.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1734 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
friemel
2012-10-10 14:26:50 +00:00
parent 15def480d9
commit 6e1a85d3bf
9 changed files with 178 additions and 45 deletions

View File

@ -0,0 +1,32 @@
#ifndef __FAILGEM5_DEVICE_HH__
#define __FAILGEM5_DEVICE_HH__
#include "dev/io_device.hh"
#include "params/FailGem5Device.hh"
#include "cpu/thread_context.hh"
class Gem5InstructionEvent;
class FailGem5Device : public BasicPioDevice
{
public:
typedef FailGem5DeviceParams Params;
FailGem5Device(Params *p);
void setNextBreakpoints(ThreadContext *tc);
virtual void startup();
virtual Tick read(PacketPtr pkt);
virtual Tick write(PacketPtr pkt);
private:
Gem5InstructionEvent* m_BreakpointTaken;
Gem5InstructionEvent* m_BreakpointNotTaken;
void activateSingleStepMode();
void deactivateSingleStepMode();
void clearBreakpoints();
};
#endif // __FAILGEM5_DEVICE_HH__