mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2025-09-17 16:27:54 -05:00
Implement NGC service (#5681)
* Implement NGC service * Use raw byte arrays instead of string for _wordSeparators * Silence IDE0230 for _wordSeparators * Try to silence warning about _rangeValuesCount not being read on SparseSet * Make AcType enum private * Add abstract methods and one TODO that I forgot * PR feedback * More PR feedback * More PR feedback
This commit is contained in:
13
src/Ryujinx.Horizon/Sdk/Fs/FileHandle.cs
Normal file
13
src/Ryujinx.Horizon/Sdk/Fs/FileHandle.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Fs
|
||||
{
|
||||
public readonly struct FileHandle
|
||||
{
|
||||
public object Value { get; }
|
||||
|
||||
public FileHandle(object value)
|
||||
{
|
||||
Value = value;
|
||||
}
|
||||
}
|
||||
}
|
13
src/Ryujinx.Horizon/Sdk/Fs/FsResult.cs
Normal file
13
src/Ryujinx.Horizon/Sdk/Fs/FsResult.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Ryujinx.Horizon.Common;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Fs
|
||||
{
|
||||
static class FsResult
|
||||
{
|
||||
private const int ModuleId = 2;
|
||||
|
||||
public static Result PathNotFound => new(ModuleId, 1);
|
||||
public static Result PathAlreadyExists => new(ModuleId, 2);
|
||||
public static Result TargetNotFound => new(ModuleId, 1002);
|
||||
}
|
||||
}
|
16
src/Ryujinx.Horizon/Sdk/Fs/IFsClient.cs
Normal file
16
src/Ryujinx.Horizon/Sdk/Fs/IFsClient.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using Ryujinx.Horizon.Common;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Fs
|
||||
{
|
||||
public interface IFsClient
|
||||
{
|
||||
Result QueryMountSystemDataCacheSize(out long size, ulong dataId);
|
||||
Result MountSystemData(string mountName, ulong dataId);
|
||||
Result OpenFile(out FileHandle handle, string path, OpenMode openMode);
|
||||
Result ReadFile(FileHandle handle, long offset, Span<byte> destination);
|
||||
Result GetFileSize(out long size, FileHandle handle);
|
||||
void CloseFile(FileHandle handle);
|
||||
void Unmount(string mountName);
|
||||
}
|
||||
}
|
14
src/Ryujinx.Horizon/Sdk/Fs/OpenMode.cs
Normal file
14
src/Ryujinx.Horizon/Sdk/Fs/OpenMode.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Fs
|
||||
{
|
||||
[Flags]
|
||||
public enum OpenMode
|
||||
{
|
||||
Read = 1,
|
||||
Write = 2,
|
||||
AllowAppend = 4,
|
||||
ReadWrite = 3,
|
||||
All = 7,
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user