| Age | Commit message (Collapse) | Author |
|
The introduction of multicore rendered this setting non-functional as timing code was changed.
This removes the setting entirely.
|
|
Preserves the volatility of the pointers being casted.
|
|
Testing shows that Poll called with zero entries returns -1 and signals
an errno of zero.
|
|
This implements: Socket, Poll, Accept, Bind, Connect, GetPeerName,
GetSockName, Listen, Fcntl, SetSockOpt, Shutdown, Recv, RecvFrom,
Send, SendTo, Write, and Close
The implementation was done referencing: SwIPC, switchbrew, testing
with libnx and inspecting its code, general information about bsd
sockets online, and analysing official software.
Not everything from these service calls is implemented, but everything
that is not implemented will be logged in some way.
|
|
Manage worker threads with an easy to use abstraction.
We can expand this to support thread deletion in the future.
|
|
This abstraction allows executing blocking functions (like recvfrom on a
socket configured for blocking) without blocking the service thread.
It is intended to be used with SleepClientThread.
|
|
These functions translate from Network enumerations/structures to guest
enumerations/structures and viceversa.
|
|
Add guest enumerations and structures used in socket services
|
|
This is trivially implemented using the Network abstraction
- Used by ftpd
|
|
This isn't used by anything in particular, so it can be removed.
|
|
We can just return the function directly. Making for less reading.
|
|
Co-authored-by: LC <mathew1800@gmail.com>
|
|
Makes the interface future-proofed for supporting other platforms in the event we ever support platforms with differing pointer sizes. This way, we have a type in place that is always guaranteed to be able to represent a pointer exactly.
|
|
|
|
|
|
Not using the return value of these functions are undeniably the source
of a bug. This way we allow compilers to loudly make any future misuses
evident.
|
|
comex reported in #4424 that we were incorrectly discarding the return
value of Lock() which is correct.
|
|
hid: Only update keyboard & debug pad inputs if enabled
|
|
swkbd: Return result for Calc request for inlined swkbd
|
|
|
|
src/core/network/network.cpp:112:28: error: use of undeclared identifier 'SHUT_RD'
constexpr int SD_RECEIVE = SHUT_RD;
^
src/core/network/network.cpp:113:25: error: use of undeclared identifier 'SHUT_WR'
constexpr int SD_SEND = SHUT_WR;
^
src/core/network/network.cpp:114:25: error: use of undeclared identifier 'SHUT_RDWR'
constexpr int SD_BOTH = SHUT_RDWR;
^
src/core/network/network.cpp:120:37: error: unknown type name 'in_addr'; did you mean 'in_addr_t'?
constexpr IPv4Address TranslateIPv4(in_addr addr) {
^~~~~~~
in_addr_t
/usr/include/netdb.h:66:20: note: 'in_addr_t' declared here
typedef __uint32_t in_addr_t;
^
src/core/network/network.cpp:121:27: error: member reference base type 'in_addr_t' (aka 'unsigned int') is not a structure or union
const u32 bytes = addr.s_addr;
~~~~^~~~~~~
src/core/network/network.cpp:121:15: error: variables defined in a constexpr function must be initialized
const u32 bytes = addr.s_addr;
^
src/core/network/network.cpp:126:10: error: incomplete result type 'sockaddr' in function definition
sockaddr TranslateFromSockAddrIn(SockAddrIn input) {
^
/usr/include/netdb.h:142:9: note: forward declaration of 'sockaddr'
struct sockaddr *ai_addr; /* binary address */
^
src/core/network/network.cpp:127:5: error: unknown type name 'sockaddr_in'; did you mean 'sockaddr'?
sockaddr_in result;
^~~~~~~~~~~
sockaddr
/usr/include/netdb.h:142:9: note: 'sockaddr' declared here
struct sockaddr *ai_addr; /* binary address */
^
src/core/network/network.cpp:127:17: error: variable has incomplete type 'sockaddr'
sockaddr_in result;
^
/usr/include/netdb.h:142:9: note: forward declaration of 'sockaddr'
struct sockaddr *ai_addr; /* binary address */
^
src/core/network/network.cpp:131:29: error: use of undeclared identifier 'AF_INET'
result.sin_family = AF_INET;
^
src/core/network/network.cpp:135:29: error: use of undeclared identifier 'AF_INET'
result.sin_family = AF_INET;
^
src/core/network/network.cpp:139:23: error: use of undeclared identifier 'htons'
result.sin_port = htons(input.portno);
^
src/core/network/network.cpp:143:14: error: variable has incomplete type 'sockaddr'
sockaddr addr;
^
/usr/include/netdb.h:142:9: note: forward declaration of 'sockaddr'
struct sockaddr *ai_addr; /* binary address */
^
src/core/network/network.cpp:156:1: error: unknown type name 'linger'
linger MakeLinger(bool enable, u32 linger_value) {
^
src/core/network/network.cpp:157:5: error: unknown type name 'linger'
linger value;
^
src/core/network/network.cpp:185:16: error: use of undeclared identifier 'AF_INET'
return AF_INET;
^
src/core/network/network.cpp:195:16: error: use of undeclared identifier 'SOCK_STREAM'
return SOCK_STREAM;
^
src/core/network/network.cpp:197:16: error: use of undeclared identifier 'SOCK_DGRAM'
return SOCK_DGRAM;
^
src/core/network/network.cpp:207:16: error: use of undeclared identifier 'IPPROTO_TCP'
return IPPROTO_TCP;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
|
|
Needed for dark souls and monster hunter
|
|
core/network: Add network abstraction
|
|
|
|
Fixes random swkbd popups in monster hunter
|
|
This commit adds a network abstraction designed to implement bsd:s but
at the same time work as a generic abstraction to implement any
networking code we have to use from core.
This is implemented on top of BSD sockets on Unix systems and winsock on
Windows. The code is designed around winsocks having compatibility
definitions to support both BSD and Windows sockets.
|
|
core_timing: Make usage of nanoseconds more consistent in the interface
|
|
filesystem: Create subdirectories prior to creating a file
|
|
video_core: Add asynchronous shader decompilation and compilation
|
|
mii/manager: Make use of designated initializers
|
|
mii/manager: Resolve sign mismatch warnings
|
|
dmnt_cheat_vm: Implement opcode 0xC3 (ReadWriteStaticRegister)
|
|
fs: Fix RomFS building when zero byte files are present
|
|
|
|
|
|
settings: Make use of std::string_view over std::string for logging
|
|
core/CMakeLists: Add missing physical_memory.h header file
|
|
kernel: Remove unused variables
|
|
kernel/thread: Remove unimplemented function prototype
|
|
Allows this header file to show up in IDE CMake generators.
|
|
Eliminates reliance on an indirect include.
|
|
Previously the loop termination condition was testing variables of
different signedness.
|
|
Allows returning the structure in a more concise manner.
|
|
hle: service: mii: Rewrite service to properly support creation of random and default miis.
|
|
address_space_info: Make use of designated initializers
|
|
This isn't used, so it can be removed.
|
|
Resolves some compiler warnings in the Linux build.
|
|
|
|
All these do are return std::function instances of static functions, so
these can be used without an instance of the CPU manager.
|
|
Shrinks the data structure by 8 bytes.
|