mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-22 10:04:39 +00:00
code review
This commit is contained in:
parent
da2afe2bf9
commit
575d4c155d
@ -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,
|
s32 PS4_SYSV_ABI posix_select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds,
|
||||||
OrbisKernelTimeval* timeout) {
|
OrbisKernelTimeval* timeout) {
|
||||||
LOG_INFO(Kernel_Fs,
|
LOG_INFO(Kernel_Fs, "nfds = {}, readfds = {}, writefds = {}, exceptfds = {}, timeout = {}",
|
||||||
"nfds = {}, readfds = {:#x}, writefds = {:#x}, exceptfds = {:#x}, timeout "
|
|
||||||
"= {:#x}",
|
|
||||||
nfds, fmt::ptr(readfds), fmt::ptr(writefds), fmt::ptr(exceptfds), fmt::ptr(timeout));
|
nfds, fmt::ptr(readfds), fmt::ptr(writefds), fmt::ptr(exceptfds), fmt::ptr(timeout));
|
||||||
|
|
||||||
fd_set read_host, write_host, except_host;
|
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 write = writefds && FD_ISSET(i, writefds);
|
||||||
auto except = exceptfds && FD_ISSET(i, exceptfds);
|
auto except = exceptfds && FD_ISSET(i, exceptfds);
|
||||||
if (read || write || except) {
|
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);
|
auto* file = h->GetFile(i);
|
||||||
if (file == nullptr ||
|
if (file == nullptr ||
|
||||||
((file->type == Core::FileSys::FileType::Regular && !file->f.IsOpen()) ||
|
((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);
|
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 (ret > 0) {
|
||||||
if (readfds) {
|
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) {
|
for (auto i = 0; i < max_fd + 1; ++i) {
|
||||||
if (FD_ISSET(i, &read_host)) {
|
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);
|
FD_SET(host_to_guest[i], readfds);
|
||||||
}
|
}
|
||||||
if (FD_ISSET(i, &write_host)) {
|
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);
|
FD_SET(host_to_guest[i], writefds);
|
||||||
}
|
}
|
||||||
if (FD_ISSET(i, &except_host)) {
|
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);
|
FD_SET(host_to_guest[i], exceptfds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -293,7 +293,9 @@ void RegisterLib(Core::Loader::SymbolsResolver* sym) {
|
|||||||
LIB_FUNCTION("pxnCmagrtao", "libkernel", 1, "libkernel", 1, 1, Libraries::Net::sys_listen);
|
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("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("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("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("lUk6wrGXyMw", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_recvfrom);
|
||||||
LIB_FUNCTION("fFxGkxF2bVo", "libScePosix", 1, "libkernel", 1, 1,
|
LIB_FUNCTION("fFxGkxF2bVo", "libScePosix", 1, "libkernel", 1, 1,
|
||||||
Libraries::Net::sys_setsockopt);
|
Libraries::Net::sys_setsockopt);
|
||||||
|
@ -1271,7 +1271,7 @@ int PS4_SYSV_ABI sceNetInetPton(int af, const char* src, void* dst) {
|
|||||||
int res = inet_pton(ConvertFamilies(af), src, dst);
|
int res = inet_pton(ConvertFamilies(af), src, dst);
|
||||||
#endif
|
#endif
|
||||||
if (res < 0) {
|
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;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ int PS4_SYSV_ABI sys_connect(OrbisNetId s, const OrbisNetSockaddr* addr, u32 add
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
int PS4_SYSV_ABI sys_bind(OrbisNetId s, const OrbisNetSockaddr* addr, u32 addrlen) {
|
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<Core::FileSys::HandleTable>::Instance();
|
auto* h = Common::Singleton<Core::FileSys::HandleTable>::Instance();
|
||||||
auto* file = h->GetFile(s);
|
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);
|
LOG_ERROR(Lib_Net, "error code returned : {:#x}", (u32)returncode);
|
||||||
return -1;
|
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,
|
int PS4_SYSV_ABI sys_sendto(OrbisNetId s, const void* buf, u64 len, int flags,
|
||||||
const OrbisNetSockaddr* addr, u32 addrlen) {
|
const OrbisNetSockaddr* addr, u32 addrlen) {
|
||||||
LOG_WARNING(Lib_Net, "s = {}, len = {}, flags = {:#x}, addrlen = {}", s, len, flags, 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");
|
LOG_ERROR(Lib_Net, "(STUBBED) called");
|
||||||
return -1;
|
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,
|
int PS4_SYSV_ABI sys_recvfrom(OrbisNetId s, void* buf, u64 len, int flags, OrbisNetSockaddr* addr,
|
||||||
u32* paddrlen) {
|
u32* paddrlen) {
|
||||||
// LOG_INFO(Lib_Net, "s = {}, buf = {:#x}, len = {}, flags = {:#x}", s,
|
// LOG_INFO(Lib_Net, "s = {}, buf = {:#x}, len = {}, flags = {:#x}", s,
|
||||||
|
@ -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_socket(int family, int type, int protocol);
|
||||||
int PS4_SYSV_ABI sys_netabort(OrbisNetId s, int flags);
|
int PS4_SYSV_ABI sys_netabort(OrbisNetId s, int flags);
|
||||||
int PS4_SYSV_ABI sys_socketclose(OrbisNetId s);
|
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,
|
int PS4_SYSV_ABI sys_sendto(OrbisNetId s, const void* buf, u64 len, int flags,
|
||||||
const OrbisNetSockaddr* addr, u32 addrlen);
|
const OrbisNetSockaddr* addr, u32 addrlen);
|
||||||
int PS4_SYSV_ABI sys_sendmsg(OrbisNetId s, const OrbisNetMsghdr* msg, int flags);
|
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,
|
int PS4_SYSV_ABI sys_recvfrom(OrbisNetId s, void* buf, u64 len, int flags, OrbisNetSockaddr* addr,
|
||||||
u32* paddrlen);
|
u32* paddrlen);
|
||||||
int PS4_SYSV_ABI sys_recvmsg(OrbisNetId s, OrbisNetMsghdr* msg, int flags);
|
int PS4_SYSV_ABI sys_recvmsg(OrbisNetId s, OrbisNetMsghdr* msg, int flags);
|
||||||
|
Loading…
Reference in New Issue
Block a user