From 3b359c7fddef178fa977fe6a76bb930be8b218d5 Mon Sep 17 00:00:00 2001 From: Kyon Date: Thu, 29 Oct 2026 17:17:20 +0000 Subject: [PATCH] feat(libSceAgcDriver): declare 22 callable exports --- core/libs/prx/libSceAgcDriver/Export.cpp | 110 ++++++++++++++++++ .../include/InventoryExports.hpp | 30 +++++ .../prx/libSceAgcDriver/libSceAgcDriver.hpp | 1 + docs/dev/debt/libSceAgcDriver.md | 29 +++++ 4 files changed, 170 insertions(+) create mode 100644 core/libs/prx/libSceAgcDriver/include/InventoryExports.hpp diff --git a/core/libs/prx/libSceAgcDriver/Export.cpp b/core/libs/prx/libSceAgcDriver/Export.cpp index 5754c3fcd3..8fd053db16 100644 --- a/core/libs/prx/libSceAgcDriver/Export.cpp +++ b/core/libs/prx/libSceAgcDriver/Export.cpp @@ -1,3 +1,5 @@ +#include "prx/libc/include/general/ExportMacros.hpp" +#include "prx/libSceAgcDriver/include/InventoryExports.hpp" #include "prx/libSceAgcDriver/include/AgcDriver.hpp" #include #include @@ -147,3 +149,111 @@ int APS5_VABI sceAgcDriverUserDataWriteSetMarker(void) { } } + +extern "C" { + +int APS5_VABI sceAgcDriverDeregisterCaptureInterface() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceAgcDriverIsCoredumpValid() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceAgcDriverIsSuspendPointInFlightDirect() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceAgcDriverRegisterCaptureInterface() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceAgcDriverReleaseRazorACQ() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceAgcDriverSetTFRingDirect() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI libSceAgcDriverUnknown_6WO4CscVnfM_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("6WO4CscVnfM", libSceAgcDriverUnknown_6WO4CscVnfM_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_6v_minus_D6CQHA4Y_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("6v-D6CQHA4Y", libSceAgcDriverUnknown_6v_minus_D6CQHA4Y_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_8CXPPlNmvIc_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("8CXPPlNmvIc", libSceAgcDriverUnknown_8CXPPlNmvIc_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_Cia3HgY0WiY_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("Cia3HgY0WiY", libSceAgcDriverUnknown_Cia3HgY0WiY_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_DGN_plus_IaHNR8o_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("DGN+IaHNR8o", libSceAgcDriverUnknown_DGN_plus_IaHNR8o_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_EqwPDQyh_plus_Ec_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("EqwPDQyh+Ec", libSceAgcDriverUnknown_EqwPDQyh_plus_Ec_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_IGYqP_plus_WKCgc_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("IGYqP+WKCgc", libSceAgcDriverUnknown_IGYqP_plus_WKCgc_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_LgctzJSGy7s_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("LgctzJSGy7s", libSceAgcDriverUnknown_LgctzJSGy7s_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_NmE3PfE211o_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("NmE3PfE211o", libSceAgcDriverUnknown_NmE3PfE211o_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_O144kUYDSBo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("O144kUYDSBo", libSceAgcDriverUnknown_O144kUYDSBo_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_gpF0LZ3_plus_19c_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("gpF0LZ3+19c", libSceAgcDriverUnknown_gpF0LZ3_plus_19c_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_mxyUaQfPgb8_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("mxyUaQfPgb8", libSceAgcDriverUnknown_mxyUaQfPgb8_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_oFb2hMcoJa4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("oFb2hMcoJa4", libSceAgcDriverUnknown_oFb2hMcoJa4_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_sW7yp7NVlrk_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("sW7yp7NVlrk", libSceAgcDriverUnknown_sW7yp7NVlrk_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_tD2ECNSuTQQ_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("tD2ECNSuTQQ", libSceAgcDriverUnknown_tD2ECNSuTQQ_nid_no_patch); + +int APS5_VABI libSceAgcDriverUnknown_wxdcyVqXJEY_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("wxdcyVqXJEY", libSceAgcDriverUnknown_wxdcyVqXJEY_nid_no_patch); + +} diff --git a/core/libs/prx/libSceAgcDriver/include/InventoryExports.hpp b/core/libs/prx/libSceAgcDriver/include/InventoryExports.hpp new file mode 100644 index 0000000000..c7095c8480 --- /dev/null +++ b/core/libs/prx/libSceAgcDriver/include/InventoryExports.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include "SceTypes.hpp" + +extern "C" { + +int APS5_VABI sceAgcDriverDeregisterCaptureInterface(); +int APS5_VABI sceAgcDriverIsCoredumpValid(); +int APS5_VABI sceAgcDriverIsSuspendPointInFlightDirect(); +int APS5_VABI sceAgcDriverRegisterCaptureInterface(); +int APS5_VABI sceAgcDriverReleaseRazorACQ(); +int APS5_VABI sceAgcDriverSetTFRingDirect(); +int APS5_VABI libSceAgcDriverUnknown_6WO4CscVnfM_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_6v_minus_D6CQHA4Y_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_8CXPPlNmvIc_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_Cia3HgY0WiY_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_DGN_plus_IaHNR8o_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_EqwPDQyh_plus_Ec_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_IGYqP_plus_WKCgc_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_LgctzJSGy7s_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_NmE3PfE211o_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_O144kUYDSBo_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_gpF0LZ3_plus_19c_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_mxyUaQfPgb8_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_oFb2hMcoJa4_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_sW7yp7NVlrk_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_tD2ECNSuTQQ_nid_no_patch(); +int APS5_VABI libSceAgcDriverUnknown_wxdcyVqXJEY_nid_no_patch(); + +} diff --git a/core/libs/prx/libSceAgcDriver/libSceAgcDriver.hpp b/core/libs/prx/libSceAgcDriver/libSceAgcDriver.hpp index 342610270a..8600d53ae9 100644 --- a/core/libs/prx/libSceAgcDriver/libSceAgcDriver.hpp +++ b/core/libs/prx/libSceAgcDriver/libSceAgcDriver.hpp @@ -10,3 +10,4 @@ #include "prx/libSceAgcDriver/Submit/include/Acb.hpp" #include "prx/libSceAgcDriver/Submit/include/CommandBuffer.hpp" #include "prx/libSceAgcDriver/Submit/include/Dcb.hpp" +#include "prx/libSceAgcDriver/include/InventoryExports.hpp" diff --git a/docs/dev/debt/libSceAgcDriver.md b/docs/dev/debt/libSceAgcDriver.md index f8c2ffb1aa..6bb9eecebf 100644 --- a/docs/dev/debt/libSceAgcDriver.md +++ b/docs/dev/debt/libSceAgcDriver.md @@ -312,3 +312,32 @@ - [Draw finisher](../../../core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawPipeline.cpp) (`APS5_DRAW_PIPELINE`) - opt-in. The Linux main-image page table it adds matches what Windows already does by default. - [Multi-submit count overflow and buffer validation](../../../core/libs/prx/libSceAgcDriver/Submit/src/Dcb.cpp) (libSceAgcDriver) - whether the console driver imposes an architectural submission packet limit or allows null buffer pointers with non-zero sizes in multi-submit arrays is unmeasured; AgcDriver::SubmitMany validates count against 32-bit pointer array bounds overflow and rejects null addresses for non-empty command buffers with a runtime exception. + +### Additional callable exports + +- [Additional callable exports](../../../core/libs/prx/libSceAgcDriver/Export.cpp) - 22 entries observed in the 3.20 export inventory and present in the later 13.60-labelled inventory are import-resolution declarations only. The later inventory label does not authenticate a retail firmware version. 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. Data exports require separate layout and ownership analysis. 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). + +| Name | NID | +| --- | --- | +| `sceAgcDriverDeregisterCaptureInterface` | `qR+S4WqJvUM` | +| `sceAgcDriverIsCoredumpValid` | `+NIAY3DWpOw` | +| `sceAgcDriverIsSuspendPointInFlightDirect` | `I6elAJxk6Jo` | +| `sceAgcDriverRegisterCaptureInterface` | `oz3Yd--lAEE` | +| `sceAgcDriverReleaseRazorACQ` | `TEOAw-eLjNo` | +| `sceAgcDriverSetTFRingDirect` | `16IjQxB-Heo` | +| `Unknown` | `6WO4CscVnfM` | +| `Unknown` | `6v-D6CQHA4Y` | +| `Unknown` | `8CXPPlNmvIc` | +| `Unknown` | `Cia3HgY0WiY` | +| `Unknown` | `DGN+IaHNR8o` | +| `Unknown` | `EqwPDQyh+Ec` | +| `Unknown` | `IGYqP+WKCgc` | +| `Unknown` | `LgctzJSGy7s` | +| `Unknown` | `NmE3PfE211o` | +| `Unknown` | `O144kUYDSBo` | +| `Unknown` | `gpF0LZ3+19c` | +| `Unknown` | `mxyUaQfPgb8` | +| `Unknown` | `oFb2hMcoJa4` | +| `Unknown` | `sW7yp7NVlrk` | +| `Unknown` | `tD2ECNSuTQQ` | +| `Unknown` | `wxdcyVqXJEY` |