From 8124b10b4ade57dd52f440ecec16b12de4afa52e Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Sat, 26 Apr 2025 12:55:10 +0300 Subject: [PATCH] some kernel net calls --- src/core/libraries/kernel/kernel.cpp | 13 +++++---- src/core/libraries/network/sys_net.cpp | 37 +++++++++++++------------- src/core/libraries/network/sys_net.h | 37 +++++++++++++------------- 3 files changed, 46 insertions(+), 41 deletions(-) diff --git a/src/core/libraries/kernel/kernel.cpp b/src/core/libraries/kernel/kernel.cpp index 33602bfe8..bb3f6d96a 100644 --- a/src/core/libraries/kernel/kernel.cpp +++ b/src/core/libraries/kernel/kernel.cpp @@ -24,6 +24,7 @@ #include "core/libraries/kernel/threads/exception.h" #include "core/libraries/kernel/time.h" #include "core/libraries/libs.h" +#include "core/libraries/network/sys_net.h" #ifdef _WIN64 #include @@ -196,10 +197,6 @@ const char* PS4_SYSV_ABI sceKernelGetFsSandboxRandomWord() { return path; } -int PS4_SYSV_ABI posix_connect() { - return -1; -} - int PS4_SYSV_ABI _sigprocmask() { return ORBIS_OK; } @@ -225,7 +222,6 @@ void RegisterKernel(Core::Loader::SymbolsResolver* sym) { LIB_OBJ("f7uOxY9mM1U", "libkernel", 1, "libkernel", 1, 1, &g_stack_chk_guard); LIB_FUNCTION("PfccT7qURYE", "libkernel", 1, "libkernel", 1, 1, kernel_ioctl); LIB_FUNCTION("JGfTMBOdUJo", "libkernel", 1, "libkernel", 1, 1, sceKernelGetFsSandboxRandomWord); - LIB_FUNCTION("XVL8So3QJUk", "libkernel", 1, "libkernel", 1, 1, posix_connect); LIB_FUNCTION("6xVpy0Fdq+I", "libkernel", 1, "libkernel", 1, 1, _sigprocmask); LIB_FUNCTION("Xjoosiw+XPI", "libkernel", 1, "libkernel", 1, 1, sceKernelUuidCreate); LIB_FUNCTION("Ou3iL1abvng", "libkernel", 1, "libkernel", 1, 1, stack_chk_fail); @@ -234,6 +230,13 @@ void RegisterKernel(Core::Loader::SymbolsResolver* sym) { LIB_FUNCTION("k+AXqu2-eBc", "libScePosix", 1, "libkernel", 1, 1, posix_getpagesize); LIB_FUNCTION("NWtTN10cJzE", "libSceLibcInternalExt", 1, "libSceLibcInternal", 1, 1, sceLibcHeapGetTraceInfo); + + // network + LIB_FUNCTION("XVL8So3QJUk", "libkernel", 1, "libkernel", 1, 1, Libraries::Net::sys_connect); + LIB_FUNCTION("TU-d9PfIHPM", "libkernel", 1, "libkernel", 1, 1, Libraries::Net::sys_socketex); + LIB_FUNCTION("KuOmgKoqCdY", "libkernel", 1, "libkernel", 1, 1, Libraries::Net::sys_bind); + LIB_FUNCTION("pxnCmagrtao", "libkernel", 1, "libkernel", 1, 1, Libraries::Net::sys_listen); + LIB_FUNCTION("3e+4Iv7IJ8U", "libkernel", 1, "libkernel", 1, 1, Libraries::Net::sys_accept); } } // namespace Libraries::Kernel diff --git a/src/core/libraries/network/sys_net.cpp b/src/core/libraries/network/sys_net.cpp index 9a91a3325..73cd09fb8 100644 --- a/src/core/libraries/network/sys_net.cpp +++ b/src/core/libraries/network/sys_net.cpp @@ -5,54 +5,55 @@ namespace Libraries::Net { -int sys_connect(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen) { +int PS4_SYSV_ABI sys_connect(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen) { return -1; } -int sys_bind(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen) { +int PS4_SYSV_ABI sys_bind(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen) { return -1; } -int sys_accept(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen) { +int PS4_SYSV_ABI sys_accept(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen) { return -1; } -int sys_getpeername(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen) { +int PS4_SYSV_ABI sys_getpeername(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen) { return -1; } -int sys_getsockname(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen) { +int PS4_SYSV_ABI sys_getsockname(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen) { return -1; } -int sys_getsockopt(OrbisNetId s, int level, int optname, void* optval, u32* optlen) { +int PS4_SYSV_ABI sys_getsockopt(OrbisNetId s, int level, int optname, void* optval, u32* optlen) { return -1; } -int sys_listen(OrbisNetId s, int backlog) { +int PS4_SYSV_ABI sys_listen(OrbisNetId s, int backlog) { return -1; } -int sys_setsockopt(OrbisNetId s, int level, int optname, const void* optval, u32 optlen) { +int PS4_SYSV_ABI sys_setsockopt(OrbisNetId s, int level, int optname, const void* optval, + u32 optlen) { return -1; } -int sys_shutdown(OrbisNetId s, int how) { +int PS4_SYSV_ABI sys_shutdown(OrbisNetId s, int how) { return -1; } -int sys_socketex(const char* name, int family, int type, int protocol) { +int PS4_SYSV_ABI sys_socketex(const char* name, int family, int type, int protocol) { return -1; } -int sys_netabort(OrbisNetId s, int flags) { +int PS4_SYSV_ABI sys_netabort(OrbisNetId s, int flags) { return -1; } -int sys_socketclose(OrbisNetId s) { +int PS4_SYSV_ABI sys_socketclose(OrbisNetId s) { return -1; } -int sys_sendto(OrbisNetId s, const void* buf, u64 len, int flags, const OrbisNetSockaddr* addr, - u32 addrlen) { +int PS4_SYSV_ABI sys_sendto(OrbisNetId s, const void* buf, u64 len, int flags, + const OrbisNetSockaddr* addr, u32 addrlen) { return -1; } -int sys_sendmsg(OrbisNetId s, const OrbisNetMsghdr* msg, int flags) { +int PS4_SYSV_ABI sys_sendmsg(OrbisNetId s, const OrbisNetMsghdr* msg, int flags) { return -1; } -int sys_recvfrom(OrbisNetId s, void* buf, u64 len, int flags, OrbisNetSockaddr* addr, - u32* paddrlen) { +int PS4_SYSV_ABI sys_recvfrom(OrbisNetId s, void* buf, u64 len, int flags, OrbisNetSockaddr* addr, + u32* paddrlen) { return -1; } -int sys_recvmsg(OrbisNetId s, OrbisNetMsghdr* msg, int flags) { +int PS4_SYSV_ABI sys_recvmsg(OrbisNetId s, OrbisNetMsghdr* msg, int flags) { return -1; } } // namespace Libraries::Net \ No newline at end of file diff --git a/src/core/libraries/network/sys_net.h b/src/core/libraries/network/sys_net.h index 012f4c315..7ddd0a766 100644 --- a/src/core/libraries/network/sys_net.h +++ b/src/core/libraries/network/sys_net.h @@ -8,22 +8,23 @@ namespace Libraries::Net { -int sys_connect(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen); -int sys_bind(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen); -int sys_accept(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen); -int sys_getpeername(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen); -int sys_getsockname(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen); -int sys_getsockopt(OrbisNetId s, int level, int optname, void* optval, u32* optlen); -int sys_listen(OrbisNetId s, int backlog); -int sys_setsockopt(OrbisNetId s, int level, int optname, const void* optval, u32 optlen); -int sys_shutdown(OrbisNetId s, int how); -int sys_socketex(const char* name, int family, int type, int protocol); -int sys_netabort(OrbisNetId s, int flags); -int sys_socketclose(OrbisNetId s); -int sys_sendto(OrbisNetId s, const void* buf, u64 len, int flags, const OrbisNetSockaddr* addr, - u32 addrlen); -int sys_sendmsg(OrbisNetId s, const OrbisNetMsghdr* msg, int flags); -int sys_recvfrom(OrbisNetId s, void* buf, u64 len, int flags, OrbisNetSockaddr* addr, - u32* paddrlen); -int sys_recvmsg(OrbisNetId s, OrbisNetMsghdr* msg, int flags); +int PS4_SYSV_ABI sys_connect(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen); +int PS4_SYSV_ABI sys_bind(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen); +int PS4_SYSV_ABI sys_accept(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen); +int PS4_SYSV_ABI sys_getpeername(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen); +int PS4_SYSV_ABI sys_getsockname(OrbisNetId s, const OrbisNetSockaddr* addr, u32* paddrlen); +int PS4_SYSV_ABI sys_getsockopt(OrbisNetId s, int level, int optname, void* optval, u32* optlen); +int PS4_SYSV_ABI sys_listen(OrbisNetId s, int backlog); +int PS4_SYSV_ABI sys_setsockopt(OrbisNetId s, int level, int optname, const void* optval, + u32 optlen); +int PS4_SYSV_ABI sys_shutdown(OrbisNetId s, int how); +int PS4_SYSV_ABI sys_socketex(const char* name, int family, int type, int protocol); +int PS4_SYSV_ABI sys_netabort(OrbisNetId s, int flags); +int PS4_SYSV_ABI sys_socketclose(OrbisNetId s); +int PS4_SYSV_ABI sys_sendto(OrbisNetId s, const void* buf, u64 len, int flags, + const OrbisNetSockaddr* addr, u32 addrlen); +int PS4_SYSV_ABI sys_sendmsg(OrbisNetId s, const OrbisNetMsghdr* msg, int flags); +int PS4_SYSV_ABI sys_recvfrom(OrbisNetId s, void* buf, u64 len, int flags, OrbisNetSockaddr* addr, + u32* paddrlen); +int PS4_SYSV_ABI sys_recvmsg(OrbisNetId s, OrbisNetMsghdr* msg, int flags); } // namespace Libraries::Net \ No newline at end of file