diff options
| author | Ac_K <Acoustik666@gmail.com> | 2023-01-13 01:50:14 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-13 01:50:14 +0100 |
| commit | 4d2c8e2a442d2859a75c6c9162a192a0a9a221be (patch) | |
| tree | c6a9bfe24c089f1c748dcc6ef34aa2e5262c5b8e /Ryujinx.Horizon/Sdk | |
| parent | 8fa248ceb4cbc9d199bbac1d968df8b168106c2c (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.cs | 2 | ||||
| -rw-r--r-- | Ryujinx.Horizon/Sdk/Ncm/ApplicationId.cs | 52 | ||||
| -rw-r--r-- | Ryujinx.Horizon/Sdk/Prepo/IPrepoService.cs | 4 | ||||
| -rw-r--r-- | Ryujinx.Horizon/Sdk/Sm/ServiceName.cs | 2 |
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); |
