2014-07-26 00:27:48 -04:00
|
|
|
#pragma once
|
2008-01-15 20:27:44 +00:00
|
|
|
|
|
|
|
#include "Iop_Module.h"
|
|
|
|
|
|
|
|
class CIopBios;
|
|
|
|
|
|
|
|
namespace Iop
|
|
|
|
{
|
2012-03-31 20:13:58 +00:00
|
|
|
class CThbase : public CModule
|
|
|
|
{
|
|
|
|
public:
|
2018-04-30 21:01:23 +01:00
|
|
|
CThbase(CIopBios&, uint8*);
|
|
|
|
virtual ~CThbase() = 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;
|
2012-03-31 20:13:58 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
struct THREAD
|
|
|
|
{
|
|
|
|
uint32 attributes;
|
|
|
|
uint32 options;
|
|
|
|
uint32 threadProc;
|
|
|
|
uint32 stackSize;
|
|
|
|
uint32 priority;
|
|
|
|
};
|
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
uint32 CreateThread(const THREAD*);
|
|
|
|
uint32 DeleteThread(uint32);
|
|
|
|
int32 StartThread(uint32, uint32);
|
|
|
|
int32 StartThreadArgs(uint32, uint32, uint32);
|
|
|
|
uint32 ExitThread();
|
|
|
|
uint32 TerminateThread(uint32);
|
|
|
|
uint32 ChangeThreadPriority(uint32, uint32);
|
2018-05-07 16:34:42 -04:00
|
|
|
int32 RotateThreadReadyQueue(uint32);
|
2018-04-30 21:01:23 +01:00
|
|
|
int32 ReleaseWaitThread(uint32);
|
|
|
|
int32 iReleaseWaitThread(uint32);
|
|
|
|
uint32 GetThreadId();
|
|
|
|
uint32 ReferThreadStatus(uint32, uint32);
|
|
|
|
uint32 iReferThreadStatus(uint32, uint32);
|
|
|
|
uint32 SleepThread();
|
|
|
|
uint32 WakeupThread(uint32);
|
|
|
|
uint32 iWakeupThread(uint32);
|
|
|
|
int32 CancelWakeupThread(uint32);
|
|
|
|
int32 iCancelWakeupThread(uint32);
|
|
|
|
uint32 DelayThread(uint32);
|
|
|
|
uint32 GetSystemTime(uint32);
|
|
|
|
uint32 GetSystemTimeLow();
|
|
|
|
uint32 SetAlarm(uint32, uint32, uint32);
|
|
|
|
uint32 CancelAlarm(uint32, uint32);
|
2023-12-22 11:29:52 -05:00
|
|
|
uint32 iCancelAlarm(uint32, uint32);
|
2018-04-30 21:01:23 +01:00
|
|
|
void USecToSysClock(uint32, uint32);
|
|
|
|
void SysClockToUSec(uint32, uint32, uint32);
|
|
|
|
uint32 GetCurrentThreadPriority();
|
2021-08-30 15:23:59 -04:00
|
|
|
int32 GetThreadmanIdList(uint32, uint32, uint32, uint32);
|
2008-01-15 20:27:44 +00:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
uint8* m_ram;
|
|
|
|
CIopBios& m_bios;
|
2012-03-31 20:13:58 +00:00
|
|
|
};
|
2008-01-15 20:27:44 +00:00
|
|
|
}
|