aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs')
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs31
1 files changed, 31 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs b/Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs
new file mode 100644
index 00000000..3d5ae8e2
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs
@@ -0,0 +1,31 @@
+using LibHac;
+
+namespace Ryujinx.HLE.HOS.Services.Fs
+{
+ class ISaveDataInfoReader : IpcService
+ {
+ private LibHac.FsService.ISaveDataInfoReader _baseReader;
+
+ public ISaveDataInfoReader(LibHac.FsService.ISaveDataInfoReader baseReader)
+ {
+ _baseReader = baseReader;
+ }
+
+ [Command(0)]
+ // ReadSaveDataInfo() -> (u64, buffer<unknown, 6>)
+ public ResultCode ReadSaveDataInfo(ServiceCtx context)
+ {
+ long bufferPosition = context.Request.ReceiveBuff[0].Position;
+ long bufferLen = context.Request.ReceiveBuff[0].Size;
+
+ byte[] infoBuffer = new byte[bufferLen];
+
+ Result result = _baseReader.ReadSaveDataInfo(out long readCount, infoBuffer);
+
+ context.Memory.WriteBytes(bufferPosition, infoBuffer);
+ context.ResponseData.Write(readCount);
+
+ return (ResultCode)result.Value;
+ }
+ }
+}