| Age | Commit message (Collapse) | Author |
|
While we're at it, we can avoid a redundant map lookup.
|
|
|
|
Relies on #4465 for concept.h Common::IsBaseOf
|
|
WriteBuffer (#4465)
* ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer
With the support of C++20, we can use concepts to deduce if a type is an STL container or not.
* More agressive concept for stl containers
* Add -fconcepts
* Move to common namespace
* Add Common::IsBaseOf
|
|
cpu_manager: Remove redundant std::function declarations
|
|
|
|
|
|
Stub these 2 service commands required for Animal Crossing: New Horizons Update 1.4.0
|
|
|
|
Fixes an access violation where the file no longer exists at the specified path while being parsed.
|
|
|
|
device_memory: Remove unused system member
|
|
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
|
|
Previously, the method wasn't modifying any class state and therefore not having any effects when called.
Since this has been the case for a very long time now, I'm not sure if we couldn't just remove this method altogether.
|
|
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
|