Use this function in all places out values that set in the original code because of errors. Unmanaged values will stay uninitialized while managed values will be zeroed.
- Implement some of LibHac.Os
- Add the Mmc and SD card portions of FsSrv.Storage
- Add the Time, AccessFailureManagement and StatusReport services to `FileSystemProxyImpl`
- Use a new method for handling globals.
Each translation unit with global fields now has a struct containing that TU's globals, or at least the best guess at its globals. `FileSystemServer` now only contains a single `FileSystemServerGlobals` struct that contains all those TU global structs.
Each translation unit with global functions has extension methods for each function. The type the methods extend depends on its original namespace. e,g, `nn::fssrv` functions go on `FileSystemServer` and `nn::fssrv::detail` functions go on `FileSystemServerImpl`.
`FileSystemServer.cs` is simple enough that the code itself explains it well.
With this in place, the FS "process" initialization code has been properly separated from the FS library code. That initialization code is currently in `FileSystemServerInitializer`. This separation allows consumers of the library to implement the initialization code themselves and customize it as they wish.
ReSharper 2020.Something modified the var style again so that arrays of built-in types also count as built-in types, meaning the type should always be explicit.
- Split `FileSystemProxyImpl` into ~8 different classes.
- Add `sf` IPC interfaces to `fssrv` and use them where appropriate
- Make `IFileSystemProxy` method signatures more accurate
- Implement LR client
- Flesh out and fully implement many `fssrv` methods
- In general, make new and previously-existing code in `fssrv` more accurate to FS 10.0.0