Normalize "Based on nnSdk" comments

This commit is contained in:
Alex Barney 2022-11-09 20:55:44 -07:00
parent 4362b7be53
commit 70aac7ca7b
96 changed files with 132 additions and 132 deletions

View file

@ -9,7 +9,7 @@ namespace LibHac.Fs;
/// <summary>
/// Iterates through each directory in a path beginning with the root directory.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
[NonCopyableDisposable]
public ref struct DirectoryPathParser
{

View file

@ -11,7 +11,7 @@ namespace LibHac.Fs;
/// <summary>
/// Allows interacting with an <see cref="IFile"/> via an <see cref="IStorage"/> interface.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class FileStorage : IStorage
{
private const long InvalidSize = -1;
@ -155,7 +155,7 @@ public class FileStorage : IStorage
/// <see cref="IStorage"/> interface. The opened file will automatically be closed when the
/// <see cref="FileStorageBasedFileSystem"/> is disposed.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class FileStorageBasedFileSystem : FileStorage
{
private SharedRef<IFileSystem> _baseFileSystem;
@ -198,7 +198,7 @@ public class FileStorageBasedFileSystem : FileStorage
/// Provides an <see cref="IStorage"/> interface for interacting with an opened file from a mounted file system.
/// The caller may choose whether or not the file will be closed when the <see cref="FileHandleStorage"/> is disposed.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class FileHandleStorage : IStorage
{
private const long InvalidSize = -1;

View file

@ -83,7 +83,7 @@ public static class PathExtensions
/// ensure a write buffer is allocated and copy the input path to it. <see cref="SetShallowBuffer"/> will
/// directly use the input buffer without copying. If this method is used, the caller must ensure the path
/// is normalized before passing it to <see cref="SetShallowBuffer"/>.</para>
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para></remarks>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para></remarks>
[DebuggerDisplay("{" + nameof(ToString) + "(),nq}")]
[NonCopyableDisposable]
public ref struct Path

View file

@ -13,7 +13,7 @@ namespace LibHac.Fs;
/// <summary>
/// Contains functions for working with path formatting and normalization.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class PathFormatter
{
private static ReadOnlySpan<byte> InvalidCharacter =>

View file

@ -10,7 +10,7 @@ namespace LibHac.Fs;
/// <summary>
/// Contains functions for doing with basic path normalization.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class PathNormalizer
{
private enum PathState

View file

@ -12,7 +12,7 @@ namespace LibHac.Fs;
/// <summary>
/// Contains various utility functions for working with paths.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class PathUtility
{
public static void Replace(Span<byte> buffer, byte currentChar, byte newChar)

View file

@ -8,7 +8,7 @@ namespace LibHac.Fs;
/// <summary>
/// Represents a contiguous range of offsets in a piece of data.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public readonly struct Range : IEquatable<Range>, IComparable<Range>
{
public readonly long Offset;

View file

@ -10,7 +10,7 @@ namespace LibHac.Fs;
/// <summary>
/// Contains functions for working with Windows paths.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class WindowsPath
{
private const int WindowsDriveLength = 2;

View file

@ -8,7 +8,7 @@ namespace LibHac.Fs.Impl;
/// <summary>
/// Provides access to a directory in a mounted file system and handles closing the directory.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class DirectoryAccessor : IDisposable
{
private UniqueRef<IDirectory> _directory;

View file

@ -19,7 +19,7 @@ internal enum WriteState
/// <summary>
/// Provides access to a mount <see cref="IFile"/> and handles caching it.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class FileAccessor : IDisposable
{
private const string NeedFlushMessage = "Error: nn::fs::CloseFile() failed because the file was not flushed.\n";

View file

@ -17,7 +17,7 @@ namespace LibHac.Fs.Impl;
/// system, whether caching is being used, how to get a save file system's <see cref="SaveDataAttribute"/> and
/// the target used to include a save file system in a multi-commit operation.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class FileSystemAccessor : IDisposable
{
private const string EmptyMountNameMessage = "Error: Mount failed because the mount name was empty.\n";

View file

@ -6,7 +6,7 @@ namespace LibHac.Fs.Fsa;
/// <summary>
/// Provides an interface for enumerating the child entries of a directory.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public abstract class IDirectory : IDisposable
{
public virtual void Dispose() { }

View file

@ -19,7 +19,7 @@ namespace LibHac.Fs.Fsa;
/// <para>- If <see cref="Write"/> is called on an offset past the end of the <see cref="IFile"/>,
/// the <see cref="OpenMode.AllowAppend"/> mode is set and the file supports expansion,
/// the file will be expanded so that it is large enough to contain the written data.</para>
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para></remarks>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para></remarks>
public abstract class IFile : IDisposable
{
public virtual void Dispose() { }

View file

@ -8,7 +8,7 @@ namespace LibHac.Fs.Fsa;
/// <summary>
/// Provides an interface for accessing a file system. <c>/</c> is used as the path delimiter.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public abstract class IFileSystem : IDisposable
{
public virtual void Dispose() { }

View file

@ -13,7 +13,7 @@ namespace LibHac.Fs.Impl;
/// Holds a list of <see cref="FileSystemAccessor"/>s that are indexed by their name.
/// These may be retrieved or removed using their name as a key.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class MountTable : IDisposable
{
private LinkedList<FileSystemAccessor> _fileSystemList;

View file

@ -14,7 +14,7 @@ namespace LibHac.Fs.Fsa;
/// <summary>
/// Contains functions for managing mounted file systems.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class MountUtility
{
/// <summary>

View file

@ -23,7 +23,7 @@ public interface IUnmountHookInvoker : IDisposable
/// <summary>
/// Contains functions for registering and unregistering mounted <see cref="IFileSystem"/>s.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class Registrar
{
private class UnmountHookFileSystem : IFileSystem

View file

@ -10,7 +10,7 @@ namespace LibHac.Fs.Fsa;
/// <summary>
/// Contains functions for interacting with opened directories.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
[SkipLocalsInit]
public static class UserDirectory
{

View file

@ -10,7 +10,7 @@ namespace LibHac.Fs.Fsa;
/// <summary>
/// Contains functions for interacting with opened files.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
[SkipLocalsInit]
public static class UserFile
{

View file

@ -14,7 +14,7 @@ namespace LibHac.Fs.Fsa;
/// <summary>
/// Contains functions for interacting with mounted file systems.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
[SkipLocalsInit]
public static class UserFileSystem
{

View file

@ -6,7 +6,7 @@ namespace LibHac.Fs.Fsa;
/// <summary>
/// Contains functions meant for debug use for interacting with mounted file systems.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class UserFileSystemForDebug
{
internal static Result GetFileTimeStampRawForDebug(this FileSystemClientImpl fs, out FileTimeStampRaw timeStamp,

View file

@ -9,7 +9,7 @@ namespace LibHac.Fs.Fsa;
/// <summary>
/// Contains functions meant for internal use for interacting with mounted file systems.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class UserFileSystemPrivate
{
public static Result CreateFile(this FileSystemClient fs, U8Span path, long size, CreateFileOptions option)

View file

@ -16,7 +16,7 @@ internal struct UserMountTableGlobals
/// <summary>
/// Contains functions for adding, removing and retrieving <see cref="FileSystemAccessor"/>s from the mount table.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal static class UserMountTable
{
public static Result Register(this FileSystemClientImpl fs, ref UniqueRef<FileSystemAccessor> fileSystem)

View file

@ -8,7 +8,7 @@ namespace LibHac.Fs;
/// <summary>
/// Provides an interface for reading and writing a sequence of bytes.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public abstract class IStorage : IDisposable
{
public virtual void Dispose() { }

View file

@ -10,7 +10,7 @@ namespace LibHac.Fs.Impl;
/// <summary>
/// Provides a system for caching reads to one or more file systems.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal abstract class IFileDataCache : IDisposable
{
public abstract void Dispose();

View file

@ -11,7 +11,7 @@ namespace LibHac.Fs.Impl;
/// An adapter for using an <see cref="IStorageSf"/> service object as an <see cref="IStorage"/>. Used
/// when receiving a Horizon IPC storage object so it can be used as an <see cref="IStorage"/> locally.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class StorageServiceObjectAdapter : IStorage
{
private SharedRef<IStorageSf> _baseStorage;

View file

@ -7,7 +7,7 @@ namespace LibHac.Fs;
/// <summary>
/// Allows interacting with a <see cref="byte"/> array via the <see cref="IStorage"/> interface.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class MemoryStorage : IStorage
{
private byte[] _storageBuffer;

View file

@ -9,7 +9,7 @@ namespace LibHac.Fs;
/// <summary>
/// Wraps an <see cref="IFile"/> and only allows read operations on it.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class ReadOnlyFile : IFile
{
private UniqueRef<IFile> _baseFile;
@ -71,7 +71,7 @@ internal class ReadOnlyFile : IFile
/// <summary>
/// Wraps an <see cref="IFileSystem"/> and only allows read operations on it.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class ReadOnlyFileSystem : IFileSystem
{
private SharedRef<IFileSystem> _baseFileSystem;

View file

@ -18,7 +18,7 @@ namespace LibHac.Fs;
/// the SubStorage as resizable. The SubStorage may only be resized if the end of the SubStorage
/// is located at the end of the base storage. When resizing the SubStorage, the base storage
/// will be resized to the appropriate length.</para>
/// <para>Based on FS 14.1.0 (nnSdk 14.3.0)</para>
/// <para>Based on nnSdk 14.3.0 (FS 14.1.0)</para>
/// </remarks>
public class SubStorage : IStorage
{

View file

@ -11,7 +11,7 @@ namespace LibHac.FsSrv;
/// <summary>
/// Handles debug configuration calls for <see cref="FileSystemProxyImpl"/>.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public struct DebugConfigurationService
{
private DebugConfigurationServiceImpl _serviceImpl;
@ -63,7 +63,7 @@ public struct DebugConfigurationService
/// <summary>
/// Manages a key-value list of debug settings.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class DebugConfigurationServiceImpl : IDisposable
{
private Configuration _config;

View file

@ -57,7 +57,7 @@ internal struct FileSystemProxyImplGlobals
/// <summary>
/// Dispatches calls to the various file system service objects.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class FileSystemProxyImpl : IFileSystemProxy, IFileSystemProxyForLoader
{
private FileSystemProxyCoreImpl _fsProxyCore;

View file

@ -10,7 +10,7 @@ namespace LibHac.FsSrv.FsCreator;
/// <summary>
/// Handles creating FAT file systems.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class FatFileSystemCreator : IFatFileSystemCreator
{
// ReSharper disable once NotAccessedField.Local

View file

@ -10,7 +10,7 @@ namespace LibHac.FsSrv.FsCreator;
/// Wraps an <see cref="IFile"/>, converting its returned <see cref="Result"/>s
/// to save-data-specific <see cref="Result"/>s.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class SaveDataResultConvertFile : IResultConvertFile
{
private bool _isReconstructible;
@ -30,7 +30,7 @@ public class SaveDataResultConvertFile : IResultConvertFile
/// Wraps an <see cref="IDirectory"/>, converting its returned <see cref="Result"/>s
/// to save-data-specific <see cref="Result"/>s.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class SaveDataResultConvertDirectory : IResultConvertDirectory
{
private bool _isReconstructible;
@ -51,7 +51,7 @@ public class SaveDataResultConvertDirectory : IResultConvertDirectory
/// Wraps an <see cref="ISaveDataFileSystem"/>, converting its returned <see cref="Result"/>s
/// to save-data-specific <see cref="Result"/>s.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class SaveDataResultConvertFileSystem : IResultConvertFileSystem<ISaveDataFileSystem>
{
private bool _isReconstructible;

View file

@ -6,7 +6,7 @@ namespace LibHac.FsSrv.FsCreator;
/// <summary>
/// Contains functions for converting internal save data <see cref="Result"/>s to external <see cref="Result"/>s.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public static class SaveDataResultConverter
{
private static Result ConvertCorruptedResult(Result result)

View file

@ -27,7 +27,7 @@ internal struct AccessControlGlobals
/// </summary>
/// <remarks><para>Each process has its own FS permissions. Every time a process tries to access various FS resources
/// or perform certain actions, this class determines if the process has the permissions to do so.</para>
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para></remarks>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para></remarks>
public class AccessControl
{
private Optional<AccessControlBits> _accessBits;

View file

@ -8,7 +8,7 @@ namespace LibHac.FsSrv.Impl;
/// <summary>
/// An <see cref="IStorage"/> for simulating device failures
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class DeviceEventSimulationStorage : IStorage
{
private SharedRef<IStorage> _baseStorage;

View file

@ -20,7 +20,7 @@ namespace LibHac.FsSrv.Impl;
/// <summary>
/// Wraps an <see cref="IFile"/> to allow interfacing with it via the <see cref="IFileSf"/> interface over IPC.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class FileInterfaceAdapter : IFileSf
{
private SharedRef<FileSystemInterfaceAdapter> _parentFs;
@ -181,7 +181,7 @@ public class FileInterfaceAdapter : IFileSf
/// <summary>
/// Wraps an <see cref="IDirectory"/> to allow interfacing with it via the <see cref="IDirectorySf"/> interface over IPC.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class DirectoryInterfaceAdapter : IDirectorySf
{
private SharedRef<FileSystemInterfaceAdapter> _parentFs;
@ -241,7 +241,7 @@ public class DirectoryInterfaceAdapter : IDirectorySf
/// Wraps an <see cref="IFileSystem"/> to allow interfacing with it via the <see cref="IFileSystemSf"/> interface over IPC.
/// All incoming paths are normalized before they are passed to the base <see cref="IFileSystem"/>.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class FileSystemInterfaceAdapter : IFileSystemSf
{
private SharedRef<IFileSystem> _baseFileSystem;

View file

@ -39,7 +39,7 @@ internal struct LocationResolverSetGlobals
/// <summary>
/// Manages resolving the location of NCAs via the <c>lr</c> service.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class LocationResolverSet : IDisposable
{
private Array5<Optional<LocationResolver>> _resolvers;

View file

@ -40,7 +40,7 @@ internal struct MultiCommitManagerGlobals
/// Save data image files are designed so that minimal changes are made when fully committing a provisionally committed save.
/// However if any commit fails for any reason, all other saves in the multi-commit will still be committed.
/// This can especially cause issues with directory save data where finishing a commit is much more involved.
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para>
/// </remarks>
internal class MultiCommitManager : IMultiCommitManager
{

View file

@ -10,7 +10,7 @@ namespace LibHac.FsSrv.Impl;
/// <summary>
/// Keeps track of the program IDs and program indexes of each program in a multi-program application.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class ProgramIndexMapInfoManager : IDisposable
{
private LinkedList<ProgramIndexMapInfo> _mapEntries;

View file

@ -60,7 +60,7 @@ internal struct ProgramInfoGlobals
/// <summary>
/// Contains the program ID, storage location and FS permissions of a running process.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class ProgramInfo
{
private readonly ulong _processId;

View file

@ -10,7 +10,7 @@ namespace LibHac.FsSrv.Impl;
/// <summary>
/// Handles adding, removing, and accessing <see cref="ProgramInfo"/> from the <see cref="ProgramRegistryImpl"/>.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class ProgramRegistryManager : IDisposable
{
// Note: FS keeps each ProgramInfo in a shared_ptr, but there aren't any non-memory resources

View file

@ -10,13 +10,13 @@ namespace LibHac.FsSrv.Impl;
/// <summary>
/// Holds the <see cref="ISaveDataExtraDataAccessor"/>s for opened save data file systems.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class SaveDataExtraDataAccessorCacheManager : ISaveDataExtraDataAccessorObserver
{
/// <summary>
/// Holds a single cached extra data accessor identified by its save data ID and save data space ID.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
[NonCopyable]
private struct Cache : IDisposable
{

View file

@ -11,7 +11,7 @@ namespace LibHac.FsSrv.Impl;
/// Manages a list of cached save data file systems. Each file system is registered and retrieved
/// based on its save data ID and save data space ID.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class SaveDataFileSystemCacheManager : IDisposable
{
[NonCopyable]

View file

@ -9,7 +9,7 @@ namespace LibHac.FsSrv.Impl;
/// Wraps an <see cref="ISaveDataFileSystem"/>.
/// Upon disposal the base file system is returned to the provided <see cref="SaveDataFileSystemCacheManager"/>.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class SaveDataFileSystemCacheRegister : IFileSystem
{
private SharedRef<ISaveDataFileSystem> _baseFileSystem;

View file

@ -11,7 +11,7 @@ namespace LibHac.FsSrv.Impl;
/// <summary>
/// Wraps an <see cref="IStorage"/> to allow interfacing with it via the <see cref="IStorageSf"/> interface over IPC.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class StorageInterfaceAdapter : IStorageSf
{
private SharedRef<IStorage> _baseStorage;

View file

@ -19,7 +19,7 @@ internal struct ProgramRegistryImplGlobals
/// is stored in a <see cref="ProgramInfo"/> and includes the process' process ID, program ID,
/// storage location and file system permissions. This allows FS to resolve the program ID and
/// verify the permissions of any process calling it.
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para></remarks>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para></remarks>
public class ProgramRegistryImpl : IProgramRegistry
{
private ulong _processId;

View file

@ -14,7 +14,7 @@ namespace LibHac.FsSrv;
/// </summary>
/// <remarks>Appropriate methods calls on IFileSystemProxy are forwarded to this class
/// which then checks the calling process' permissions and performs the requested operation.
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para></remarks>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para></remarks>
internal readonly struct ProgramIndexRegistryService
{
private readonly ProgramRegistryServiceImpl _serviceImpl;
@ -111,7 +111,7 @@ internal readonly struct ProgramIndexRegistryService
/// <summary>
/// Manages the main program registry and the multi-program registry.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class ProgramRegistryServiceImpl : IDisposable
{
// ReSharper disable once PrivateFieldCanBeConvertedToLocalVariable

View file

@ -32,7 +32,7 @@ namespace LibHac.FsSrv;
/// </summary>
/// <remarks>FS will have one instance of this class for every connected process.
/// The FS permissions of the calling process are checked on every function call.
/// <br/>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <br/>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
internal class SaveDataFileSystemService : ISaveDataTransferCoreInterface, ISaveDataMultiCommitCoreInterface
{
private const int OpenEntrySemaphoreCount = 256;

View file

@ -20,7 +20,7 @@ namespace LibHac.FsSrv;
/// Handles the lower-level operations on save data.
/// <see cref="SaveDataFileSystemService"/> uses this class to provide save data APIs at a higher level of abstraction.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class SaveDataFileSystemServiceImpl : IDisposable
{
private static readonly bool UseTargetManager = true;

View file

@ -25,7 +25,7 @@ namespace LibHac.FsSrv;
/// Each <see cref="SaveDataIndexer"/> manages one to two save data spaces.
/// Each save data space is identified by a <see cref="SaveDataSpaceId"/>,
/// and has its own unique storage location on disk.
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para>
/// </remarks>
public class SaveDataIndexer : ISaveDataIndexer
{
@ -54,7 +54,7 @@ public class SaveDataIndexer : ISaveDataIndexer
/// Mounts the storage for a <see cref="SaveDataIndexer"/>, and unmounts the storage
/// when the <see cref="ScopedMount"/> is disposed;
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
[NonCopyableDisposable]
private ref struct ScopedMount
{
@ -134,7 +134,7 @@ public class SaveDataIndexer : ISaveDataIndexer
/// <summary>
/// Iterates through all the save data indexed in a <see cref="SaveDataIndexer"/>.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
private class Reader : SaveDataInfoReaderImpl
{
private readonly SaveDataIndexer _indexer;

View file

@ -11,7 +11,7 @@ namespace LibHac.FsSrv;
/// <summary>
/// Iterates through all the save data indexed in a <see cref="SaveDataIndexerLite"/>.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class SaveDataIndexerLiteInfoReader : SaveDataInfoReaderImpl
{
private bool _finishedIterating;
@ -68,7 +68,7 @@ internal class SaveDataIndexerLiteInfoReader : SaveDataInfoReaderImpl
/// <remarks>
/// Only one temporary save data may exist at a time. When a new
/// save data is added to the index, the existing key-value pair is replaced.
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para>
/// </remarks>
public class SaveDataIndexerLite : ISaveDataIndexer
{

View file

@ -12,7 +12,7 @@ namespace LibHac.FsSrv;
/// Initializes and holds <see cref="ISaveDataIndexer"/>s for each save data space.
/// Creates accessors for individual SaveDataIndexers.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class SaveDataIndexerManager : ISaveDataIndexerManager, IDisposable
{
private MemoryResource _memoryResource;
@ -267,7 +267,7 @@ internal class SaveDataIndexerManager : ISaveDataIndexerManager, IDisposable
/// Gives exclusive access to an <see cref="ISaveDataIndexer"/>.
/// Releases the lock to the <see cref="ISaveDataIndexer"/> upon disposal.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class SaveDataIndexerAccessor : IDisposable
{
private readonly ISaveDataIndexer _indexer;

View file

@ -13,7 +13,7 @@ namespace LibHac.FsSrv;
/// Contains filter parameters for <see cref="SaveDataInfo"/> and can check
/// to see if a <see cref="SaveDataInfo"/> matches those parameters.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal struct SaveDataInfoFilter
{
private Optional<SaveDataSpaceId> _spaceId;
@ -110,7 +110,7 @@ internal struct SaveDataInfoFilter
/// Wraps a <see cref="SaveDataInfoReaderImpl"/> and only allows <see cref="SaveDataInfo"/>
/// that match a provided <see cref="SaveDataInfoFilter"/> to be returned.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class SaveDataInfoFilterReader : SaveDataInfoReaderImpl
{
private SharedRef<SaveDataInfoReaderImpl> _reader;

View file

@ -14,7 +14,7 @@ namespace LibHac.FsSrv;
/// <summary>
/// Contains global functions for SaveDataSharedFileStorage.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class SaveDataSharedFileStorageGlobalMethods
{
public static Result OpenSaveDataStorage(this FileSystemServer fsSrv,
@ -45,7 +45,7 @@ internal struct SaveDataSharedFileStorageGlobals
/// This class keeps track of which types of save data file systems have been opened from the save data file.
/// Only one of each file system type can be opened at the same time.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class SaveDataOpenTypeSetFileStorage : FileStorageBasedFileSystem
{
public enum OpenType
@ -161,7 +161,7 @@ public class SaveDataOpenTypeSetFileStorage : FileStorageBasedFileSystem
/// Once an internal file system is opened, it will be considered valid until the save data image is
/// written to via the normal file system, at which point any accesses via the internal file system will
/// return <see cref="ResultFs.SaveDataPorterInvalidated"/>
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para>
/// </remarks>
public class SaveDataSharedFileStorage : IStorage
{
@ -268,7 +268,7 @@ public class SaveDataSharedFileStorage : IStorage
/// <summary>
/// Holds references to any open shared save data image files.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class SaveDataFileStorageHolder
{
[NonCopyable]

View file

@ -13,7 +13,7 @@ namespace LibHac.FsSrv.Sf;
/// <summary>
/// The interface most programs use to interact with the FS service.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public interface IFileSystemProxy : IDisposable
{
Result SetCurrentProcess(ulong processId);

View file

@ -11,7 +11,7 @@ namespace LibHac.FsSrv;
/// </summary>
/// <remarks><para>This struct handles forwarding calls to the <see cref="StatusReportServiceImpl"/> object.
/// No permissions are needed to call any of this struct's functions.</para>
/// <para>Based on FS 14.1.0 (nnSdk 14.3.0)</para></remarks>
/// <para>Based on nnSdk 14.3.0 (FS 14.1.0)</para></remarks>
public readonly struct StatusReportService
{
private readonly StatusReportServiceImpl _serviceImpl;
@ -41,7 +41,7 @@ public readonly struct StatusReportService
/// <summary>
/// Manages getting and resetting various status reports and statistics about parts of the FS service.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class StatusReportServiceImpl
{
private Configuration _config;

View file

@ -35,7 +35,7 @@ internal struct GameCardServiceGlobals : IDisposable
/// <summary>
/// Contains functions for interacting with the game card storage device.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
internal static class GameCardService
{
private static ulong MakeAttributeId(OpenGameCardAttribute attribute) => (ulong)attribute;

View file

@ -14,7 +14,7 @@ namespace LibHac.FsSrv.Storage;
/// <summary>
/// Contains global MMC-storage-related functions.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public static class MmcServiceGlobalMethods
{
public static Result GetAndClearPatrolReadAllocateBufferCount(this FileSystemServer fsSrv, out long successCount,
@ -27,7 +27,7 @@ public static class MmcServiceGlobalMethods
/// <summary>
/// Contains functions for interacting with the MMC storage device.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
internal static class MmcService
{
private static int MakeOperationId(MmcManagerOperationIdValue operation) => (int)operation;

View file

@ -17,7 +17,7 @@ namespace LibHac.FsSrv.Storage;
/// <summary>
/// Contains functions for interacting with the SD card storage device.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
internal static class SdCardService
{
private static int MakeOperationId(SdCardManagerOperationIdValue operation) => (int)operation;

View file

@ -11,7 +11,7 @@ namespace LibHac.FsSrv;
/// </summary>
/// <remarks><para>This struct handles checking a process' permissions before forwarding
/// a request to the <see cref="TimeServiceImpl"/> object.</para>
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para></remarks>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para></remarks>
public readonly struct TimeService
{
private readonly TimeServiceImpl _serviceImpl;
@ -40,7 +40,7 @@ public readonly struct TimeService
/// <summary>
/// Manages the current time used by the FS service.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class TimeServiceImpl
{
private long _basePosixTime;

View file

@ -17,7 +17,7 @@ namespace LibHac.FsSystem;
/// <remarks><para>The base data used for this storage comes with a table of ranges and counter values that are used
/// to decrypt each range. This encryption scheme is used for encrypting content updates so that no counter values
/// are ever reused.</para>
/// <para>Based on FS 14.1.0 (nnSdk 14.3.0)</para></remarks>
/// <para>Based on nnSdk 14.3.0 (FS 14.1.0)</para></remarks>
public class AesCtrCounterExtendedStorage : IStorage
{
public delegate Result DecryptFunction(Span<byte> destination, int index, int generation,

View file

@ -14,7 +14,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// Reads and writes to an <see cref="IStorage"/> that's encrypted with AES-CTR-128.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class AesCtrStorage : IStorage
{
public static readonly int BlockSize = Aes.BlockSize;

View file

@ -13,7 +13,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// Reads and writes to an <see cref="IStorage"/> that's encrypted with AES-XTS-128.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class AesXtsStorage : IStorage
{
public static readonly int AesBlockSize = Aes.BlockSize;

View file

@ -14,7 +14,7 @@ namespace LibHac.FsSystem;
/// All encryption or decryption will be done externally via a provided function.
/// This allows for using hardware decryption where the FS process doesn't has access to the actual keys.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class AesXtsStorageExternal : IStorage
{
public const int AesBlockSize = Aes.BlockSize;

View file

@ -23,7 +23,7 @@ public interface IAlignmentMatchingStorageSize { }
/// <remarks><para>This class uses a work buffer on the stack to avoid allocations. Because of this the data alignment
/// must be kept small; no larger than 0x200. The <see cref="AlignmentMatchingStoragePooledBuffer{TBufferAlignment}"/> class
/// should be used for data alignment sizes larger than this.</para>
/// <para>Based on FS 14.1.0 (nnSdk 14.3.0)</para></remarks>
/// <para>Based on nnSdk 14.3.0 (FS 14.1.0)</para></remarks>
[SkipLocalsInit]
public class AlignmentMatchingStorage<TDataAlignment, TBufferAlignment> : IStorage
where TDataAlignment : struct, IAlignmentMatchingStorageSize
@ -166,7 +166,7 @@ public class AlignmentMatchingStorage<TDataAlignment, TBufferAlignment> : IStora
/// the beginning or end of the requested range. For data alignment sizes of 0x200 or smaller
/// <see cref="AlignmentMatchingStorage{TDataAlignment,TBufferAlignment}"/> should be used instead
/// to avoid these allocations.</para>
/// <para>Based on FS 14.1.0 (nnSdk 14.3.0)</para></remarks>
/// <para>Based on nnSdk 14.3.0 (FS 14.1.0)</para></remarks>
public class AlignmentMatchingStoragePooledBuffer<TBufferAlignment> : IStorage
where TBufferAlignment : struct, IAlignmentMatchingStorageSize
{
@ -310,7 +310,7 @@ public class AlignmentMatchingStoragePooledBuffer<TBufferAlignment> : IStorage
/// <typeparam name="TBufferAlignment">The alignment of the destination buffer for the core read. Must be a power of 2.</typeparam>
/// <remarks><para>This class is basically the same as <see cref="AlignmentMatchingStoragePooledBuffer{TBufferAlignment}"/> except
/// it doesn't allocate a work buffer for reads that are already aligned, and it ignores the buffer alignment for reads.</para>
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para></remarks>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para></remarks>
public class AlignmentMatchingStorageInBulkRead<TBufferAlignment> : IStorage
where TBufferAlignment : struct, IAlignmentMatchingStorageSize
{

View file

@ -10,7 +10,7 @@ namespace LibHac.FsSystem;
/// Contains the functions used by classes like <see cref="AlignmentMatchingStorage{TDataAlignment,TBufferAlignment}"/> for
/// accessing an aligned <see cref="IStorage"/>.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public static class AlignmentMatchingStorageImpl
{
public static uint GetRoundDownDifference(int value, uint alignment)

View file

@ -13,7 +13,7 @@ namespace LibHac.FsSystem;
/// <para>This interface exists because of <see cref="CompressedStorage"/> where it will split requests into
/// chunks that start and end on the boundaries of the compressed blocks.</para>
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public interface IAsynchronousAccessSplitter : IDisposable
{
private static readonly DefaultAsynchronousAccessSplitter DefaultAccessSplitter = new();
@ -70,7 +70,7 @@ public interface IAsynchronousAccessSplitter : IDisposable
/// The default <see cref="IAsynchronousAccessSplitter"/> that is used when an <see cref="IStorage"/>
/// or <see cref="IFile"/> doesn't need any special logic to split a request into multiple chunks.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class DefaultAsynchronousAccessSplitter : IAsynchronousAccessSplitter
{
public void Dispose() { }

View file

@ -14,7 +14,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// Allows searching and iterating the entries in a bucket tree data structure.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public partial class BucketTree : IDisposable
{
private const uint ExpectedMagic = 0x52544B42; // BKTR

View file

@ -16,7 +16,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// An <see cref="IStorage"/> that provides buffered access to a base <see cref="IStorage"/>.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class BufferedStorage : IStorage
{
private const long InvalidOffset = long.MaxValue;

View file

@ -17,7 +17,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// An <see cref="IBufferManager"/> that uses a <see cref="FileSystemBuddyHeap"/> as an allocator.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class FileSystemBufferManager : IBufferManager
{
private class CacheHandleTable : IDisposable

View file

@ -28,7 +28,7 @@ namespace LibHac.FsSystem;
/// Each internal file except the final one must have the internal file size that was specified
/// at the creation of the <see cref="ConcatenationFileSystem"/>.
/// </para>
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para>
/// </remarks>
public class ConcatenationFileSystem : IFileSystem
{

View file

@ -24,7 +24,7 @@ internal struct DirectorySaveDataFileSystemGlobals
/// <remarks>
/// Transactional commits should be atomic as long as the <see cref="IFileSystem.RenameDirectory"/> function of the
/// underlying <see cref="IFileSystem"/> is atomic.
/// <para>Based on FS 14.1.0 (nnSdk 14.3.0)</para>
/// <para>Based on nnSdk 14.3.0 (FS 14.1.0)</para>
/// </remarks>
public class DirectorySaveDataFileSystem : ISaveDataFileSystem
{

View file

@ -9,7 +9,7 @@ namespace LibHac.FsSystem;
/// An <see cref="IFile"/> wrapper that forwards all calls to the base <see cref="IFile"/>.
/// Meant for use as a base class when the derived class only needs to override some of the methods.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class ForwardingFile : IFile
{
protected UniqueRef<IFile> BaseFile;
@ -46,7 +46,7 @@ public class ForwardingFile : IFile
/// An <see cref="IDirectory"/> wrapper that forwards all calls to the base <see cref="IDirectory"/>.
/// Primarily meant for use as a base class when the derived class only needs to override some of the methods.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class ForwardingDirectory : IDirectory
{
protected UniqueRef<IDirectory> BaseDirectory;
@ -73,7 +73,7 @@ public class ForwardingDirectory : IDirectory
/// An <see cref="IFileSystem"/> wrapper that forwards all calls to the base <see cref="IFileSystem"/>.
/// Primarily meant for use as a base class when the derived class only needs to override some of the methods.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class ForwardingFileSystem : IFileSystem
{
protected SharedRef<IFileSystem> BaseFileSystem;

View file

@ -15,7 +15,7 @@ public enum HashAlgorithmType : byte
/// Generates a hash for a stream of data. The data can be given to the <see cref="IHash256Generator"/>
/// as multiple, smaller sequential blocks of data.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public abstract class IHash256Generator : IDisposable
{
public static readonly long HashSize = 256 / 8;
@ -47,7 +47,7 @@ public abstract class IHash256Generator : IDisposable
/// <summary>
/// Creates <see cref="IHash256Generator"/> objects and can generate a hash for a single, in-memory block of data.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public abstract class IHash256GeneratorFactory : IDisposable
{
public virtual void Dispose() { }
@ -71,7 +71,7 @@ public abstract class IHash256GeneratorFactory : IDisposable
/// <summary>
/// Creates <see cref="IHash256GeneratorFactory"/> objects.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public abstract class IHash256GeneratorFactorySelector : IDisposable
{
public virtual void Dispose() { }

View file

@ -10,7 +10,7 @@ namespace LibHac.FsSystem;
/// Wraps an <see cref="IFile"/>, converting its returned <see cref="Result"/>s to different
/// <see cref="Result"/>s based on the <see cref="ConvertResult"/> function.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public abstract class IResultConvertFile : IFile
{
private UniqueRef<IFile> _baseFile;
@ -66,7 +66,7 @@ public abstract class IResultConvertFile : IFile
/// Wraps an <see cref="IDirectory"/>, converting its returned <see cref="Result"/>s to different
/// <see cref="Result"/>s based on the <see cref="ConvertResult"/> function.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public abstract class IResultConvertDirectory : IDirectory
{
private UniqueRef<IDirectory> _baseDirectory;
@ -101,7 +101,7 @@ public abstract class IResultConvertDirectory : IDirectory
/// Wraps an <see cref="IFileSystem"/>, converting its returned <see cref="Result"/>s to different
/// <see cref="Result"/>s based on the <see cref="ConvertResult"/> function.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public abstract class IResultConvertFileSystem<T> : ISaveDataFileSystem where T : IFileSystem
{
private SharedRef<T> _baseFileSystem;

View file

@ -3,7 +3,7 @@
/// <summary>
/// Gets Unix timestamps used to update a save data's commit time.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public interface ISaveDataCommitTimeStampGetter
{
Result Get(out long timeStamp);

View file

@ -6,7 +6,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// Provides read/write access to a save data file system's extra data.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public interface ISaveDataExtraDataAccessor : IDisposable
{
Result WriteExtraData(in SaveDataExtraData extraData);

View file

@ -9,7 +9,7 @@ namespace LibHac.FsSystem;
/// <see cref="SaveDataExtraDataAccessorCacheManager"/>. When an extra data accessor is disposed, the accessor will
/// use this interface to notify the cache manager that it should be removed from the extra data cache.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public interface ISaveDataExtraDataAccessorObserver : IDisposable
{
void Unregister(SaveDataSpaceId spaceId, ulong saveDataId);

View file

@ -34,7 +34,7 @@ public interface IBlockCacheManagerRange
/// <typeparam name="TEntry">The type of the entries to be stores in the cache manager.</typeparam>
/// <typeparam name="TRange">The type that <typeparamref name="TEntry"/> uses
/// to represent the range cached by an entry.</typeparam>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class BlockCacheManager<TEntry, TRange> : IDisposable
where TEntry : struct, IBlockCacheManagerEntry<TRange>
where TRange : struct, IBlockCacheManagerRange

View file

@ -13,7 +13,7 @@ namespace LibHac.FsSystem;
/// </summary>
/// <remarks><para>The <see cref="IndirectStorage"/>'s <see cref="BucketTree"/> contains <see cref="Entry"/>
/// values that describe how the created storage is to be built from the base storages.</para>
/// <para>Based on FS 14.1.0 (nnSdk 14.3.0)</para></remarks>
/// <para>Based on nnSdk 14.3.0 (FS 14.1.0)</para></remarks>
public class IndirectStorage : IStorage
{
public static readonly int StorageCount = 2;

View file

@ -13,7 +13,7 @@ namespace LibHac.FsSystem;
/// An <see cref="IStorage"/> that handles initializing a <see cref="HierarchicalIntegrityVerificationStorage"/>
/// from a RomFs.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class IntegrityRomFsStorage : IStorage
{
private HierarchicalIntegrityVerificationStorage _integrityStorage;

View file

@ -24,7 +24,7 @@ namespace LibHac.FsSystem;
/// hashes is always set to 1.<br/>
/// An optional <see cref="HashSalt"/> may be provided. This salt will be added to the beginning of each block of
/// data before it is hashed.</para>
/// <para>Based on FS 14.1.0 (nnSdk 14.3.0)</para></remarks>
/// <para>Based on nnSdk 14.3.0 (FS 14.1.0)</para></remarks>
public class IntegrityVerificationStorage : IStorage
{
public struct BlockHash

View file

@ -9,7 +9,7 @@ namespace LibHac.FsSystem;
/// </summary>
/// <typeparam name="TKey">The type of the keys in the list.</typeparam>
/// <typeparam name="TValue">The type of the values in the list.</typeparam>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class LruListCache<TKey, TValue> where TKey : IEquatable<TKey>
{
public struct Node

View file

@ -9,7 +9,7 @@ namespace LibHac.FsSystem;
/// Allocates a buffer from the provided <see cref="MemoryResource"/> that is deallocated
/// when the <see cref="MemoryResourceBufferHoldStorage"/> is disposed.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class MemoryResourceBufferHoldStorage : IStorage
{
private SharedRef<IStorage> _storage;

View file

@ -11,7 +11,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// Contains the configuration used for decrypting NCAs.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public struct NcaCryptoConfiguration
{
public const int Rsa2048KeyModulusSize = Rsa.ModulusSize2048Pss;

View file

@ -10,7 +10,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// The structure used as the header for an NCA file.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public struct NcaHeader
{
public enum ContentType : byte
@ -171,7 +171,7 @@ public struct NcaAesCtrUpperIv
/// <summary>
/// The structure used as the header for an NCA file system.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public struct NcaFsHeader
{
public ushort Version;

View file

@ -16,7 +16,7 @@ public delegate bool VerifySign1Function(ReadOnlySpan<byte> signature, ReadOnlyS
/// <summary>
/// Handles reading information from an NCA file's header.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class NcaReader : IDisposable
{
private const uint SdkAddonVersionMin = 0xB0000;
@ -480,7 +480,7 @@ public class NcaReader : IDisposable
/// <summary>
/// Handles reading information from the <see cref="NcaFsHeader"/> of a file system inside an NCA file.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class NcaFsHeaderReader
{
private NcaFsHeader _header;

View file

@ -16,7 +16,7 @@ namespace LibHac.FsSystem;
/// Only reads that access a single block will use the cache. Reads that access multiple blocks will
/// be passed down to the base <see cref="IStorage"/> to be handled without caching.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class ReadOnlyBlockCacheStorage : IStorage
{
private SdkMutexType _mutex;

View file

@ -11,7 +11,7 @@ namespace LibHac.FsSystem;
/// <remarks><para>The <see cref="SparseStorage"/>'s <see cref="BucketTree"/> contains <see cref="IndirectStorage.Entry"/>
/// values describing which portions of the storage are empty. This is accomplished by using a standard
/// <see cref="IndirectStorage"/> where the second <see cref="IStorage"/> contains only zeros.</para>
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para></remarks>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para></remarks>
public class SparseStorage : IndirectStorage
{
private class ZeroStorage : IStorage

View file

@ -9,7 +9,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// Allows interacting with an <see cref="IStorage"/> via an <see cref="IFile"/> interface.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class StorageFile : IFile
{
private IStorage _baseStorage;

View file

@ -21,7 +21,7 @@ internal enum StorageLayoutType
/// <summary>
/// Contains functions for validating the storage layout type flag.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal static class StorageLayoutTypeFunctions
{
public static bool IsStorageFlagValid(StorageLayoutType storageFlag)
@ -48,7 +48,7 @@ internal struct ScopedStorageLayoutTypeSetter : IDisposable
/// Wraps an <see cref="IStorage"/>, automatically setting the thread's storage type when accessing the storage.
/// This is used to determine which storage speed emulation parameters to use for the current thread.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class StorageLayoutTypeSetStorage : IStorage
{
private SharedRef<IStorage> _baseStorage;
@ -114,7 +114,7 @@ internal class StorageLayoutTypeSetStorage : IStorage
/// Wraps an <see cref="IFile"/>, automatically setting the thread's storage type when accessing the file.
/// This is used to determine which storage speed emulation parameters to use for the current thread.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class StorageLayoutTypeSetFile : IFile
{
private IFile _baseFile;
@ -194,7 +194,7 @@ internal class StorageLayoutTypeSetFile : IFile
/// Wraps an <see cref="IDirectory"/>, automatically setting the thread's storage type when accessing the directory.
/// This is used to determine which storage speed emulation parameters to use for the current thread.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal class StorageLayoutTypeSetDirectory : IDirectory
{
private UniqueRef<IDirectory> _baseDirectory;

View file

@ -8,7 +8,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// An <see cref="IFileSystem"/> that uses a directory of another <see cref="IFileSystem"/> as its root directory.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
public class SubdirectoryFileSystem : IFileSystem
{
private IFileSystem _baseFileSystem;

View file

@ -10,7 +10,7 @@ namespace LibHac.FsSystem;
/// <see cref="IStorage"/>s. On each request the provided storage selection function will be called and the request
/// will be forwarded to the appropriate <see cref="IStorage"/> based on the return value.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class SwitchStorage : IStorage
{
private SharedRef<IStorage> _trueStorage;
@ -112,7 +112,7 @@ public class SwitchStorage : IStorage
/// the provided <see cref="Region"/> will be forwarded to one <see cref="IStorage"/>, and requests outside
/// will be forwarded to the other.
/// </summary>
/// <remarks>Based on FS 14.1.0 (nnSdk 14.3.0)</remarks>
/// <remarks>Based on nnSdk 14.3.0 (FS 14.1.0)</remarks>
public class RegionSwitchStorage : IStorage
{
public struct Region

View file

@ -25,7 +25,7 @@ namespace LibHac.FsSystem;
/// u8 Data[BlockSize];
/// };
/// </code></para>
/// <para>Based on FS 13.1.0 (nnSdk 13.4.0)</para></remarks>
/// <para>Based on nnSdk 13.4.0 (FS 13.1.0)</para></remarks>
public class UnionStorage : IStorage
{
private const long Sentinel = -1;

View file

@ -9,7 +9,7 @@ namespace LibHac.FsSystem;
/// <summary>
/// Various utility functions used by the <see cref="LibHac.FsSystem"/> namespace.
/// </summary>
/// <remarks>Based on FS 13.1.0 (nnSdk 13.4.0)</remarks>
/// <remarks>Based on nnSdk 13.4.0 (FS 13.1.0)</remarks>
internal static class Utility
{
public delegate Result FsIterationTask(in Path path, in DirectoryEntry entry, ref FsIterationTaskClosure closure);