0
0
Fork 0
This repository has been archived on 2024-10-12. You can view files and clone it, but cannot push or open issues or pull requests.
ryujinx-final/Ryujinx.HLE/HOS/Services
gdkchan 95017b8c66
Support memory aliasing (#2954)
* Back to the origins: Make memory manager take guest PA rather than host address once again

* Direct mapping with alias support on Windows

* Fixes and remove more of the emulated shared memory

* Linux support

* Make shared and transfer memory not depend on SharedMemoryStorage

* More efficient view mapping on Windows (no more restricted to 4KB pages at a time)

* Handle potential access violations caused by partial unmap

* Implement host mapping using shared memory on Linux

* Add new GetPhysicalAddressChecked method, used to ensure the virtual address is mapped before address translation

Also align GetRef behaviour with software memory manager

* We don't need a mirrorable memory block for software memory manager mode

* Disable memory aliasing tests while we don't have shared memory support on Mac

* Shared memory & SIGBUS handler for macOS

* Fix typo + nits + re-enable memory tests

* Set MAP_JIT_DARWIN on x86 Mac too

* Add back the address space mirror

* Only set MAP_JIT_DARWIN if we are mapping as executable

* Disable aliasing tests again (still fails on Mac)

* Fix UnmapView4KB (by not casting size to int)

* Use ref counting on memory blocks to delay closing the shared memory handle until all blocks using it are disposed

* Address PR feedback

* Make RO hold a reference to the guest process memory manager to avoid early disposal

Co-authored-by: nastys <nastys@users.noreply.github.com>
2022-05-02 20:30:02 -03:00
..
Account Implement -p or --profile command line argument (#2947) 2022-03-02 09:51:37 +01:00
Am Update LibHac to v0.16.0 (#3159) 2022-02-27 00:52:25 +01:00
Apm Initial support for the new 12.x IPC system (#2182) 2021-04-14 00:01:24 +02:00
Arp hle: Some cleanup (#3210) 2022-03-22 20:46:16 +01:00
Audio Implement HwOpus multistream functions (#3275) 2022-04-15 23:16:28 +02: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 misc: Make PID unsigned long instead of long (#3043) 2022-02-09 17:18:07 -03:00
Fs hle: Some cleanup (#3210) 2022-03-22 20:46:16 +01:00
Grc Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Hid service: hid: Signal event on AcquireNpadStyleSetUpdateEventHandle (#3247) 2022-04-07 15:43:14 -03: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
Mnpp Implement/Stub mnpp:app service and some hid calls (#3131) 2022-02-18 02:00:06 +01:00
Ncm hle: Some cleanup (#3210) 2022-03-22 20:46:16 +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 Caching local network info and using an event handler to invalidate as needed (improves menu slow down issue in FE3H) (#2761) 2022-03-15 03:49:35 +01:00
Nim hle: Some cleanup (#3210) 2022-03-22 20:46:16 +01: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 misc: Make PID unsigned long instead of long (#3043) 2022-02-09 17:18:07 -03:00
Nv De-tile GOB when DMA copying from block linear to pitch kind memory regions (#3207) 2022-03-20 13:55:07 -03:00
Olsc oslc: Fix condition in GetSaveDataBackupSetting (#3208) 2022-03-20 13:25:29 -03: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 Update LibHac to v0.16.0 (#3159) 2022-02-27 00:52:25 +01:00
Pcv clkrst: Stub/Implement IClkrstManager and IClkrstSession calls (#2692) 2021-09-29 01:03:35 +02:00
Pm misc: Make PID unsigned long instead of long (#3043) 2022-02-09 17:18:07 -03: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 Support memory aliasing (#2954) 2022-05-02 20:30:02 -03:00
Sdb hle: Some cleanup (#3210) 2022-03-22 20:46:16 +01:00
Settings hle: Some cleanup (#3210) 2022-03-22 20:46:16 +01:00
Sm Fix disposing of IPC sessions server at emulation stop (#2334) 2021-06-29 19:37:13 +02:00
Sockets misc: Make PID unsigned long instead of long (#3043) 2022-02-09 17:18:07 -03:00
Spl hle: Some cleanup (#3210) 2022-03-22 20:46:16 +01:00
Srepo Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Ssl hle: Some cleanup (#3210) 2022-03-22 20:46:16 +01:00
SurfaceFlinger misc: Make PID unsigned long instead of long (#3043) 2022-02-09 17:18:07 -03:00
Time hle: Some cleanup (#3210) 2022-03-22 20:46:16 +01:00
Usb Refactoring HOS folder structure (#771) 2019-09-19 10:45:11 +10:00
Vi Limit number of events that can be retrieved from GetDisplayVSyncEvent (#3188) 2022-03-12 17:56:19 +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 Add dedicated ServerBase for FileSystem services (#3142) 2022-02-19 15:29:11 +01:00
DummyService.cs Refactoring commands handling (#728) 2019-07-11 22:13:43 -03:00
IpcService.cs Added trace log level (#3096) 2022-02-17 21:08:07 -03:00
ServerBase.cs Collapse AsSpan().Slice(..) calls into AsSpan(..) (#3145) 2022-02-22 10:32:10 -03:00
ServiceAttributes.cs IPC refactor part 1: Use explicit separate threads to process requests (#1447) 2020-09-22 14:50:40 +10:00