1 #pragma once 2 3 #include "Iop_Module.h" 4 5 class CIopBios; 6 7 namespace Iop 8 { 9 class CThbase : public CModule 10 { 11 public: 12 CThbase(CIopBios&, uint8*); 13 virtual ~CThbase() = 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 struct THREAD 21 { 22 uint32 attributes; 23 uint32 options; 24 uint32 threadProc; 25 uint32 stackSize; 26 uint32 priority; 27 }; 28 29 uint32 CreateThread(const THREAD*); 30 uint32 DeleteThread(uint32); 31 int32 StartThread(uint32, uint32); 32 int32 StartThreadArgs(uint32, uint32, uint32); 33 uint32 ExitThread(); 34 uint32 TerminateThread(uint32); 35 uint32 ChangeThreadPriority(uint32, uint32); 36 int32 RotateThreadReadyQueue(uint32); 37 int32 ReleaseWaitThread(uint32); 38 int32 iReleaseWaitThread(uint32); 39 uint32 GetThreadId(); 40 uint32 ReferThreadStatus(uint32, uint32); 41 uint32 iReferThreadStatus(uint32, uint32); 42 uint32 SleepThread(); 43 uint32 WakeupThread(uint32); 44 uint32 iWakeupThread(uint32); 45 int32 CancelWakeupThread(uint32); 46 int32 iCancelWakeupThread(uint32); 47 uint32 DelayThread(uint32); 48 uint32 GetSystemTime(uint32); 49 uint32 GetSystemTimeLow(); 50 uint32 SetAlarm(uint32, uint32, uint32); 51 uint32 CancelAlarm(uint32, uint32); 52 void USecToSysClock(uint32, uint32); 53 void SysClockToUSec(uint32, uint32, uint32); 54 uint32 GetCurrentThreadPriority(); 55 56 uint8* m_ram; 57 CIopBios& m_bios; 58 }; 59 } 60