aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Horizon/Sdk
diff options
context:
space:
mode:
authorAc_K <Acoustik666@gmail.com>2023-01-13 01:50:14 +0100
committerGitHub <noreply@github.com>2023-01-13 01:50:14 +0100
commit4d2c8e2a442d2859a75c6c9162a192a0a9a221be (patch)
treec6a9bfe24c089f1c748dcc6ef34aa2e5262c5b8e /Ryujinx.Horizon/Sdk
parent8fa248ceb4cbc9d199bbac1d968df8b168106c2c (diff)
Prepo: Fix SaveSystemReport* IPC definitions (#4278)
* Prepo: Fix SaveSystemReport IPC definitions * Follow original code * Fix args index in HipcGenerator * Addresses feedback * oops
Diffstat (limited to 'Ryujinx.Horizon/Sdk')
-rw-r--r--Ryujinx.Horizon/Sdk/Account/Uid.cs2
-rw-r--r--Ryujinx.Horizon/Sdk/Ncm/ApplicationId.cs52
-rw-r--r--Ryujinx.Horizon/Sdk/Prepo/IPrepoService.cs4
-rw-r--r--Ryujinx.Horizon/Sdk/Sm/ServiceName.cs2
4 files changed, 56 insertions, 4 deletions
diff --git a/Ryujinx.Horizon/Sdk/Account/Uid.cs b/Ryujinx.Horizon/Sdk/Account/Uid.cs
index a0a39978..5aad0463 100644
--- a/Ryujinx.Horizon/Sdk/Account/Uid.cs
+++ b/Ryujinx.Horizon/Sdk/Account/Uid.cs
@@ -6,7 +6,7 @@ using System.Runtime.InteropServices;
namespace Ryujinx.Horizon.Sdk.Account
{
[StructLayout(LayoutKind.Sequential)]
- public readonly record struct Uid
+ readonly record struct Uid
{
public readonly long High;
public readonly long Low;
diff --git a/Ryujinx.Horizon/Sdk/Ncm/ApplicationId.cs b/Ryujinx.Horizon/Sdk/Ncm/ApplicationId.cs
new file mode 100644
index 00000000..37b4cbfb
--- /dev/null
+++ b/Ryujinx.Horizon/Sdk/Ncm/ApplicationId.cs
@@ -0,0 +1,52 @@
+namespace Ryujinx.Horizon.Sdk.Ncm
+{
+ readonly struct ApplicationId
+ {
+ public readonly ulong Id;
+
+ public static int Length => sizeof(ulong);
+
+ public static ApplicationId First => new(0x0100000000010000);
+
+ public static ApplicationId Last => new(0x01FFFFFFFFFFFFFF);
+
+ public static ApplicationId Invalid => new(0);
+
+ public bool IsValid => Id >= First.Id && Id <= Last.Id;
+
+ public ApplicationId(ulong id)
+ {
+ Id = id;
+ }
+
+ public override bool Equals(object obj)
+ {
+ return obj is ApplicationId applicationId && applicationId.Equals(this);
+ }
+
+ public bool Equals(ApplicationId other)
+ {
+ return other.Id == Id;
+ }
+
+ public override int GetHashCode()
+ {
+ return Id.GetHashCode();
+ }
+
+ public static bool operator ==(ApplicationId lhs, ApplicationId rhs)
+ {
+ return lhs.Equals(rhs);
+ }
+
+ public static bool operator !=(ApplicationId lhs, ApplicationId rhs)
+ {
+ return !lhs.Equals(rhs);
+ }
+
+ public override string ToString()
+ {
+ return $"0x{Id:x}";
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.Horizon/Sdk/Prepo/IPrepoService.cs b/Ryujinx.Horizon/Sdk/Prepo/IPrepoService.cs
index f61ee61b..042cb400 100644
--- a/Ryujinx.Horizon/Sdk/Prepo/IPrepoService.cs
+++ b/Ryujinx.Horizon/Sdk/Prepo/IPrepoService.cs
@@ -12,8 +12,8 @@ namespace Ryujinx.Horizon.Sdk.Prepo
Result RequestImmediateTransmission();
Result GetTransmissionStatus(out int status);
Result GetSystemSessionId(out ulong systemSessionId);
- Result SaveSystemReport(ReadOnlySpan<byte> gameRoomBuffer, ReadOnlySpan<byte> reportBuffer, ulong pid);
- Result SaveSystemReportWithUser(Uid userId, ReadOnlySpan<byte> gameRoomBuffer, ReadOnlySpan<byte> reportBuffer, ulong pid);
+ Result SaveSystemReport(ReadOnlySpan<byte> gameRoomBuffer, Ncm.ApplicationId applicationId, ReadOnlySpan<byte> reportBuffer);
+ Result SaveSystemReportWithUser(Uid userId, ReadOnlySpan<byte> gameRoomBuffer, Ncm.ApplicationId applicationId, ReadOnlySpan<byte> reportBuffer);
Result IsUserAgreementCheckEnabled(out bool enabled);
Result SetUserAgreementCheckEnabled(bool enabled);
}
diff --git a/Ryujinx.Horizon/Sdk/Sm/ServiceName.cs b/Ryujinx.Horizon/Sdk/Sm/ServiceName.cs
index dbb30078..9b7fae3f 100644
--- a/Ryujinx.Horizon/Sdk/Sm/ServiceName.cs
+++ b/Ryujinx.Horizon/Sdk/Sm/ServiceName.cs
@@ -8,7 +8,7 @@ namespace Ryujinx.Horizon.Sdk.Sm
{
public static ServiceName Invalid { get; } = new ServiceName(0);
- public bool IsInvalid => Packed == 0;
+ public bool IsValid => Packed != 0;
public int Length => sizeof(ulong);