1 #pragma once 2 3 #include "Iop_Module.h" 4 5 class CIopBios; 6 7 namespace Iop 8 { 9 class CIntrman : public CModule 10 { 11 public: 12 CIntrman(CIopBios&, uint8*); 13 virtual ~CIntrman() = default; 14 15 std::string GetId() const override; 16 std::string GetFunctionName(unsigned int) const override; 17 void Invoke(CMIPS&, unsigned int) override; 18 19 private: 20 uint32 RegisterIntrHandler(uint32, uint32, uint32, uint32); 21 uint32 ReleaseIntrHandler(uint32); 22 uint32 EnableIntrLine(CMIPS&, uint32); 23 uint32 DisableIntrLine(CMIPS&, uint32, uint32); 24 uint32 EnableInterrupts(CMIPS&); 25 uint32 DisableInterrupts(CMIPS&); 26 uint32 SuspendInterrupts(CMIPS&, uint32); 27 uint32 ResumeInterrupts(CMIPS&, uint32); 28 uint32 QueryIntrContext(CMIPS&); 29 uint8* m_ram = nullptr; 30 CIopBios& m_bios; 31 }; 32 } 33