citra-emu/citra — pull request #283 by yuriks (2014-12-15 09:26:16+00:00)
Title: Archive refactor

Depends on #279.

This is a general clean-up of the FS service emulation, including:
- Move Kernel::Archive to Service::FS::Archive. (Archive doesn't belong in the kernel.)
- Rename FileSys::{Archive, Directory, File} to ArchiveBackend, ArchiveDirectory and ArchiveFile, to prevent confusion with their Session frontends.
- Simplify and improve lifetime management of Archive instances.
- Implement 64-bit Archive handles. (Pretty crappy impl ATM, just sequential number. Maybe use randomized handles in the future.)
- Remove the "Archive as a File" hack, which removes all the weird pesudo-duplicated interfaces from File that were present in Archive, the work-around where Archive handles were returned instead of files and the erroneous fact that Archive is a session. This is the main motivation for this PR.