mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-10 08:51:28 +12:00
PPUThread refactoring
`CallbackManager` removed, added _gcm_intr_thread for cellGcmSys `PPUThread` renamed to `ppu_thread`, inheritance allowed Added lightweight command queue for `ppu_thread` Implemented call stack dump for PPU `get_current_thread_mutex` removed `thread_ctrl::spawn`: minor initialization fix `thread_ctrl::wait_for` added `named_thread`: some methods added `cpu_thread::run` added Some bugs fixes, including SPU channels
This commit is contained in:
parent
33c59fa51b
commit
f8719c1230
99 changed files with 4480 additions and 4592 deletions
|
@ -58,12 +58,12 @@ void ppu_free_tls(u32 addr)
|
|||
}
|
||||
}
|
||||
|
||||
void sys_initialize_tls(PPUThread& ppu, u64 main_thread_id, u32 tls_seg_addr, u32 tls_seg_size, u32 tls_mem_size)
|
||||
void sys_initialize_tls(ppu_thread& ppu, u64 main_thread_id, u32 tls_seg_addr, u32 tls_seg_size, u32 tls_mem_size)
|
||||
{
|
||||
sysPrxForUser.notice("sys_initialize_tls(thread_id=0x%llx, addr=*0x%x, size=0x%x, mem_size=0x%x)", main_thread_id, tls_seg_addr, tls_seg_size, tls_mem_size);
|
||||
|
||||
// Uninitialized TLS expected.
|
||||
if (ppu.GPR[13] != 0) return;
|
||||
if (ppu.gpr[13] != 0) return;
|
||||
|
||||
// Initialize TLS memory
|
||||
s_tls_addr = tls_seg_addr;
|
||||
|
@ -75,7 +75,7 @@ void sys_initialize_tls(PPUThread& ppu, u64 main_thread_id, u32 tls_seg_addr, u3
|
|||
s_tls_map = std::make_unique<atomic_t<bool>[]>(s_tls_max);
|
||||
|
||||
// Allocate TLS for main thread
|
||||
ppu.GPR[13] = ppu_alloc_tls() + 0x7000 + 0x30;
|
||||
ppu.gpr[13] = ppu_alloc_tls() + 0x7000 + 0x30;
|
||||
|
||||
sysPrxForUser.notice("TLS initialized (addr=0x%x, size=0x%x, max=0x%x)", s_tls_area - 0x30, s_tls_size, s_tls_max);
|
||||
|
||||
|
@ -105,7 +105,7 @@ s64 _sys_process_at_Exitspawn()
|
|||
return CELL_OK;
|
||||
}
|
||||
|
||||
s32 sys_interrupt_thread_disestablish(PPUThread& ppu, u32 ih)
|
||||
s32 sys_interrupt_thread_disestablish(ppu_thread& ppu, u32 ih)
|
||||
{
|
||||
sysPrxForUser.notice("sys_interrupt_thread_disestablish(ih=0x%x)", ih);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue