Play-/Source/iop/Iop_Timrman.h

40 lines
1.1 KiB
C
Raw Permalink Normal View History

2015-05-21 03:50:11 -04:00
#pragma once
#include "Iop_Module.h"
class CIopBios;
namespace Iop
{
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;
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;
2020-09-22 17:20:32 -04:00
void SaveState(Framework::CZipArchiveWriter&) const override;
void LoadState(Framework::CZipArchiveReader&) override;
private:
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);
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;
};
}