#ifndef __OVPPLATFORM_HPP__ #define __OVPPLATFORM_HPP__ #include /** * \class OVPPlatform * OVPPlatform is the layer/interface which connects SAL and the OVP platform. */ class OVPPlatform { public: /** * The current OVP platform has to set a pointer to itself so that * OVPPlatform can execute OVP functions using the correct platform * @param ovpcpu void ptr to the OVPCpu object */ void setCpu(void *); /** * Set value to a register * @param link Pointer to the OVP register * @param val Value the register is set to */ void setRegisterData(void *, unsigned int); /** * Retrieves value from a register * @param link Pointer to the OVP register * @return value of the register */ unsigned int getRegisterData(void *); /** * Get the program counter * @return current program counter */ uint32_t getPC(); /** * Set the program counter */ void setPC(uint32_t); /** * Get the stack pointer * @return current stack pointer */ uint32_t getSP(); /** * Save cpu status */ void save(const string&); /** * Restore cpu status */ void restore(const string&); }; #endif