diff options
| author | Ac_K <Acoustik666@gmail.com> | 2024-01-25 23:06:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-25 23:06:53 +0100 |
| commit | cd37c75b82f97ad5d3bf6317ffcde62c06a6e920 (patch) | |
| tree | db4f6e9630878a4b32c8880ef95f7c877e20aab0 /src/Ryujinx.Horizon/Sdk/Arp/Detail | |
| parent | 43705c2320c2ff7c8f6dca1141f3bf56033966d4 (diff) | |
Horizon: Implement arp:r and arp:w services (#5802)
* Horizon: Implement arp:r and arp:w services
* Fix formatting
* Remove HLE arp services
* Revert "Remove HLE arp services"
This reverts commit c576fcccadb963db56b96bacabd1c1ac7abfb1ab.
* Keep LibHac impl since it's used in bcat
* Addresses gdkchan's feedback
* ArpApi in PrepoIpcServer and remove LmApi
* Fix 2
* Fixes ArpApi init
* Fix encoding
* Update PrepoService.cs
* Fix prepo
Diffstat (limited to 'src/Ryujinx.Horizon/Sdk/Arp/Detail')
| -rw-r--r-- | src/Ryujinx.Horizon/Sdk/Arp/Detail/ApplicationInstance.cs | 13 | ||||
| -rw-r--r-- | src/Ryujinx.Horizon/Sdk/Arp/Detail/ApplicationInstanceManager.cs | 31 |
2 files changed, 44 insertions, 0 deletions
diff --git a/src/Ryujinx.Horizon/Sdk/Arp/Detail/ApplicationInstance.cs b/src/Ryujinx.Horizon/Sdk/Arp/Detail/ApplicationInstance.cs new file mode 100644 index 00000000..5eb0ab18 --- /dev/null +++ b/src/Ryujinx.Horizon/Sdk/Arp/Detail/ApplicationInstance.cs @@ -0,0 +1,13 @@ +using Ryujinx.Horizon.Sdk.Ns; + +namespace Ryujinx.Horizon.Sdk.Arp.Detail +{ + class ApplicationInstance + { + public ulong Pid { get; set; } + public ApplicationLaunchProperty? LaunchProperty { get; set; } + public ApplicationProcessProperty? ProcessProperty { get; set; } + public ApplicationControlProperty? ControlProperty { get; set; } + public ApplicationCertificate? Certificate { get; set; } + } +} diff --git a/src/Ryujinx.Horizon/Sdk/Arp/Detail/ApplicationInstanceManager.cs b/src/Ryujinx.Horizon/Sdk/Arp/Detail/ApplicationInstanceManager.cs new file mode 100644 index 00000000..18c993ce --- /dev/null +++ b/src/Ryujinx.Horizon/Sdk/Arp/Detail/ApplicationInstanceManager.cs @@ -0,0 +1,31 @@ +using Ryujinx.Horizon.Sdk.OsTypes; +using System; +using System.Threading; + +namespace Ryujinx.Horizon.Sdk.Arp.Detail +{ + class ApplicationInstanceManager : IDisposable + { + private int _disposalState; + + public SystemEventType SystemEvent; + public int EventHandle; + + public readonly ApplicationInstance[] Entries = new ApplicationInstance[2]; + + public ApplicationInstanceManager() + { + Os.CreateSystemEvent(out SystemEvent, EventClearMode.ManualClear, true).AbortOnFailure(); + + EventHandle = Os.GetReadableHandleOfSystemEvent(ref SystemEvent); + } + + public void Dispose() + { + if (EventHandle != 0 && Interlocked.Exchange(ref _disposalState, 1) == 0) + { + Os.DestroySystemEvent(ref SystemEvent); + } + } + } +} |
