From 51eafcc869727d50c9f5776b0c0bd64a6e5e5b07 Mon Sep 17 00:00:00 2001 From: xddxd Date: Mon, 8 Mar 2021 17:28:07 +0200 Subject: [PATCH] Move sys_crashdump to it's own file and make it a module itself --- rpcs3/Emu/CMakeLists.txt | 1 + rpcs3/Emu/Cell/Modules/sysPrxForUser.cpp | 30 -------------------- rpcs3/Emu/Cell/Modules/sysPrxForUser.h | 12 -------- rpcs3/Emu/Cell/Modules/sys_crashdump.cpp | 36 ++++++++++++++++++++++++ rpcs3/Emu/Cell/Modules/sys_crashdump.h | 14 +++++++++ rpcs3/Emu/Cell/PPUModule.cpp | 1 + rpcs3/Emu/Cell/PPUModule.h | 1 + rpcs3/emucore.vcxproj | 2 ++ rpcs3/emucore.vcxproj.filters | 6 ++++ 9 files changed, 61 insertions(+), 42 deletions(-) create mode 100644 rpcs3/Emu/Cell/Modules/sys_crashdump.cpp create mode 100644 rpcs3/Emu/Cell/Modules/sys_crashdump.h diff --git a/rpcs3/Emu/CMakeLists.txt b/rpcs3/Emu/CMakeLists.txt index 19ec166baeda..7f98d8176325 100644 --- a/rpcs3/Emu/CMakeLists.txt +++ b/rpcs3/Emu/CMakeLists.txt @@ -319,6 +319,7 @@ target_sources(rpcs3_emu PRIVATE Cell/Modules/sceNpTus.cpp Cell/Modules/sceNpUtil.cpp Cell/Modules/StaticHLE.cpp + Cell/Modules/sys_crashdump.cpp Cell/Modules/sys_game.cpp Cell/Modules/sys_heap.cpp Cell/Modules/sys_io_.cpp diff --git a/rpcs3/Emu/Cell/Modules/sysPrxForUser.cpp b/rpcs3/Emu/Cell/Modules/sysPrxForUser.cpp index a492993af7da..c8b04558ac0a 100644 --- a/rpcs3/Emu/Cell/Modules/sysPrxForUser.cpp +++ b/rpcs3/Emu/Cell/Modules/sysPrxForUser.cpp @@ -144,30 +144,6 @@ error_code sys_lv2coredump_D725F320() fmt::throw_exception("Unknown, unimplemented."); } -error_code sys_crash_dump_get_user_log_area(u8 index, vm::ptr entry) -{ - sysPrxForUser.todo("sys_crash_dump_get_user_log_area(index=%d, entry=*0x%x)", index, entry); - - if (index > SYS_CRASH_DUMP_MAX_LOG_AREA || !entry) - { - return CELL_EINVAL; - } - - return CELL_OK; -} - -error_code sys_crash_dump_set_user_log_area(u8 index, vm::ptr new_entry) -{ - sysPrxForUser.todo("sys_crash_dump_set_user_log_area(index=%d, new_entry=*0x%x)", index, new_entry); - - if (index > SYS_CRASH_DUMP_MAX_LOG_AREA || !new_entry) - { - return CELL_EINVAL; - } - - return CELL_OK; -} - error_code sys_get_bd_media_id() { UNIMPLEMENTED_FUNC(sysPrxForUser); @@ -225,12 +201,6 @@ DECLARE(ppu_module_manager::sysPrxForUser)("sysPrxForUser", []() REG_FNID(sys_lv2coredump, 0xD725F320, sys_lv2coredump_D725F320); }); - static ppu_static_module sys_crashdump("sys_crashdump", []() - { - REG_FUNC(sys_crashdump, sys_crash_dump_get_user_log_area); - REG_FUNC(sys_crashdump, sys_crash_dump_set_user_log_area); - }); - static ppu_static_module sysBdMediaId("sysBdMediaId", []() { REG_FUNC(sysBdMediaId, sys_get_bd_media_id); diff --git a/rpcs3/Emu/Cell/Modules/sysPrxForUser.h b/rpcs3/Emu/Cell/Modules/sysPrxForUser.h index 1bb9b27077c6..27b87af6d6f6 100644 --- a/rpcs3/Emu/Cell/Modules/sysPrxForUser.h +++ b/rpcs3/Emu/Cell/Modules/sysPrxForUser.h @@ -43,18 +43,6 @@ struct sys_lwmutex_locker } }; -enum -{ - SYS_CRASH_DUMP_MAX_LABEL_SIZE = 16, - SYS_CRASH_DUMP_MAX_LOG_AREA = 127 // not actually defined in CELL -}; - -struct sys_crash_dump_log_area_info_t -{ - char label[SYS_CRASH_DUMP_MAX_LABEL_SIZE]; // 15 + 1 (0 terminated) - vm::ptr addr; - be_t size; -}; struct sys_lwcond_t; struct sys_lwcond_attribute_t; diff --git a/rpcs3/Emu/Cell/Modules/sys_crashdump.cpp b/rpcs3/Emu/Cell/Modules/sys_crashdump.cpp new file mode 100644 index 000000000000..ee3800664044 --- /dev/null +++ b/rpcs3/Emu/Cell/Modules/sys_crashdump.cpp @@ -0,0 +1,36 @@ +#include "stdafx.h" +#include "Emu/Cell/PPUModule.h" + +#include "sys_crashdump.h" + +LOG_CHANNEL(sys_crashdump); + +error_code sys_crash_dump_get_user_log_area(u8 index, vm::ptr entry) +{ + sys_crashdump.todo("sys_crash_dump_get_user_log_area(index=%d, entry=*0x%x)", index, entry); + + if (index > SYS_CRASH_DUMP_MAX_LOG_AREA || !entry) + { + return CELL_EINVAL; + } + + return CELL_OK; +} + +error_code sys_crash_dump_set_user_log_area(u8 index, vm::ptr new_entry) +{ + sys_crashdump.todo("sys_crash_dump_set_user_log_area(index=%d, new_entry=*0x%x)", index, new_entry); + + if (index > SYS_CRASH_DUMP_MAX_LOG_AREA || !new_entry) + { + return CELL_EINVAL; + } + + return CELL_OK; +} + +DECLARE(ppu_module_manager::sys_crashdump) ("sys_crashdump", []() +{ + REG_FUNC(sys_crashdump, sys_crash_dump_get_user_log_area); + REG_FUNC(sys_crashdump, sys_crash_dump_set_user_log_area); +}); diff --git a/rpcs3/Emu/Cell/Modules/sys_crashdump.h b/rpcs3/Emu/Cell/Modules/sys_crashdump.h new file mode 100644 index 000000000000..12cbe9854486 --- /dev/null +++ b/rpcs3/Emu/Cell/Modules/sys_crashdump.h @@ -0,0 +1,14 @@ +#pragma once + +enum +{ + SYS_CRASH_DUMP_MAX_LABEL_SIZE = 16, + SYS_CRASH_DUMP_MAX_LOG_AREA = 127 // not actually defined in CELL +}; + +struct sys_crash_dump_log_area_info_t +{ + char label[SYS_CRASH_DUMP_MAX_LABEL_SIZE]; // 15 + 1 (0 terminated) + vm::ptr addr; + be_t size; +}; diff --git a/rpcs3/Emu/Cell/PPUModule.cpp b/rpcs3/Emu/Cell/PPUModule.cpp index 80f099496aa2..70b0c11caf3e 100644 --- a/rpcs3/Emu/Cell/PPUModule.cpp +++ b/rpcs3/Emu/Cell/PPUModule.cpp @@ -241,6 +241,7 @@ static void ppu_initialize_modules(ppu_linkage_info* link) &ppu_module_manager::sceNpTrophy, &ppu_module_manager::sceNpTus, &ppu_module_manager::sceNpUtil, + &ppu_module_manager::sys_crashdump, &ppu_module_manager::sys_io, &ppu_module_manager::sys_net, &ppu_module_manager::sysPrxForUser, diff --git a/rpcs3/Emu/Cell/PPUModule.h b/rpcs3/Emu/Cell/PPUModule.h index 6dec60458a8a..ca5c8e4b703c 100644 --- a/rpcs3/Emu/Cell/PPUModule.h +++ b/rpcs3/Emu/Cell/PPUModule.h @@ -261,6 +261,7 @@ class ppu_module_manager final static const ppu_static_module sceNpTrophy; static const ppu_static_module sceNpTus; static const ppu_static_module sceNpUtil; + static const ppu_static_module sys_crashdump; static const ppu_static_module sys_io; static const ppu_static_module sys_net; static const ppu_static_module sysPrxForUser; diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index e48c9c2a1fde..3e68f02834ab 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -75,6 +75,7 @@ true + @@ -449,6 +450,7 @@ + diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index 43019c7a5780..d76a51e5b58d 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -983,6 +983,9 @@ Emu\GPU\RSX\Common + + Emu\Cell\Modules + @@ -1519,6 +1522,9 @@ Emu\Cell\Modules + + Emu\Cell\Modules + Emu\Cell\Modules