- 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
Update package1 reader and key set handlers
- Support all Erista and Mariko package1 formats
- Rewrite KeySet class to use less memory. Key members are now byte spans instead of arrays, and the entire key set is memcpy-able
- Allow putting prod and dev keys in the same file
- Allow embedding keys in LibHac at build time
- Rewrite the key parser to be faster and use less memory
- Update KEYS.md