AnyPS5/core/libs/prx/libSceNpSessionSignaling/Export.cpp

79 lines
2.3 KiB
C++

#include <cstdint>
#include <cstddef>
#include "SceTypes.hpp"
#include "prx/libc/include/General.hpp"
#include <atomic>
// Peer-to-peer signaling needs the network: contexts exist, but sessions never activate.
static constexpr int SCE_NP_SESSION_SIGNALING_ERROR_INVALID_ARGUMENT = static_cast<int>(0x80552D02);
static constexpr int SCE_NP_SESSION_SIGNALING_ERROR_UNAVAILABLE = static_cast<int>(0x80552D06);
static std::atomic<uint32_t> g_nextContext{1};
extern "C" {
int APS5_VABI sceNpSessionSignalingInitialize(void* param) {
(void)param;
return 0;
}
int APS5_VABI sceNpSessionSignalingActivateSession(void) {
return SCE_NP_SESSION_SIGNALING_ERROR_UNAVAILABLE;
}
int APS5_VABI sceNpSessionSignalingCreateContext2(const void* param, uint32_t* context_id) {
(void)param;
if (!context_id) return SCE_NP_SESSION_SIGNALING_ERROR_INVALID_ARGUMENT;
*context_id = g_nextContext.fetch_add(1, std::memory_order_relaxed);
return 0;
}
int APS5_VABI sceNpSessionSignalingCreateContext(const void* param, uint32_t* context_id) {
return sceNpSessionSignalingCreateContext2(param, context_id);
}
int APS5_VABI sceNpSessionSignalingDeactivate(uint32_t context_id) {
(void)context_id;
return 0;
}
int APS5_VABI sceNpSessionSignalingDestroyContext(uint32_t context_id) {
(void)context_id;
return 0;
}
int APS5_VABI sceNpSessionSignalingGetConnectionInfo(void) {
return SCE_NP_SESSION_SIGNALING_ERROR_UNAVAILABLE;
}
int APS5_VABI sceNpSessionSignalingActivateUser(void) {
return SCE_NP_SESSION_SIGNALING_ERROR_UNAVAILABLE;
}
int APS5_VABI sceNpSessionSignalingGetConnectionFromPeerAddress2(void) {
return SCE_NP_SESSION_SIGNALING_ERROR_UNAVAILABLE;
}
int APS5_VABI sceNpSessionSignalingTerminate(void) {
return 0;
}
int32_t APS5_VABI sceNpSessionSignalingGetLocalNetInfo(int32_t context_id, void* info) {
(void)context_id;
(void)info;
NotImplemented_nid_no_patch(__func__);
return 0;
}
APS5_EXPORT("lbXTXRG5nyM", sceNpSessionSignalingUnknown00);
int APS5_VABI sceNpSessionSignalingUnknown00(void) {
NotImplemented_nid_no_patch("lbXTXRG5nyM");
return 0;
}
APS5_EXPORT("+Q++Q49a9z8", sceNpSessionSignalingUnknown01);
int APS5_VABI sceNpSessionSignalingUnknown01(void) {
NotImplemented_nid_no_patch("+Q++Q49a9z8");
return 0;
}
}