Files
AnyPS5/core/libs/prx/libSceSharePlay/Export.cpp
T
juanpimg 1f1add461e feat(prx): declare the missing PS5 3.20 system exports in the next tier of libraries
AnyPS5 resolves a title's imports by NID, so a title that imports a system
function that no AnyPS5 library provides fails to load with an unresolved
import. This declares 222 such exports across 11 PS5 system libraries that
AnyPS5 implements but does not provide.

Each declaration calls NotImplemented_nid_no_patch and returns 0; none of
them implements the function. A declaration with a credible prototype uses
it and cites the source with a pinned commit; the rest are declared without
parameters, which resolves the import without making an ABI claim. The
technical-debt files record the limitation per library.

The list is the intersection of the export table of the console's library
(function symbols only), the pinned aerolib names and the functions not yet
defined anywhere in the repo. Every name recomputes to its NID with
tools/nid_names.py.

libSceAudio3d and libSceVoice are left out because #8331 declares them.
2026-10-20 23:22:17 +02:00

115 lines
2.6 KiB
C++

#include <cstdint>
#include <cstddef>
#include "SceTypes.hpp"
#include "prx/libc/include/General.hpp"
static constexpr int SCE_SHARE_PLAY_ERROR_INVALID_ARGS = static_cast<int>(0x810E0001);
static constexpr std::int32_t SCE_USER_SERVICE_USER_ID_INVALID = -1;
extern "C" {
int APS5_VABI sceSharePlayInitialize(void* heap, size_t heapSize) {
(void)heap;
if (heapSize == 0) APS5_INVALID_ARG_EX;
return 0;
}
int APS5_VABI sceSharePlayTerminate(void) {
return 0;
}
int APS5_VABI sceSharePlayGetCurrentConnectionInfoA(SharePlayConnectionInfoA* info) {
if (info == nullptr) return SCE_SHARE_PLAY_ERROR_INVALID_ARGS;
*info = {};
info->hostUserId = SCE_USER_SERVICE_USER_ID_INVALID;
info->visitorUserId = SCE_USER_SERVICE_USER_ID_INVALID;
return 0;
}
int APS5_VABI sceSharePlayProhibitController(int prohibited) {
if (prohibited != 0 && prohibited != 1) APS5_INVALID_ARG_EX;
return 0;
}
int APS5_VABI sceSharePlayCrashDaemon(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayGetCurrentConnectionInfo(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayGetCurrentInfo(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayGetEvent(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayNotifyDialogOpen(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayNotifyForceCloseForCdlg(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayResumeScreenForCdlg(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayServerLock(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayServerUnLock(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlaySetMode(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlaySetProhibition(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlaySetProhibitionModeWithAppId(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayStartStandby(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayStartStreaming(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayStopStandby(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
int APS5_VABI sceSharePlayStopStreaming(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
}