diff --git a/src/Ryujinx.Horizon/Am/Ipc/Storage/Storage.cs b/src/Ryujinx.Horizon/Am/Ipc/Storage/Storage.cs new file mode 100644 index 0000000000..6437d7758f --- /dev/null +++ b/src/Ryujinx.Horizon/Am/Ipc/Storage/Storage.cs @@ -0,0 +1,37 @@ +using Ryujinx.Common.Logging; +using Ryujinx.Horizon.Common; +using Ryujinx.Horizon.Sdk.Am.Storage; +using Ryujinx.Horizon.Sdk.Sf; + +namespace Ryujinx.Horizon.Am.Ipc.Storage +{ + partial class Storage : IStorage + { + [CmifCommand(0)] + public Result Open(out IStorageAccessor storageAccessor) + { + storageAccessor = new StorageAccessor(); + Logger.Stub?.PrintStub(LogClass.ServiceAm); + + return Result.Success; + } + + [CmifCommand(1)] + public Result OpenTransferStorage(out ITransferStorageAccessor transferStorageAccessor) + { + transferStorageAccessor = new TransferStorageAccessor(); + Logger.Stub?.PrintStub(LogClass.ServiceAm); + + return Result.Success; + } + + // TODO: Get CMD No. + public Result GetAndInvalidate(out IStorage storage) + { + storage = new Storage(); + Logger.Stub?.PrintStub(LogClass.ServiceAm); + + return Result.Success; + } + } +} diff --git a/src/Ryujinx.Horizon/Am/Ipc/Storage/StorageAccessor.cs b/src/Ryujinx.Horizon/Am/Ipc/Storage/StorageAccessor.cs new file mode 100644 index 0000000000..13e71ce59e --- /dev/null +++ b/src/Ryujinx.Horizon/Am/Ipc/Storage/StorageAccessor.cs @@ -0,0 +1,36 @@ +using Ryujinx.Common.Logging; +using Ryujinx.Horizon.Common; +using Ryujinx.Horizon.Sdk.Am.Storage; +using Ryujinx.Horizon.Sdk.Sf; +using System; + +namespace Ryujinx.Horizon.Am.Ipc.Storage +{ + partial class StorageAccessor : IStorageAccessor + { + [CmifCommand(0)] + public Result GetSize(out long size) + { + size = 0; + Logger.Stub?.PrintStub(LogClass.ServiceAm); + + return Result.Success; + } + + [CmifCommand(10)] + public Result Write(long arg0, ReadOnlySpan span) + { + Logger.Stub?.PrintStub(LogClass.ServiceAm); + + return Result.Success; + } + + [CmifCommand(11)] + public Result Read(long arg0, ReadOnlySpan span) + { + Logger.Stub?.PrintStub(LogClass.ServiceAm); + + return Result.Success; + } + } +} diff --git a/src/Ryujinx.Horizon/Am/Ipc/Storage/TransferStorageAccessor.cs b/src/Ryujinx.Horizon/Am/Ipc/Storage/TransferStorageAccessor.cs new file mode 100644 index 0000000000..7efc596870 --- /dev/null +++ b/src/Ryujinx.Horizon/Am/Ipc/Storage/TransferStorageAccessor.cs @@ -0,0 +1,29 @@ +using Ryujinx.Common.Logging; +using Ryujinx.Horizon.Common; +using Ryujinx.Horizon.Sdk.Am.Storage; +using Ryujinx.Horizon.Sdk.Sf; + +namespace Ryujinx.Horizon.Am.Ipc.Storage +{ + partial class TransferStorageAccessor : ITransferStorageAccessor + { + [CmifCommand(0)] + public Result GetSize(out long size) + { + size = 0; + Logger.Stub?.PrintStub(LogClass.ServiceAm); + + return Result.Success; + } + + [CmifCommand(1)] + public Result GetHandle(out int arg0, out ulong arg1) + { + arg0 = 0; + arg1 = 0; + Logger.Stub?.PrintStub(LogClass.ServiceAm); + + return Result.Success; + } + } +} diff --git a/src/Ryujinx.Horizon/Sdk/Am/Storage/IStorage.cs b/src/Ryujinx.Horizon/Sdk/Am/Storage/IStorage.cs index 31a20cdbad..524d2e9236 100644 --- a/src/Ryujinx.Horizon/Sdk/Am/Storage/IStorage.cs +++ b/src/Ryujinx.Horizon/Sdk/Am/Storage/IStorage.cs @@ -5,8 +5,8 @@ namespace Ryujinx.Horizon.Sdk.Am.Storage { interface IStorage : IServiceObject { - Result Open(out IStorageAccessor arg0); - Result OpenTransferStorage(out ITransferStorageAccessor arg0); - Result GetAndInvalidate(out IStorage arg0); + Result Open(out IStorageAccessor storageAccessor); + Result OpenTransferStorage(out ITransferStorageAccessor transferStorageAccessor); + Result GetAndInvalidate(out IStorage storage); } } diff --git a/src/Ryujinx.Horizon/Sdk/Am/Storage/IStorageAccessor.cs b/src/Ryujinx.Horizon/Sdk/Am/Storage/IStorageAccessor.cs index c92aab8235..5dfe0d08ec 100644 --- a/src/Ryujinx.Horizon/Sdk/Am/Storage/IStorageAccessor.cs +++ b/src/Ryujinx.Horizon/Sdk/Am/Storage/IStorageAccessor.cs @@ -6,8 +6,8 @@ namespace Ryujinx.Horizon.Sdk.Am.Storage { interface IStorageAccessor : IServiceObject { - Result GetSize(out long arg0); - Result Write(long arg0, ReadOnlySpan arg1); - Result Read(long arg0, Span arg1); + Result GetSize(out long size); + Result Write(long arg0, ReadOnlySpan span); + Result Read(long arg0, ReadOnlySpan span); } } diff --git a/src/Ryujinx.Horizon/Sdk/Am/Storage/ITransferStorageAccessor.cs b/src/Ryujinx.Horizon/Sdk/Am/Storage/ITransferStorageAccessor.cs index 8d477073a6..a7d2aa2c2f 100644 --- a/src/Ryujinx.Horizon/Sdk/Am/Storage/ITransferStorageAccessor.cs +++ b/src/Ryujinx.Horizon/Sdk/Am/Storage/ITransferStorageAccessor.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Horizon.Sdk.Am.Storage { interface ITransferStorageAccessor : IServiceObject { - Result GetSize(out long arg0); + Result GetSize(out long size); Result GetHandle(out int arg0, out ulong arg1); } }