ISaveDataInfoReader.cs 944 B

12345678910111213141516171819202122232425262728293031
  1. using LibHac;
  2. namespace Ryujinx.HLE.HOS.Services.Fs
  3. {
  4. class ISaveDataInfoReader : IpcService
  5. {
  6. private LibHac.FsService.ISaveDataInfoReader _baseReader;
  7. public ISaveDataInfoReader(LibHac.FsService.ISaveDataInfoReader baseReader)
  8. {
  9. _baseReader = baseReader;
  10. }
  11. [Command(0)]
  12. // ReadSaveDataInfo() -> (u64, buffer<unknown, 6>)
  13. public ResultCode ReadSaveDataInfo(ServiceCtx context)
  14. {
  15. long bufferPosition = context.Request.ReceiveBuff[0].Position;
  16. long bufferLen = context.Request.ReceiveBuff[0].Size;
  17. byte[] infoBuffer = new byte[bufferLen];
  18. Result result = _baseReader.ReadSaveDataInfo(out long readCount, infoBuffer);
  19. context.Memory.WriteBytes(bufferPosition, infoBuffer);
  20. context.ResponseData.Write(readCount);
  21. return (ResultCode)result.Value;
  22. }
  23. }
  24. }