2015-05-21 03:50:11 -04:00
|
|
|
#pragma once
|
2008-01-15 20:27:44 +00:00
|
|
|
|
|
|
|
#include "Iop_Module.h"
|
|
|
|
|
2008-10-30 22:22:10 +00:00
|
|
|
class CIopBios;
|
|
|
|
|
2008-01-15 20:27:44 +00:00
|
|
|
namespace Iop
|
|
|
|
{
|
2012-04-26 06:29:34 +00:00
|
|
|
class CTimrman : public CModule
|
|
|
|
{
|
|
|
|
public:
|
2018-04-30 21:01:23 +01:00
|
|
|
CTimrman(CIopBios&);
|
2020-09-22 17:18:48 -04:00
|
|
|
virtual ~CTimrman() = default;
|
2008-01-15 20:27:44 +00:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
std::string GetId() const override;
|
|
|
|
std::string GetFunctionName(unsigned int) const override;
|
|
|
|
void Invoke(CMIPS&, unsigned int) override;
|
2008-01-15 20:27:44 +00:00
|
|
|
|
2020-09-22 17:20:32 -04:00
|
|
|
void SaveState(Framework::CZipArchiveWriter&) const override;
|
|
|
|
void LoadState(Framework::CZipArchiveReader&) override;
|
|
|
|
|
2012-04-26 06:29:34 +00:00
|
|
|
private:
|
2020-11-03 14:26:21 -05:00
|
|
|
int32 AllocHardTimer(uint32, uint32, uint32);
|
2018-04-30 21:01:23 +01:00
|
|
|
int ReferHardTimer(uint32, uint32, uint32, uint32);
|
2020-10-29 09:33:43 -04:00
|
|
|
int32 FreeHardTimer(uint32);
|
2018-04-30 21:01:23 +01:00
|
|
|
void SetTimerMode(CMIPS&, uint32, uint32);
|
|
|
|
int GetTimerStatus(CMIPS&, uint32);
|
|
|
|
int GetTimerCounter(CMIPS&, uint32);
|
|
|
|
void SetTimerCompare(CMIPS&, uint32, uint32);
|
|
|
|
int GetHardTimerIntrCode(uint32);
|
2020-11-03 14:26:21 -05:00
|
|
|
int32 SetTimerCallback(CMIPS&, uint32, uint32, uint32, uint32);
|
|
|
|
int32 SetupHardTimer(CMIPS&, uint32, uint32, uint32, uint32);
|
|
|
|
int32 StartHardTimer(CMIPS&, uint32);
|
|
|
|
int32 StopHardTimer(CMIPS&, uint32);
|
2018-04-30 21:01:23 +01:00
|
|
|
|
|
|
|
CIopBios& m_bios;
|
2020-09-22 17:18:48 -04:00
|
|
|
uint32 m_hardTimerAlloc = 0;
|
2012-04-26 06:29:34 +00:00
|
|
|
};
|
2008-01-15 20:27:44 +00:00
|
|
|
}
|