diff --git a/src/core/libraries/network/netctl.cpp b/src/core/libraries/network/netctl.cpp index 22f3aea3e..29c4038f4 100644 --- a/src/core/libraries/network/netctl.cpp +++ b/src/core/libraries/network/netctl.cpp @@ -331,8 +331,16 @@ int PS4_SYSV_ABI Func_D8DCB6973537A3DC() { return ORBIS_OK; } +struct NetCtlCallbackForNpToolkit { + OrbisNetCtlCallbackForNpToolkit func; + void* arg; +}; + +NetCtlCallbackForNpToolkit NetCtlCbForNp; + int PS4_SYSV_ABI sceNetCtlCheckCallbackForNpToolkit() { - LOG_ERROR(Lib_NetCtl, "(STUBBED) called"); + // LOG_ERROR(Lib_NetCtl, "(STUBBED) called"); + NetCtlCbForNp.func(1, NetCtlCbForNp.arg); // disconnect return ORBIS_OK; } @@ -341,8 +349,12 @@ int PS4_SYSV_ABI sceNetCtlClearEventForNpToolkit() { return ORBIS_OK; } -int PS4_SYSV_ABI sceNetCtlRegisterCallbackForNpToolkit() { +int PS4_SYSV_ABI sceNetCtlRegisterCallbackForNpToolkit(OrbisNetCtlCallbackForNpToolkit func, + void* arg, int* ci) { LOG_ERROR(Lib_NetCtl, "(STUBBED) called"); + *ci = 1; + NetCtlCbForNp.func = func; + NetCtlCbForNp.arg = arg; return ORBIS_OK; } diff --git a/src/core/libraries/network/netctl.h b/src/core/libraries/network/netctl.h index e7369f8af..fda7f583a 100644 --- a/src/core/libraries/network/netctl.h +++ b/src/core/libraries/network/netctl.h @@ -47,6 +47,7 @@ typedef union OrbisNetCtlInfo { } SceNetCtlInfo; using OrbisNetCtlCallback = PS4_SYSV_ABI void (*)(int eventType, void* arg); +using OrbisNetCtlCallbackForNpToolkit = PS4_SYSV_ABI void (*)(int eventType, void* arg); // GetInfo codes constexpr int ORBIS_NET_CTL_INFO_DEVICE = 1; @@ -116,7 +117,7 @@ int PS4_SYSV_ABI sceNetCtlUnsetStunWithPaddingFlagIpcInt(); int PS4_SYSV_ABI Func_D8DCB6973537A3DC(); int PS4_SYSV_ABI sceNetCtlCheckCallbackForNpToolkit(); int PS4_SYSV_ABI sceNetCtlClearEventForNpToolkit(); -int PS4_SYSV_ABI sceNetCtlRegisterCallbackForNpToolkit(); +int PS4_SYSV_ABI sceNetCtlRegisterCallbackForNpToolkit(OrbisNetCtlCallbackForNpToolkit func, void* arg, int* ci); int PS4_SYSV_ABI sceNetCtlUnregisterCallbackForNpToolkit(); int PS4_SYSV_ABI sceNetCtlApCheckCallback(); int PS4_SYSV_ABI sceNetCtlApClearEvent();