2015-10-10 20:22:32 -04:00
|
|
|
#pragma once
|
2008-01-15 20:27:44 +00:00
|
|
|
|
|
|
|
#include "Iop_Module.h"
|
|
|
|
|
2008-10-28 01:48:21 +00:00
|
|
|
class CIopBios;
|
|
|
|
|
2008-01-15 20:27:44 +00:00
|
|
|
namespace Iop
|
|
|
|
{
|
2012-04-07 18:56:00 +00:00
|
|
|
class CIntrman : public CModule
|
|
|
|
{
|
|
|
|
public:
|
2018-04-30 21:01:23 +01:00
|
|
|
CIntrman(CIopBios&, uint8*);
|
2019-06-11 12:42:58 -04:00
|
|
|
virtual ~CIntrman() = 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
|
|
|
|
2012-04-07 18:56:00 +00:00
|
|
|
private:
|
2018-04-30 21:01:23 +01:00
|
|
|
uint32 RegisterIntrHandler(uint32, uint32, uint32, uint32);
|
|
|
|
uint32 ReleaseIntrHandler(uint32);
|
|
|
|
uint32 EnableIntrLine(CMIPS&, uint32);
|
|
|
|
uint32 DisableIntrLine(CMIPS&, uint32, uint32);
|
|
|
|
uint32 EnableInterrupts(CMIPS&);
|
|
|
|
uint32 DisableInterrupts(CMIPS&);
|
|
|
|
uint32 SuspendInterrupts(CMIPS&, uint32);
|
|
|
|
uint32 ResumeInterrupts(CMIPS&, uint32);
|
|
|
|
uint32 QueryIntrContext(CMIPS&);
|
|
|
|
CIopBios& m_bios;
|
2023-05-02 08:56:25 -04:00
|
|
|
uint8* m_ram = nullptr;
|
2012-04-07 18:56:00 +00:00
|
|
|
};
|
2008-01-15 20:27:44 +00:00
|
|
|
}
|