mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-05 14:37:08 +00:00
some more constants
This commit is contained in:
parent
72c85744b9
commit
41b68ef353
3 changed files with 61 additions and 16 deletions
|
|
@ -817,8 +817,8 @@ void try_spawn_ppu_if_exclusive_program(const ppu_module& m)
|
|||
{
|
||||
ppu_thread_params p
|
||||
{
|
||||
.stack_addr = vm::cast(vm::alloc(0x100000, vm::stack, 4096)),
|
||||
.stack_size = 0x100000,
|
||||
.stack_addr = vm::cast(vm::alloc(SYS_PROCESS_PARAM_STACK_SIZE_MAX, vm::stack, 4096)),
|
||||
.stack_size = SYS_PROCESS_PARAM_STACK_SIZE_MAX,
|
||||
};
|
||||
|
||||
auto ppu = idm::make_ptr<named_thread<ppu_thread>>("PPU[0x1000000] Thread (test_thread)", p, "test_thread", 0);
|
||||
|
|
@ -1232,10 +1232,10 @@ bool ppu_load_exec(const ppu_exec_object& elf)
|
|||
u32 tls_vsize = 0;
|
||||
|
||||
// Process information
|
||||
u32 sdk_version = 0xffffffff;
|
||||
u32 sdk_version = SYS_PROCESS_PARAM_SDK_VERSION_UNKNOWN;
|
||||
s32 primary_prio = 1001;
|
||||
u32 primary_stacksize = 0x100000;
|
||||
u32 malloc_pagesize = 0x100000;
|
||||
u32 primary_stacksize = SYS_PROCESS_PARAM_STACK_SIZE_MAX;
|
||||
u32 malloc_pagesize = SYS_PROCESS_PARAM_MALLOC_PAGE_SIZE_1M;
|
||||
u32 ppc_seg = 0;
|
||||
|
||||
// Limit for analysis
|
||||
|
|
@ -1466,7 +1466,7 @@ bool ppu_load_exec(const ppu_exec_object& elf)
|
|||
ppu_loader.warning("Bad process_param size! [0x%x : 0x%x]", info.size, sizeof(process_param_t));
|
||||
}
|
||||
|
||||
if (info.magic != 0x13bcc5f6u)
|
||||
if (info.magic != SYS_PROCESS_PARAM_MAGIC)
|
||||
{
|
||||
ppu_loader.error("Bad process_param magic! [0x%x]", info.magic);
|
||||
}
|
||||
|
|
@ -1674,16 +1674,17 @@ bool ppu_load_exec(const ppu_exec_object& elf)
|
|||
// Fix primary stack size
|
||||
switch (u32 sz = 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
|
||||
case SYS_PROCESS_PRIMARY_STACK_SIZE_32K: primary_stacksize = 32 * 1024; break;
|
||||
case SYS_PROCESS_PRIMARY_STACK_SIZE_64K: primary_stacksize = 64 * 1024; break;
|
||||
case SYS_PROCESS_PRIMARY_STACK_SIZE_96K: primary_stacksize = 96 * 1024; break;
|
||||
case SYS_PROCESS_PRIMARY_STACK_SIZE_128K: primary_stacksize = 128 * 1024; break;
|
||||
case SYS_PROCESS_PRIMARY_STACK_SIZE_256K: primary_stacksize = 256 * 1024; break;
|
||||
case SYS_PROCESS_PRIMARY_STACK_SIZE_512K: primary_stacksize = 512 * 1024; break;
|
||||
case SYS_PROCESS_PRIMARY_STACK_SIZE_1M: primary_stacksize = 1024 * 1024; break;
|
||||
default:
|
||||
{
|
||||
primary_stacksize = utils::align<u32>(std::clamp<u32>(sz, 0x10000, 0x100000), 4096);
|
||||
// According to elad335, the min value seems to be 64KB instead of the expected 4KB (SYS_PROCESS_PARAM_STACK_SIZE_MIN)
|
||||
primary_stacksize = utils::align<u32>(std::clamp<u32>(sz, 0x10000, SYS_PROCESS_PARAM_STACK_SIZE_MAX), 4096);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue