mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-15 22:21:25 +00:00
Fix primary stack size
This commit is contained in:
parent
3cf0fb60a4
commit
0a89f1db39
@ -1345,7 +1345,7 @@ void ppu_load_exec(const ppu_exec_object& elf)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!load_libs.empty())
|
||||
{
|
||||
const std::string lle_dir = vfs::get("/dev_flash/sys/external/");
|
||||
@ -1426,6 +1426,18 @@ void ppu_load_exec(const ppu_exec_object& elf)
|
||||
*args++ = arg_addr;
|
||||
}
|
||||
|
||||
// Fix primary stack size
|
||||
switch (primary_stacksize)
|
||||
{
|
||||
case 0x10: primary_stacksize = 32 * 1024; break; // SYS_PROCESS_PRIMARY_STACK_SIZE_32K
|
||||
case 0x20: primary_stacksize = 64 * 1024; break; // SYS_PROCESS_PRIMARY_STACK_SIZE_64K
|
||||
case 0x30: primary_stacksize = 96 * 1024; break; // SYS_PROCESS_PRIMARY_STACK_SIZE_96K
|
||||
case 0x40: primary_stacksize = 128 * 1024; break; // SYS_PROCESS_PRIMARY_STACK_SIZE_128K
|
||||
case 0x50: primary_stacksize = 256 * 1024; break; // SYS_PROCESS_PRIMARY_STACK_SIZE_256K
|
||||
case 0x60: primary_stacksize = 512 * 1024; break; // SYS_PROCESS_PRIMARY_STACK_SIZE_512K
|
||||
case 0x70: primary_stacksize = 1024 * 1024; break; // SYS_PROCESS_PRIMARY_STACK_SIZE_1M
|
||||
}
|
||||
|
||||
// Initialize main thread
|
||||
auto ppu = idm::make_ptr<ppu_thread>("main_thread", primary_prio, primary_stacksize);
|
||||
|
||||
|
@ -677,7 +677,7 @@ ppu_thread::~ppu_thread()
|
||||
ppu_thread::ppu_thread(const std::string& name, u32 prio, u32 stack)
|
||||
: cpu_thread(idm::last_id())
|
||||
, prio(prio)
|
||||
, stack_size(stack ? ::align(std::min<u32>(stack, 0x100000), 0x1000) : 0x4000)
|
||||
, stack_size(stack >= 0x1000 ? ::align(std::min<u32>(stack, 0x100000), 0x1000) : 0x4000)
|
||||
, stack_addr(0)
|
||||
, start_time(get_system_time())
|
||||
, m_name(name)
|
||||
|
Loading…
x
Reference in New Issue
Block a user