cellAtrac draft

sys_spu_thread_group_resume
Some bugs fixed
This commit is contained in:
Nekotekina 2014-03-22 15:08:07 +04:00
parent 169fcd098b
commit d0ea397492
14 changed files with 113 additions and 45 deletions

View file

@ -226,6 +226,8 @@ int sys_spu_thread_group_start(u32 id)
return CELL_ESRCH;
}
// TODO: check group state
for (u32 i = 0; i < group_info->list.GetCount(); i++)
{
CPUThread* t;
@ -249,7 +251,8 @@ int sys_spu_thread_group_suspend(u32 id)
return CELL_ESRCH;
}
//Emu.Pause();
// TODO: check group state
for (u32 i = 0; i < group_info->list.GetCount(); i++)
{
if (CPUThread* t = Emu.GetCPU().GetThread(group_info->list[i]))
@ -261,6 +264,30 @@ int sys_spu_thread_group_suspend(u32 id)
return CELL_OK;
}
//175
int sys_spu_thread_group_resume(u32 id)
{
sc_spu.Log("sys_spu_thread_group_resume(id=%d)", id);
SpuGroupInfo* group_info;
if(!Emu.GetIdManager().GetIDData(id, group_info))
{
return CELL_ESRCH;
}
// TODO: check group state
for (u32 i = 0; i < group_info->list.GetCount(); i++)
{
if (CPUThread* t = Emu.GetCPU().GetThread(group_info->list[i]))
{
t->Resume();
}
}
return CELL_OK;
}
//170
int sys_spu_thread_group_create(mem32_t id, u32 num, int prio, mem_ptr_t<sys_spu_thread_group_attribute> attr)
{