onIOPort needs to have a ConcreteCPU argument as well; detectCPU() added

detectCPU() allows us to easily retrieve the current Fail-CPU object which is a regular use case in the aspect headers, now. (Another solution would be a slice in the Bochs CPU class which inserts a reference to the Fail CPU object. Maybe we 'll implement this at a later point.)

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@2006 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
adrian
2013-01-17 13:41:07 +00:00
parent d3cf2359a4
commit 214bb36b47
2 changed files with 23 additions and 2 deletions

View File

@ -55,11 +55,12 @@ public:
/**
* I/O port communication handler. This method is called (from
* the IOPortCom aspect) every time when Bochs performs a port I/O operation.
* @param cpu the CPU that caused the IO port access
* @param data the data transmitted
* @param port the port it was transmitted on
* @param out true if the I/O traffic has been outbound, false otherwise
*/
void onIOPort(unsigned char data, unsigned port, bool out);
void onIOPort(ConcreteCPU* cpu, unsigned char data, unsigned port, bool out);
/**
* Internal handler for TimerListeners. This method is called when a previously
* registered (Bochs) timer triggers. It searches for the provided TimerListener
@ -144,6 +145,13 @@ public:
* @param cacheEntry the Bochs internal CPU cache entry ptr
*/
void updateBPEventInfo(BX_CPU_C *context, bxInstruction_c *instr);
/**
* Retrieves the concrete CPU object, based on the given Bochs' internal pointer \a pCPU.
* @param pCPU the Bochs' internal CPU object
* @return the FailBochs CPU representation that corresponds to Bochs' internal CPU \a pCPU
* @see The uses SimulatorController::getCPU().
*/
ConcreteCPU& detectCPU(BX_CPU_C* pCPU) const;
};
} // end-of-namespace: fail