1 #pragma once
2 
3 #include "Iop_Module.h"
4 
5 class CIopBios;
6 
7 namespace Iop
8 {
9 	class CThevent : public CModule
10 	{
11 	public:
12 		CThevent(CIopBios&, uint8*);
13 		virtual ~CThevent();
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 		struct EVENT
21 		{
22 			uint32 attributes;
23 			uint32 options;
24 			uint32 initValue;
25 		};
26 
27 		uint32 CreateEventFlag(EVENT*);
28 		uint32 DeleteEventFlag(uint32);
29 		uint32 SetEventFlag(uint32, uint32);
30 		uint32 iSetEventFlag(uint32, uint32);
31 		uint32 ClearEventFlag(uint32, uint32);
32 		uint32 WaitEventFlag(uint32, uint32, uint32, uint32);
33 		uint32 PollEventFlag(uint32, uint32, uint32, uint32);
34 		uint32 ReferEventFlagStatus(uint32, uint32);
35 
36 		uint8* m_ram = nullptr;
37 		CIopBios& m_bios;
38 	};
39 }
40