aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Horizon/Sdk/Sm
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Horizon/Sdk/Sm')
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sm/ServiceName.cs2
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sm/SmApi.cs14
2 files changed, 14 insertions, 2 deletions
diff --git a/src/Ryujinx.Horizon/Sdk/Sm/ServiceName.cs b/src/Ryujinx.Horizon/Sdk/Sm/ServiceName.cs
index f90d39c2..c89f118c 100644
--- a/src/Ryujinx.Horizon/Sdk/Sm/ServiceName.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sm/ServiceName.cs
@@ -4,7 +4,7 @@ using System.Runtime.InteropServices;
namespace Ryujinx.Horizon.Sdk.Sm
{
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- readonly struct ServiceName
+ public readonly struct ServiceName
{
public static ServiceName Invalid { get; } = new(0);
diff --git a/src/Ryujinx.Horizon/Sdk/Sm/SmApi.cs b/src/Ryujinx.Horizon/Sdk/Sm/SmApi.cs
index 3e5635bf..1ab400bd 100644
--- a/src/Ryujinx.Horizon/Sdk/Sm/SmApi.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sm/SmApi.cs
@@ -5,7 +5,7 @@ using System;
namespace Ryujinx.Horizon.Sdk.Sm
{
- class SmApi
+ public class SmApi : IDisposable
{
private const string SmName = "sm:";
@@ -109,5 +109,17 @@ namespace Ryujinx.Horizon.Sdk.Sm
return ServiceUtil.SendRequest(out _, _portHandle, 4, sendPid: true, data);
}
+
+ public void Dispose()
+ {
+ if (_portHandle != 0)
+ {
+ HorizonStatic.Syscall.CloseHandle(_portHandle);
+
+ _portHandle = 0;
+ }
+
+ GC.SuppressFinalize(this);
+ }
}
}