Fix linux compilation

This commit is contained in:
nmzik
2026-07-27 05:07:16 +02:00
parent 31fb3ec5af
commit c86d4b1f0d
14 changed files with 121 additions and 98 deletions
+4 -4
View File
@@ -772,19 +772,19 @@ int KYTY_SYSV_ABI atoi(const char* str) {
}
float KYTY_SYSV_ABI sinf(float x) {
return std::sinf(x);
return std::sin(x);
}
float KYTY_SYSV_ABI cosf(float x) {
return std::cosf(x);
return std::cos(x);
}
void KYTY_SYSV_ABI sincosf(float x, float* sinp, float* cosp) {
if (sinp != nullptr) {
*sinp = std::sinf(x);
*sinp = std::sin(x);
}
if (cosp != nullptr) {
*cosp = std::cosf(x);
*cosp = std::cos(x);
}
}
+34 -30
View File
@@ -812,13 +812,17 @@ struct NetEtherAddr {
uint8_t data[6] = {0};
};
struct SocketSlot {
bool used = false;
#if defined(_WIN32)
SOCKET socket = INVALID_SOCKET;
using NativeSocket = SOCKET;
static constexpr NativeSocket INVALID_NATIVE_SOCKET = INVALID_SOCKET;
#else
int socket = -1;
using NativeSocket = int;
static constexpr NativeSocket INVALID_NATIVE_SOCKET = -1;
#endif
struct SocketSlot {
bool used = false;
NativeSocket socket = INVALID_NATIVE_SOCKET;
};
struct NetTimeval {
@@ -1050,7 +1054,7 @@ static int ConvertHostSockaddr(const sockaddr_storage* addr, int addrlen, void*
}
#endif
static bool GetSocketBackend(int guest_fd, SOCKET* out) {
static bool GetSocketBackend(int guest_fd, NativeSocket* out) {
EXIT_IF(out == nullptr);
if (guest_fd < 0 || guest_fd >= SOCKET_FD_MAX) {
@@ -1075,7 +1079,7 @@ bool KYTY_SYSV_ABI IsSocket(int s) {
return g_sockets[static_cast<size_t>(s)].used;
}
static bool TakeSocketBackend(int guest_fd, SOCKET* out) {
static bool TakeSocketBackend(int guest_fd, NativeSocket* out) {
EXIT_IF(out == nullptr);
if (guest_fd < 0 || guest_fd >= SOCKET_FD_MAX) {
@@ -1093,7 +1097,7 @@ static bool TakeSocketBackend(int guest_fd, SOCKET* out) {
return true;
}
static int AllocSocketFd(SOCKET socket) {
static int AllocSocketFd(NativeSocket socket) {
Common::LockGuard lock(g_socket_mutex);
for (int fd = SOCKET_FD_MIN; fd < SOCKET_FD_MAX; fd++) {
auto& slot = g_sockets[static_cast<size_t>(fd)];
@@ -1472,7 +1476,7 @@ int KYTY_SYSV_ABI EpollWait(int eid, NetEpollEvent* events, int maxevents, int t
#if defined(_WIN32)
struct HostRegistration {
EpollRegistration guest;
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
};
fd_set host_read {};
@@ -1485,7 +1489,7 @@ int KYTY_SYSV_ABI EpollWait(int eid, NetEpollEvent* events, int maxevents, int t
std::vector<HostRegistration> host_registrations;
host_registrations.reserve(registrations.size());
for (const auto& registration: registrations) {
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (!GetSocketBackend(registration.id, &socket)) {
continue;
}
@@ -1573,7 +1577,7 @@ int KYTY_SYSV_ABI SocketClose(int s) {
LOGF("\t s = %d\n", s);
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (!TakeSocketBackend(s, &socket)) {
return NET_ERROR_EBADF;
}
@@ -1609,8 +1613,8 @@ int KYTY_SYSV_ABI Socket(int family, int type, int protocol) {
}
#if defined(_WIN32)
SOCKET socket = ::socket(host_family, type, protocol);
if (socket == INVALID_SOCKET) {
NativeSocket socket = ::socket(host_family, type, protocol);
if (socket == INVALID_NATIVE_SOCKET) {
return SetPosixSocketError();
}
@@ -1637,7 +1641,7 @@ int KYTY_SYSV_ABI Bind(int s, const void* addr, uint32_t addrlen) {
"\t addrlen = %" PRIu32 "\n",
s, reinterpret_cast<uint64_t>(addr), addrlen);
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (addr == nullptr || !GetSocketBackend(s, &socket)) {
*Posix::GetErrorAddr() = (addr == nullptr ? Posix::POSIX_EFAULT : Posix::POSIX_EBADF);
return -1;
@@ -1670,7 +1674,7 @@ int KYTY_SYSV_ABI Connect(int s, const void* addr, uint32_t addrlen) {
"\t addrlen = %" PRIu32 "\n",
s, reinterpret_cast<uint64_t>(addr), addrlen);
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (addr == nullptr || !GetSocketBackend(s, &socket)) {
*Posix::GetErrorAddr() = (addr == nullptr ? Posix::POSIX_EFAULT : Posix::POSIX_EBADF);
return -1;
@@ -1702,7 +1706,7 @@ int KYTY_SYSV_ABI Listen(int s, int backlog) {
"\t backlog = %d\n",
s, backlog);
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (!GetSocketBackend(s, &socket)) {
*Posix::GetErrorAddr() = Posix::POSIX_EBADF;
return -1;
@@ -1728,7 +1732,7 @@ int KYTY_SYSV_ABI Accept(int s, void* addr, uint32_t* addrlen) {
"\t addrlen = 0x%016" PRIx64 "\n",
s, reinterpret_cast<uint64_t>(addr), reinterpret_cast<uint64_t>(addrlen));
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (!GetSocketBackend(s, &socket)) {
*Posix::GetErrorAddr() = Posix::POSIX_EBADF;
return -1;
@@ -1737,8 +1741,8 @@ int KYTY_SYSV_ABI Accept(int s, void* addr, uint32_t* addrlen) {
#if defined(_WIN32)
sockaddr_storage host_addr {};
int host_addrlen = sizeof(host_addr);
SOCKET accepted = ::accept(socket, reinterpret_cast<sockaddr*>(&host_addr), &host_addrlen);
if (accepted == INVALID_SOCKET) {
NativeSocket accepted = ::accept(socket, reinterpret_cast<sockaddr*>(&host_addr), &host_addrlen);
if (accepted == INVALID_NATIVE_SOCKET) {
return SetPosixSocketError();
}
@@ -1775,7 +1779,7 @@ int KYTY_SYSV_ABI Shutdown(int s, int how) {
"\t how = %d\n",
s, how);
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (!GetSocketBackend(s, &socket)) {
*Posix::GetErrorAddr() = Posix::POSIX_EBADF;
return -1;
@@ -1806,8 +1810,8 @@ int KYTY_SYSV_ABI Getsockname(int s, void* addr, uint32_t* addrlen) {
"\t addrlen = 0x%016" PRIx64 "\n",
s, reinterpret_cast<uint64_t>(addr), reinterpret_cast<uint64_t>(addrlen));
SOCKET socket = INVALID_SOCKET;
const bool socket_ok = GetSocketBackend(s, &socket);
NativeSocket socket = INVALID_NATIVE_SOCKET;
const bool socket_ok = GetSocketBackend(s, &socket);
if (addr == nullptr || addrlen == nullptr || !socket_ok) {
*Posix::GetErrorAddr() = (!socket_ok ? Posix::POSIX_EBADF : Posix::POSIX_EFAULT);
return -1;
@@ -1836,8 +1840,8 @@ int KYTY_SYSV_ABI Getsockopt(int s, int level, int optname, void* optval, uint32
"\t optname = 0x%08" PRIx32 "\n",
s, static_cast<uint32_t>(level), static_cast<uint32_t>(optname));
SOCKET socket = INVALID_SOCKET;
const bool socket_ok = GetSocketBackend(s, &socket);
NativeSocket socket = INVALID_NATIVE_SOCKET;
const bool socket_ok = GetSocketBackend(s, &socket);
if (optval == nullptr || optlen == nullptr || !socket_ok) {
*Posix::GetErrorAddr() = (!socket_ok ? Posix::POSIX_EBADF : Posix::POSIX_EFAULT);
return -1;
@@ -1866,7 +1870,7 @@ int KYTY_SYSV_ABI Setsockopt(int s, int level, int optname, const void* optval,
"\t optlen = %" PRIu32 "\n",
s, static_cast<uint32_t>(level), static_cast<uint32_t>(optname), optlen);
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (optval == nullptr || !GetSocketBackend(s, &socket)) {
*Posix::GetErrorAddr() = (optval == nullptr ? Posix::POSIX_EFAULT : Posix::POSIX_EBADF);
return -1;
@@ -1904,7 +1908,7 @@ int64_t KYTY_SYSV_ABI Send(int s, const void* buf, uint64_t len, int flags) {
"\t flags = 0x%08" PRIx32 "\n",
s, reinterpret_cast<uint64_t>(buf), len, static_cast<uint32_t>(flags));
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (buf == nullptr || !GetSocketBackend(s, &socket)) {
*Posix::GetErrorAddr() = (buf == nullptr ? Posix::POSIX_EFAULT : Posix::POSIX_EBADF);
return -1;
@@ -1938,7 +1942,7 @@ int64_t KYTY_SYSV_ABI Recv(int s, void* buf, uint64_t len, int flags) {
"\t flags = 0x%08" PRIx32 "\n",
s, reinterpret_cast<uint64_t>(buf), len, static_cast<uint32_t>(flags));
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (buf == nullptr || !GetSocketBackend(s, &socket)) {
*Posix::GetErrorAddr() = (buf == nullptr ? Posix::POSIX_EFAULT : Posix::POSIX_EBADF);
return -1;
@@ -2010,7 +2014,7 @@ int KYTY_SYSV_ABI Select(int nfds, void* readfds, void* writefds, void* exceptfd
int except_count = 0;
for (int fd = 0; fd < nfds; fd++) {
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (!GetSocketBackend(fd, &socket)) {
continue;
}
@@ -2061,21 +2065,21 @@ int KYTY_SYSV_ABI Select(int nfds, void* readfds, void* writefds, void* exceptfd
GuestFdZero(writefds, nfds);
GuestFdZero(exceptfds, nfds);
for (int i = 0; i < read_count; i++) {
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (GetSocketBackend(read_map[static_cast<size_t>(i)], &socket) &&
FD_ISSET(socket, &host_read)) {
GuestFdSet(readfds, read_map[static_cast<size_t>(i)]);
}
}
for (int i = 0; i < write_count; i++) {
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (GetSocketBackend(write_map[static_cast<size_t>(i)], &socket) &&
FD_ISSET(socket, &host_write)) {
GuestFdSet(writefds, write_map[static_cast<size_t>(i)]);
}
}
for (int i = 0; i < except_count; i++) {
SOCKET socket = INVALID_SOCKET;
NativeSocket socket = INVALID_NATIVE_SOCKET;
if (GetSocketBackend(except_map[static_cast<size_t>(i)], &socket) &&
FD_ISSET(socket, &host_except)) {
GuestFdSet(exceptfds, except_map[static_cast<size_t>(i)]);