Ryujinx/Ryujinx.HLE/HOS/Services
Mary 366fe2dbb2
bsd: Revamp API and make socket abstract (#2960)
* bsd: Revamp API and make socket abstract

This part of the code was really ancient and needed some love.
As such this commit aims at separating the socket core logic from the IClient class and make it uses more modern APIs to read/write/parse data.

* Address gdkchan's comment

* Move TryConvertSocketOption to WinSockHelper

* Allow reusing old fds and add missing locks around SocketInternal and ShutdownAllSockets

* bsd: ton of changes

- Make sockets per process
- Implement eventfds
- Rework Poll for support of eventfds
- Handle protocol auto selection by type (used by gRPC)
- Handle IPv6 socket creation

* Address most of gdkchan comments

* Fix inverted read logic for BSD socket read

* bsd: Make Poll abstract via IBsdSocketPollManager

* bsd: Improve naming of everything

* Fix build issue from last commit (missed to save on VC)

* Switch BsdContext registry to a concurrent dictionary

* bsd: Implement socket creation flags logic and the non blocking flag

* Remove unused enum from previous commit

* bsd: Fix poll logic when 0 fds are present for a given poll manager and when timeout is very small (or 0)

* Address gdkchan's comment
2022-01-12 19:31:08 +01:00
..
Account account: Rework LoadIdTokenCache to auto generate a random JWT token (#2991) 2022-01-11 09:22:20 +01:00
Am Update to LibHac 0.15.0 (#2986) 2022-01-12 12:22:19 +01:00
Apm Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
Arp Update to LibHac v0.14.3 (#2925) 2021-12-23 13:55:50 -03:00
Audio UI - Add Volume Controls + Mute Toggle (F2) (#2871) 2021-12-23 13:33:56 -03:00
Bcat Update to LibHac v0.14.3 (#2925) 2021-12-23 13:55:50 -03:00
Bgtc Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Bluetooth Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
BluetoothManager Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
Caps caps: Stubs GetAlbumFileList0AafeAruidDeprecated and GetAlbumFileList3AaeAruid (#2403) 2021-06-25 00:37:48 +02:00
Cec Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Ectx am/ectx: Implement SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled and add service placeholder (#2136) 2021-03-25 23:25:49 +01:00
Erpt Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Es Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Eupld Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Fatal Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Friend friend: Stub IsFriendListCacheAvailable and EnsureFriendListAvailable (#2949) 2021-12-30 11:42:22 +01:00
Fs Update to LibHac 0.15.0 (#2986) 2022-01-12 12:22:19 +01:00
Grc Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Hid hid: A little cleanup (#2950) 2021-12-29 14:49:10 +01:00
Ins Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Lbl Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
Ldn Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
Lm HLE: Fix integer sign inconcistency accross the codebase (#2222) 2021-04-24 12:16:01 +02:00
Loader Add various error codes to Loader (#1208) 2020-05-04 13:22:28 +02:00
Mig Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Mii Update to LibHac 0.13.1 (#2475) 2021-08-12 23:56:24 +02:00
Mm mm: Cleaned up the service a bit (#2233) 2021-04-22 23:35:01 +02:00
Ncm Update to LibHac 0.15.0 (#2986) 2022-01-12 12:22:19 +01:00
News Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Nfc Fix Amiibo hanging since .NET 6 changes (#2890) 2021-11-30 11:09:32 +01:00
Ngct HLE: Fix integer sign inconcistency accross the codebase (#2222) 2021-04-24 12:16:01 +02:00
Nifm Fix GetAddrInfoWithOptions and some sockets issues (#2936) 2021-12-26 15:17:13 +01:00
Nim Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
Notification Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Npns Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Ns account/ns: Implement 13.0.0+ service calls (#2820) 2021-11-24 18:11:50 -03:00
Nv Ensure syncpoints are released and event handles closed on channel close (#2812) 2021-11-04 20:27:21 -03:00
Olsc Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
Ovln Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Pcie Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Pctl aoc/am: Cleanup aoc service and stub am calls (#2414) 2021-06-29 18:57:06 +02:00
Pcv clkrst: Stub/Implement IClkrstManager and IClkrstSession calls (#2692) 2021-09-29 01:03:35 +02:00
Pm vi: Unify resolutions values and accurate implementation of them. (#2640) 2021-09-19 12:57:39 +02:00
Prepo prepo: Implement SaveSystemReport and SaveSystemReportWithUser (#2379) 2021-06-23 22:41:44 +02:00
Psc Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Ptm Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
Ro Update to LibHac 0.15.0 (#2986) 2022-01-12 12:22:19 +01:00
Sdb Update to LibHac 0.15.0 (#2986) 2022-01-12 12:22:19 +01:00
Settings Update to LibHac 0.15.0 (#2986) 2022-01-12 12:22:19 +01:00
Sm Fix disposing of IPC sessions server at emulation stop (#2334) 2021-06-29 19:37:13 +02:00
Sockets bsd: Revamp API and make socket abstract (#2960) 2022-01-12 19:31:08 +01:00
Spl infra: Migrate to .NET 6 (#2829) 2021-11-28 21:24:17 +01:00
Srepo Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Ssl HLE: Fix integer sign inconcistency accross the codebase (#2222) 2021-04-24 12:16:01 +02:00
SurfaceFlinger EventWait should not signal the event when it returns Success (#2739) 2021-10-19 17:25:32 -03:00
Time Update to LibHac 0.15.0 (#2986) 2022-01-12 12:22:19 +01:00
Usb Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Vi infra: Migrate to .NET 6 (#2829) 2021-11-28 21:24:17 +01:00
Wlan Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
CommandHIpcAttribute.cs Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
CommandTIpcAttribute.cs Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
DisposableIpcService.cs Fix disposing of IPC sessions server at emulation stop (#2334) 2021-06-29 19:37:13 +02:00
DummyService.cs Refactoring commands handling (#728) 2019-07-11 22:13:43 -03:00
IpcService.cs hle: Tidy-up ServiceNotImplementedException (#2535) 2021-08-11 21:16:42 +02:00
ServerBase.cs Fix disposing of IPC sessions server at emulation stop (#2334) 2021-06-29 19:37:13 +02:00
ServiceAttributes.cs IPC refactor part 1: Use explicit separate threads to process requests (#1447) 2020-09-22 14:50:40 +10:00