some intial work on netctl callbacks (helps a bit CUSA10135)

This commit is contained in:
georgemoralis 2024-09-06 20:03:03 +03:00
parent 6e21c73b69
commit 75483070fc
2 changed files with 16 additions and 3 deletions

View file

@ -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;
}

View file

@ -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();