mirror of https://github.com/RPCS3/rpcs3.git
Move sys_process_exit
This commit is contained in:
parent
01ffaab3e0
commit
669b1385cc
|
@ -21,6 +21,23 @@ s64 sys_time_get_system_time()
|
|||
return get_system_time();
|
||||
}
|
||||
|
||||
s32 sys_process_exit(ppu_thread& ppu, s32 status)
|
||||
{
|
||||
vm::temporary_unlock(ppu);
|
||||
|
||||
sysPrxForUser.warning("sys_process_exit(status=0x%x)", status);
|
||||
|
||||
Emu.CallAfter([]()
|
||||
{
|
||||
sysPrxForUser.success("Process finished");
|
||||
Emu.Stop();
|
||||
});
|
||||
|
||||
thread_ctrl::eternalize();
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
s64 _sys_process_atexitspawn()
|
||||
{
|
||||
sysPrxForUser.todo("_sys_process_atexitspawn()");
|
||||
|
@ -236,7 +253,6 @@ DECLARE(ppu_module_manager::sysPrxForUser)("sysPrxForUser", []()
|
|||
|
||||
REG_FUNC(sysPrxForUser, sys_time_get_system_time);
|
||||
|
||||
// TODO: split syscalls and liblv2 functions
|
||||
REG_FUNC(sysPrxForUser, sys_process_exit);
|
||||
REG_FUNC(sysPrxForUser, _sys_process_atexitspawn);
|
||||
REG_FUNC(sysPrxForUser, _sys_process_at_Exitspawn);
|
||||
|
|
|
@ -7,7 +7,6 @@ extern std::string ppu_get_syscall_name(u64 code)
|
|||
{
|
||||
case 1: return "sys_process_getpid";
|
||||
case 2: return "sys_process_wait_for_child";
|
||||
case 3: return "sys_process_exit";
|
||||
case 4: return "sys_process_get_status";
|
||||
case 5: return "sys_process_detach_child";
|
||||
case 12: return "sys_process_get_number_of_object";
|
||||
|
@ -16,10 +15,10 @@ extern std::string ppu_get_syscall_name(u64 code)
|
|||
case 18: return "sys_process_getppid";
|
||||
case 19: return "sys_process_kill";
|
||||
case 21: return "_sys_process_spawn";
|
||||
case 22: return "sys_process_exit";
|
||||
case 22: return "_sys_process_exit";
|
||||
case 23: return "sys_process_wait_for_child2";
|
||||
case 25: return "sys_process_get_sdk_version";
|
||||
case 26: return "_sys_process_exit";
|
||||
case 26: return "_sys_process_exit2";
|
||||
case 28: return "_sys_process_get_number_of_object";
|
||||
case 29: return "sys_process_get_id";
|
||||
case 30: return "_sys_process_get_paramsfo";
|
||||
|
|
|
@ -76,11 +76,11 @@ const std::array<ppu_function_t, 1024> s_ppu_syscall_table
|
|||
BIND_FUNC(sys_process_kill), //19 (0x013)
|
||||
null_func, //20 (0x014) UNS
|
||||
null_func,//BIND_FUNC(_sys_process_spawn), //21 (0x015) DBG
|
||||
null_func,//BIND_FUNC(sys_process_exit), //22 (0x016)
|
||||
BIND_FUNC(_sys_process_exit), //22 (0x016)
|
||||
BIND_FUNC(sys_process_wait_for_child2), //23 (0x017) DBG
|
||||
null_func,//BIND_FUNC(), //24 (0x018) DBG
|
||||
BIND_FUNC(sys_process_get_sdk_version), //25 (0x019)
|
||||
null_func,//BIND_FUNC(_sys_process_exit), //26 (0x01A)
|
||||
BIND_FUNC(_sys_process_exit2), //26 (0x01A)
|
||||
null_func,//BIND_FUNC(), //27 (0x01B) DBG
|
||||
null_func,//BIND_FUNC(_sys_process_get_number_of_object)//28 (0x01C) ROOT
|
||||
BIND_FUNC(sys_process_get_id), //29 (0x01D) ROOT
|
||||
|
|
|
@ -46,23 +46,6 @@ s32 sys_process_getppid()
|
|||
return 0;
|
||||
}
|
||||
|
||||
s32 sys_process_exit(ppu_thread& ppu, s32 status)
|
||||
{
|
||||
vm::temporary_unlock(ppu);
|
||||
|
||||
sys_process.warning("sys_process_exit(status=0x%x)", status);
|
||||
|
||||
Emu.CallAfter([]()
|
||||
{
|
||||
sys_process.success("Process finished");
|
||||
Emu.Stop();
|
||||
});
|
||||
|
||||
thread_ctrl::eternalize();
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
template <typename T, typename Get>
|
||||
u32 idm_get_count()
|
||||
{
|
||||
|
|
|
@ -37,10 +37,9 @@ s32 _sys_process_get_paramsfo(vm::ps3::ptr<char> buffer);
|
|||
s32 sys_process_get_sdk_version(u32 pid, vm::ps3::ptr<s32> version);
|
||||
s32 sys_process_get_status(u64 unk);
|
||||
s32 sys_process_is_spu_lock_line_reservation_address(u32 addr, u64 flags);
|
||||
s32 sys_process_exit(ppu_thread& ppu, s32 errorcode);
|
||||
s32 _sys_process_exit(ppu_thread& ppu, s32 exitcode, u32 arg2, u32 arg3);
|
||||
s32 _sys_process_exit2(ppu_thread& ppu, s32 exitcode, u32 arg2, u32 arg3, u32 arg4);
|
||||
s32 sys_process_kill(u32 pid);
|
||||
s32 sys_process_wait_for_child(u32 pid, vm::ps3::ptr<u32> status, u64 unk);
|
||||
s32 sys_process_wait_for_child2(u64 unk1, u64 unk2, u64 unk3, u64 unk4, u64 unk5, u64 unk6);
|
||||
s32 sys_process_detach_child(u64 unk);
|
||||
void sys_game_process_exitspawn(vm::ps3::cptr<char> path, u32 argv_addr, u32 envp_addr, u32 data_addr, u32 data_size, u32 prio, u64 flags);
|
||||
void sys_game_process_exitspawn2(vm::ps3::cptr<char> path, u32 argv_addr, u32 envp_addr, u32 data_addr, u32 data_size, u32 prio, u64 flags);
|
||||
|
|
Loading…
Reference in New Issue