diff --git a/core/libs/prx/libSceSystemService/CMakeLists.txt b/core/libs/prx/libSceSystemService/CMakeLists.txt index dd55e9a025..5885fd39d5 100644 --- a/core/libs/prx/libSceSystemService/CMakeLists.txt +++ b/core/libs/prx/libSceSystemService/CMakeLists.txt @@ -215,3 +215,5 @@ if(BUILD_TESTING) "PATH=path_list_prepend:$") endif() endif() + +target_sources(libSceSystemService PRIVATE InventoryExports.cpp) diff --git a/core/libs/prx/libSceSystemService/InventoryExports.cpp b/core/libs/prx/libSceSystemService/InventoryExports.cpp new file mode 100644 index 0000000000..86a1ebb382 --- /dev/null +++ b/core/libs/prx/libSceSystemService/InventoryExports.cpp @@ -0,0 +1,167 @@ +#include "prx/libSceSystemService/include/InventoryExports.hpp" +#include "prx/libc/include/General.hpp" +#include "prx/libc/include/general/ExportMacros.hpp" + +extern "C" { + +int APS5_VABI libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("16waHD4tFBo", libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("1m-E1Xh8COo", libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("7eu2qjQGigw", libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("90unWbnI0qE", libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("E-bXVJqwGZw", libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("G3oPdw3lkps", libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("KgiwSrROsIQ", libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("LxGOxroprpg", libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("NXFtO8BfVeo", libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("Oxh0CSsTZ78", libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("OyTwhCKWXi4", libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("U0HutHWnMBM", libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("VDs9VSjSJh0", libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("ZWNP+-dWr8E", libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("axzblV8OvWU", libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("bJyWctnSXyU", libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("bUNkT3XDg0Y", libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("c5+4Scso9EU", libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("fBGD-HNimSk", libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("fPAZ5DBsDxo", libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("ifJiF5witJ4", libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("kDGjRMtUDxo", libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("lgpIdZ8T0xg", libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("pj1SzIAxPlk", libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("qdTPJWjquDc", libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("rIqPq0oWlrg", libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("sgYo-zXHQRE", libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("tPMOYbbviYs", libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("uElcdmhh-c8", libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("xn-HgPW29x4", libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("y16IXiJfafA", libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("yOiZq+9-ZMQ", libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch); + +} diff --git a/core/libs/prx/libSceSystemService/include/InventoryExports.hpp b/core/libs/prx/libSceSystemService/include/InventoryExports.hpp new file mode 100644 index 0000000000..52c56ee1f1 --- /dev/null +++ b/core/libs/prx/libSceSystemService/include/InventoryExports.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include "SceTypes.hpp" + +extern "C" { + +int APS5_VABI libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch(); + +} diff --git a/core/libs/prx/libSceSystemService/libSceSystemService.hpp b/core/libs/prx/libSceSystemService/libSceSystemService.hpp index e3ff176277..1268c62468 100644 --- a/core/libs/prx/libSceSystemService/libSceSystemService.hpp +++ b/core/libs/prx/libSceSystemService/libSceSystemService.hpp @@ -1,3 +1,4 @@ #pragma once #include "prx/libSceSystemService/include/SystemService.hpp" +#include "prx/libSceSystemService/include/InventoryExports.hpp" diff --git a/docs/dev/debt/libSceSystemService.md b/docs/dev/debt/libSceSystemService.md index 98e0f4a8c9..7dd5d472d8 100644 --- a/docs/dev/debt/libSceSystemService.md +++ b/docs/dev/debt/libSceSystemService.md @@ -1,5 +1,46 @@ # libSceSystemService technical debt +### Additional callable exports + +- [Additional callable exports](../../../core/libs/prx/libSceSystemService/Export.cpp) - 32 entries present in both version-labelled images are import-resolution declarations only. None is listed in the pinned public 3.20 catalogue for this library. Neither label independently authenticates retail firmware provenance. Parameter lists, return types and behavior are unverified; parameterless `int` declarations are placeholders, not verified ABI contracts. Every entry throws through `NotImplemented_nid_no_patch`. Unidentified names use literal NID aliases. No runtime functionality is implemented. Identified candidate names match their NIDs in the [public symbol database](https://github.com/zecoxao/sce_symbols/blob/2883963a0a514ba6e77407a08ef4730a65e88254/aerolib.csv) or [supplemental catalog](https://github.com/claimore22/ps5rs/blob/2304be5131221bae0dac24b9767cabffda33f747/data/nids.csv). + +[Version-pinned selected ELF export records](https://gist.github.com/kyon-eth/3fbb1a4a6f95a936b4cd58e9c3d8c50c/5e3af709224ed8235af11337309af0725e5685cb) list every NID below with its image label, decoded export module and library, raw qualified symbol, ELF function type, value and size for each inspected version-labelled image. The extract SHA-256 is `02ab27f12bcd0cc9fa03fa33f55fc201110f0d54a86bbbaa093d55d0a8cf262d`; its full-module sorted-function-NID digests and raw module-parameter words permit independent comparison. This is an analyst-produced metadata record, not independent authentication of the original images or proof of prototypes or behavior. + +| Name | NID | +| --- | --- | +| `Unknown` | `16waHD4tFBo` | +| `Unknown` | `1m-E1Xh8COo` | +| `Unknown` | `7eu2qjQGigw` | +| `Unknown` | `90unWbnI0qE` | +| `Unknown` | `E-bXVJqwGZw` | +| `Unknown` | `G3oPdw3lkps` | +| `Unknown` | `KgiwSrROsIQ` | +| `Unknown` | `LxGOxroprpg` | +| `Unknown` | `NXFtO8BfVeo` | +| `Unknown` | `Oxh0CSsTZ78` | +| `Unknown` | `OyTwhCKWXi4` | +| `Unknown` | `U0HutHWnMBM` | +| `Unknown` | `VDs9VSjSJh0` | +| `Unknown` | `ZWNP+-dWr8E` | +| `Unknown` | `axzblV8OvWU` | +| `Unknown` | `bJyWctnSXyU` | +| `Unknown` | `bUNkT3XDg0Y` | +| `Unknown` | `c5+4Scso9EU` | +| `Unknown` | `fBGD-HNimSk` | +| `Unknown` | `fPAZ5DBsDxo` | +| `Unknown` | `ifJiF5witJ4` | +| `Unknown` | `kDGjRMtUDxo` | +| `Unknown` | `lgpIdZ8T0xg` | +| `Unknown` | `pj1SzIAxPlk` | +| `Unknown` | `qdTPJWjquDc` | +| `Unknown` | `rIqPq0oWlrg` | +| `Unknown` | `sgYo-zXHQRE` | +| `Unknown` | `tPMOYbbviYs` | +| `Unknown` | `uElcdmhh-c8` | +| `Unknown` | `xn-HgPW29x4` | +| `Unknown` | `y16IXiJfafA` | +| `Unknown` | `yOiZq+9-ZMQ` | + ### Silent stubs - [libSceSystemService](../../../core/libs/prx/libSceSystemService/Export.cpp) - `sceSystemServicePowerTick`, `sceSystemServiceReportAbnormalTermination`, `sceSystemServiceDisableMusicPlayer`, `sceSystemServiceReenableMusicPlayer`, `sceSystemServiceDisableMediaPlay` and `sceSystemServiceReenableMediaPlay` return success and do nothing: the host has no auto power-off timer to reset, no system crash reporter to notify, no system music player to pause or resume and no system media playback to disable. PPSA01521 calls `sceSystemServiceDisableMediaPlay` during start-up, and its wrappers for both pass no arguments