IOS: Rewrite FS to use FileSystem

This is the large change in the branch.

This lets us use either the host filesystem or (in the future) a NAND
image exactly the same way, and make sure the IPC emulation code
behaves identically. Less duplicated code.

Note that "FileIO" and "FS" were merged, because it actually doesn't
make a lot of sense to split them: IOS handles requests for both
/dev/fs and files in the same resource manager, and as it turns out,
/dev/fs commands can *also* be sent to non /dev/fs file descriptors!
If we kept /dev/fs and files split, there would be no way to
emulate that correctly. I'm not aware of anything that does that (yet?)
but I think it's important to be correct.
This commit is contained in:
Léo Lam
2018-03-03 18:55:01 +01:00
parent 78478a651d
commit 5a7b966b6d
18 changed files with 589 additions and 1117 deletions

View File

@ -195,9 +195,8 @@
<ClCompile Include="IOS\ES\TitleInformation.cpp" />
<ClCompile Include="IOS\ES\TitleManagement.cpp" />
<ClCompile Include="IOS\ES\Views.cpp" />
<ClCompile Include="IOS\FS\FileIO.cpp" />
<ClCompile Include="IOS\FS\FS.cpp" />
<ClCompile Include="IOS\FS\FileSystem.cpp" />
<ClCompile Include="IOS\FS\FileSystemProxy.cpp" />
<ClCompile Include="IOS\FS\HostBackend\FS.cpp" />
<ClCompile Include="IOS\FS\HostBackend\File.cpp" />
<ClCompile Include="IOS\Network\ICMPLin.cpp" />
@ -448,9 +447,8 @@
<ClInclude Include="IOS\DI\DI.h" />
<ClInclude Include="IOS\ES\ES.h" />
<ClInclude Include="IOS\ES\Formats.h" />
<ClInclude Include="IOS\FS\FileIO.h" />
<ClInclude Include="IOS\FS\FileSystem.h" />
<ClInclude Include="IOS\FS\FS.h" />
<ClInclude Include="IOS\FS\FileSystemProxy.h" />
<ClInclude Include="IOS\FS\HostBackend\File.h" />
<ClInclude Include="IOS\FS\HostBackend\FS.h" />
<ClInclude Include="IOS\Network\ICMPLin.h" />