Ipc refactor (#9)

* Start refactoring IPC objects (started with IFile and IFileSystem)

* End refactoring IPC objects (#8)

* End refactoring IPC objects

* End refactoring IPC objects

corrections
This commit is contained in:
gdkchan 2018-02-09 21:14:55 -03:00 committed by GitHub
parent 7f4a190665
commit 322f28668d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
62 changed files with 935 additions and 619 deletions

View file

@ -1,70 +0,0 @@
using ChocolArm64.Memory;
using System.IO;
using static Ryujinx.OsHle.Objects.ObjHelper;
namespace Ryujinx.OsHle.Objects
{
class FspSrvIFileSystem
{
public string FilePath { get; private set; }
public FspSrvIFileSystem(string Path)
{
this.FilePath = Path;
}
public static long GetEntryType(ServiceCtx Context)
{
FspSrvIFileSystem FileSystem = Context.GetObject<FspSrvIFileSystem>();
long Position = Context.Request.PtrBuff[0].Position;
string Name = AMemoryHelper.ReadAsciiString(Context.Memory, Position);
string FileName = Context.Ns.VFs.GetFullPath(FileSystem.FilePath, Name);
if (FileName == null)
{
//TODO: Correct error code.
return -1;
}
bool IsFile = File.Exists(FileName);
Context.ResponseData.Write(IsFile ? 1 : 0);
return 0;
}
public static long OpenFile(ServiceCtx Context)
{
FspSrvIFileSystem FileSystem = Context.GetObject<FspSrvIFileSystem>();
long Position = Context.Request.PtrBuff[0].Position;
int FilterFlags = Context.RequestData.ReadInt32();
string Name = AMemoryHelper.ReadAsciiString(Context.Memory, Position);
string FileName = Context.Ns.VFs.GetFullPath(FileSystem.FilePath, Name);
if (FileName == null)
{
//TODO: Correct error code.
return -1;
}
FileStream Stream = new FileStream(FileName, FileMode.OpenOrCreate);
MakeObject(Context, new FspSrvIFile(Stream));
return 0;
}
public static long Commit(ServiceCtx Context)
{
return 0;
}
}
}