diff --git a/src/core/libraries/kernel/file_system.cpp b/src/core/libraries/kernel/file_system.cpp index ddc1b7225..cb85d1bc2 100644 --- a/src/core/libraries/kernel/file_system.cpp +++ b/src/core/libraries/kernel/file_system.cpp @@ -1088,9 +1088,7 @@ s32 PS4_SYSV_ABI sceKernelUnlink(const char* path) { s32 PS4_SYSV_ABI posix_select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, OrbisKernelTimeval* timeout) { - LOG_INFO(Kernel_Fs, - "nfds = {}, readfds = {:#x}, writefds = {:#x}, exceptfds = {:#x}, timeout " - "= {:#x}", + LOG_INFO(Kernel_Fs, "nfds = {}, readfds = {}, writefds = {}, exceptfds = {}, timeout = {}", nfds, fmt::ptr(readfds), fmt::ptr(writefds), fmt::ptr(exceptfds), fmt::ptr(timeout)); fd_set read_host, write_host, except_host; @@ -1249,7 +1247,7 @@ s32 PS4_SYSV_ABI posix_select(int nfds, fd_set* readfds, fd_set* writefds, fd_se auto write = writefds && FD_ISSET(i, writefds); auto except = exceptfds && FD_ISSET(i, exceptfds); if (read || write || except) { - LOG_INFO(Kernel_Fs, "guest fd {} expected", i); + LOG_DEBUG(Kernel_Fs, "guest fd {} expected", i); auto* file = h->GetFile(i); if (file == nullptr || ((file->type == Core::FileSys::FileType::Regular && !file->f.IsOpen()) || @@ -1288,9 +1286,8 @@ s32 PS4_SYSV_ABI posix_select(int nfds, fd_set* readfds, fd_set* writefds, fd_se } } - LOG_INFO(Kernel_Fs, "calling select"); int ret = select(max_fd + 1, &read_host, &write_host, &except_host, (timeval*)timeout); - LOG_INFO(Kernel_Fs, "select = {}", ret); + LOG_DEBUG(Kernel_Fs, "select = {}", ret); if (ret > 0) { if (readfds) { @@ -1305,15 +1302,15 @@ s32 PS4_SYSV_ABI posix_select(int nfds, fd_set* readfds, fd_set* writefds, fd_se for (auto i = 0; i < max_fd + 1; ++i) { if (FD_ISSET(i, &read_host)) { - LOG_INFO(Kernel_Fs, "host fd {} (guest {}) ready for reading", i, host_to_guest[i]); + LOG_DEBUG(Kernel_Fs, "host fd {} (guest {}) ready for reading", i, host_to_guest[i]); FD_SET(host_to_guest[i], readfds); } if (FD_ISSET(i, &write_host)) { - LOG_INFO(Kernel_Fs, "host fd {} (guest {}) ready for writing", i, host_to_guest[i]); + LOG_DEBUG(Kernel_Fs, "host fd {} (guest {}) ready for writing", i, host_to_guest[i]); FD_SET(host_to_guest[i], writefds); } if (FD_ISSET(i, &except_host)) { - LOG_INFO(Kernel_Fs, "host fd {} (guest {}) ready for except", i, host_to_guest[i]); + LOG_DEBUG(Kernel_Fs, "host fd {} (guest {}) ready for except", i, host_to_guest[i]); FD_SET(host_to_guest[i], exceptfds); } } diff --git a/src/core/libraries/kernel/kernel.cpp b/src/core/libraries/kernel/kernel.cpp index f72fcd9e0..5fc8722c2 100644 --- a/src/core/libraries/kernel/kernel.cpp +++ b/src/core/libraries/kernel/kernel.cpp @@ -293,7 +293,9 @@ void RegisterLib(Core::Loader::SymbolsResolver* sym) { 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); LIB_FUNCTION("TU-d9PfIHPM", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_socket); + LIB_FUNCTION("fZOeZIOEmLw", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_send); LIB_FUNCTION("oBr313PppNE", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_sendto); + LIB_FUNCTION("Ez8xjo9UF4E", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_recv); LIB_FUNCTION("lUk6wrGXyMw", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_recvfrom); LIB_FUNCTION("fFxGkxF2bVo", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_setsockopt); diff --git a/src/core/libraries/network/net.cpp b/src/core/libraries/network/net.cpp index cc8391867..d90de1529 100644 --- a/src/core/libraries/network/net.cpp +++ b/src/core/libraries/network/net.cpp @@ -1271,7 +1271,7 @@ int PS4_SYSV_ABI sceNetInetPton(int af, const char* src, void* dst) { int res = inet_pton(ConvertFamilies(af), src, dst); #endif if (res < 0) { - UNREACHABLE_MSG("af = {}, src = {}, dst = {:#x}", af, src, fmt::ptr(dst)); + UNREACHABLE_MSG("af = {}, src = {}, dst = {}", af, src, fmt::ptr(dst)); } return res; } diff --git a/src/core/libraries/network/sys_net.cpp b/src/core/libraries/network/sys_net.cpp index e6c6fe346..19bf4d88b 100644 --- a/src/core/libraries/network/sys_net.cpp +++ b/src/core/libraries/network/sys_net.cpp @@ -33,7 +33,7 @@ int PS4_SYSV_ABI sys_connect(OrbisNetId s, const OrbisNetSockaddr* addr, u32 add return -1; } int PS4_SYSV_ABI sys_bind(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen) { - LOG_DEBUG(Lib_Net, "s = {}, addr = {:#x}, addrlen = {}", s, fmt::ptr(addr), addrlen); + LOG_DEBUG(Lib_Net, "s = {}, addr = {}, addrlen = {}", s, fmt::ptr(addr), addrlen); auto* h = Common::Singleton::Instance(); auto* file = h->GetFile(s); @@ -247,6 +247,11 @@ int PS4_SYSV_ABI sys_socketclose(OrbisNetId s) { LOG_ERROR(Lib_Net, "error code returned : {:#x}", (u32)returncode); return -1; } + +int PS4_SYSV_ABI sys_send(OrbisNetId s, const void* buf, u64 len, int flags) { + return sys_sendto(s, buf, len, flags, nullptr, 0); +} + int PS4_SYSV_ABI sys_sendto(OrbisNetId s, const void* buf, u64 len, int flags, const OrbisNetSockaddr* addr, u32 addrlen) { LOG_WARNING(Lib_Net, "s = {}, len = {}, flags = {:#x}, addrlen = {}", s, len, flags, addrlen); @@ -271,6 +276,11 @@ int PS4_SYSV_ABI sys_sendmsg(OrbisNetId s, const OrbisNetMsghdr* msg, int flags) LOG_ERROR(Lib_Net, "(STUBBED) called"); return -1; } + +int PS4_SYSV_ABI sys_recv(OrbisNetId s, void* buf, u64 len, int flags) { + return sys_recvfrom(s, buf, len, flags, nullptr, 0); +} + int PS4_SYSV_ABI sys_recvfrom(OrbisNetId s, void* buf, u64 len, int flags, OrbisNetSockaddr* addr, u32* paddrlen) { // LOG_INFO(Lib_Net, "s = {}, buf = {:#x}, len = {}, flags = {:#x}", s, diff --git a/src/core/libraries/network/sys_net.h b/src/core/libraries/network/sys_net.h index c23152de1..93913140c 100644 --- a/src/core/libraries/network/sys_net.h +++ b/src/core/libraries/network/sys_net.h @@ -22,9 +22,11 @@ int PS4_SYSV_ABI sys_socketex(const char* name, int family, int type, int protoc int PS4_SYSV_ABI sys_socket(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_send(OrbisNetId s, const void* buf, u64 len, int flags); 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_recv(OrbisNetId s, void* buf, u64 len, 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);