coding-style improved.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1364 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
adrian
2012-06-20 08:42:58 +00:00
parent 583f60c430
commit 127a25707f
2 changed files with 718 additions and 734 deletions

View File

@ -31,18 +31,17 @@ const unsigned ANY_INTERRUPT = static_cast<unsigned>(-1);
* \class BaseEvent
* This is the base class for all event types.
*/
class BaseEvent
{
private:
class BaseEvent {
private:
//! current class-scoped id counter to provide \a unique id's
static EventId m_Counter;
protected:
protected:
EventId m_Id; //!< unique id of this event
time_t m_tStamp; //!< time stamp of event
unsigned int m_OccCounter; //!< event fires when 0 is reached
unsigned int m_OccCounterInit; //!< initial value for m_OccCounter
ExperimentFlow* m_Parent; //!< this event belongs to experiment m_Parent
public:
public:
BaseEvent() : m_Id(++m_Counter), m_OccCounter(1), m_OccCounterInit(1), m_Parent(NULL)
{ updateTime(); }
virtual ~BaseEvent() { }
@ -102,12 +101,11 @@ class BaseEvent
* \class BEvent
* A Breakpoint event to observe instruction changes within a given address space.
*/
class BPEvent : virtual public BaseEvent
{
private:
class BPEvent : virtual public BaseEvent {
private:
address_t m_CR3;
address_t m_TriggerInstrPtr;
public:
public:
/**
* Creates a new breakpoint event. The range information is specific to
* the subclasses.
@ -155,11 +153,10 @@ class BPEvent : virtual public BaseEvent
* \class BPSingleEvent
* A Breakpoint event to observe specific instruction pointers.
*/
class BPSingleEvent : virtual public BPEvent
{
private:
class BPSingleEvent : virtual public BPEvent {
private:
address_t m_WatchInstrPtr;
public:
public:
/**
* Creates a new breakpoint event.
* @param ip the instruction pointer of the breakpoint. If the control
@ -194,12 +191,11 @@ class BPSingleEvent : virtual public BPEvent
* \class BPRangeEvent
* A event type to observe ranges of instruction pointers.
*/
class BPRangeEvent : virtual public BPEvent
{
private:
class BPRangeEvent : virtual public BPEvent {
private:
address_t m_WatchStartAddr;
address_t m_WatchEndAddr;
public:
public:
/**
* Creates a new breakpoint-range event. The range's ends are both
* inclusive, i.e. an address matches if start <= addr <= end.
@ -232,17 +228,15 @@ class BPRangeEvent : virtual public BPEvent
* FIXME? currently >8-bit accesses only match if their lowest address is being watched
* (e.g., a 32-bit write to 0x4 also accesses 0x7, but this cannot be matched)
*/
class MemAccessEvent : virtual public BaseEvent
{
public:
enum accessType_t
{
class MemAccessEvent : virtual public BaseEvent {
public:
enum accessType_t {
MEM_UNKNOWN = 0x0,
MEM_READ = 0x1,
MEM_WRITE = 0x2,
MEM_READWRITE = 0x3
};
private:
private:
//! Specific guest system address to watch, or ANY_ADDR.
address_t m_WatchAddr;
/**
@ -258,7 +252,7 @@ class MemAccessEvent : virtual public BaseEvent
address_t m_TriggerIP;
//! Memory access type at m_TriggerAddr.
accessType_t m_AccessType;
public:
public:
MemAccessEvent(accessType_t watchtype = MEM_READWRITE)
: m_WatchAddr(ANY_ADDR), m_WatchType(watchtype),
m_TriggerAddr(ANY_ADDR), m_TriggerIP(ANY_ADDR),
@ -333,9 +327,8 @@ class MemAccessEvent : virtual public BaseEvent
* \class MemReadEvent
* Observes memory read accesses.
*/
class MemReadEvent : virtual public MemAccessEvent
{
public:
class MemReadEvent : virtual public MemAccessEvent {
public:
MemReadEvent()
: MemAccessEvent(MEM_READ) { }
MemReadEvent(address_t addr)
@ -346,9 +339,8 @@ class MemReadEvent : virtual public MemAccessEvent
* \class MemWriteEvent
* Observes memory write accesses.
*/
class MemWriteEvent : virtual public MemAccessEvent
{
public:
class MemWriteEvent : virtual public MemAccessEvent {
public:
MemWriteEvent()
: MemAccessEvent(MEM_READ) { }
MemWriteEvent(address_t addr)
@ -359,9 +351,8 @@ class MemWriteEvent : virtual public MemAccessEvent
* \class TroubleEvent
* Observes interrupt/trap activties.
*/
class TroubleEvent : virtual public BaseEvent
{
private:
class TroubleEvent : virtual public BaseEvent {
private:
/**
* Specific guest system interrupt/trap number that actually
* trigger the event.
@ -372,7 +363,7 @@ class TroubleEvent : virtual public BaseEvent
* or ANY_INTERRUPT/ANY_TRAP.
*/
std::vector<unsigned> m_WatchNumbers;
public:
public:
TroubleEvent() : m_TriggerNumber (-1) { }
TroubleEvent(unsigned troubleNumber)
: m_TriggerNumber(-1)
@ -418,11 +409,10 @@ class TroubleEvent : virtual public BaseEvent
* \class InterruptEvent
* Observes interrupts of the guest system.
*/
class InterruptEvent : virtual public TroubleEvent
{
private:
class InterruptEvent : virtual public TroubleEvent {
private:
bool m_IsNMI; //!< non maskable interrupt flag
public:
public:
InterruptEvent() : m_IsNMI(false) { }
InterruptEvent(unsigned interrupt) : m_IsNMI(false)
{ addWatchNumber(interrupt); }
@ -440,9 +430,8 @@ class InterruptEvent : virtual public TroubleEvent
* \class TrapEvent
* Observes traps of the guest system.
*/
class TrapEvent : virtual public TroubleEvent
{
public:
class TrapEvent : virtual public TroubleEvent {
public:
TrapEvent() { }
TrapEvent(unsigned trap) { addWatchNumber(trap); }
};
@ -451,12 +440,11 @@ class TrapEvent : virtual public TroubleEvent
* \class GuestEvent
* Used to receive data from the guest system.
*/
class GuestEvent : virtual public BaseEvent
{
private:
class GuestEvent : virtual public BaseEvent {
private:
char m_Data;
unsigned m_Port;
public:
public:
GuestEvent() : m_Data(0), m_Port(0) { }
/**
* Returns the data, transmitted by the guest system.
@ -480,13 +468,12 @@ class GuestEvent : virtual public BaseEvent
* \class IOPortEvent
* Observes I/O access on architectures with a separate I/O access mechanism (e.g. IA-32)
*/
class IOPortEvent : virtual public BaseEvent
{
private:
class IOPortEvent : virtual public BaseEvent {
private:
unsigned char m_Data;
unsigned m_Port;
bool m_Out;
public:
public:
/**
* Initialises an IOPortEvent
*
@ -534,12 +521,11 @@ class IOPortEvent : virtual public BaseEvent
* \class JumpEvent
* JumpEvents are used to observe conditional jumps (if...else if...else).
*/
class JumpEvent : virtual public BaseEvent
{
private:
class JumpEvent : virtual public BaseEvent {
private:
unsigned m_Opcode;
bool m_FlagTriggered;
public:
public:
/**
* Constructs a new event object.
* @param parent the parent object
@ -577,13 +563,12 @@ class JumpEvent : virtual public BaseEvent
* \class TimerEvent
* This event type is used to create timeouts/timers within in an experiment.
*/
class TimerEvent : public BaseEvent
{
private:
class TimerEvent : public BaseEvent {
private:
unsigned m_Timeout; //!< timeout interval in milliseconds
timer_id_t m_Id; //!< internal timer id (sim-specific)
bool m_Once; //!< true, if the timer should be triggered only once
public:
public:
/**
* Creates a new timer event. This can be used to implement a timeout-
* mechanism in the experiment-flow. The timer starts automatically when

View File

@ -31,9 +31,8 @@ class MemoryManager;
* activates the specific experiment There are further methods to read/write
* registers and memory, and control the SUT (save/restore/reset).
*/
class SimulatorController
{
protected:
class SimulatorController {
protected:
EventList m_EvList; //!< storage where events are being buffered
CoroutineManager m_Flows; //!< managed experiment flows
RegisterManager *m_Regs; //!< access to cpu register
@ -41,7 +40,7 @@ class SimulatorController
//! list of suppressed interrupts
std::vector<unsigned> m_SuppressedInterrupts;
friend class EventList; //!< "outsources" the event management
public:
public:
SimulatorController()
: m_Regs(NULL), m_Mem(NULL) { }
SimulatorController(RegisterManager* regs, MemoryManager* mem)