Services/FS: Implemented DeleteExtSaveData, CreateSystemSaveData and DeleteSystemSaveData

Also fixed a bug with CreateExtSaveData that made it unable to create ExtSaveData archives in the SDMC directory.
This commit is contained in:
Subv
2015-03-14 12:00:01 -05:00
parent ed5b275d21
commit 1d61cd4460
7 changed files with 240 additions and 26 deletions

View File

@ -34,6 +34,27 @@ std::string GetExtDataContainerPath(const std::string& mount_point, bool shared)
SYSTEM_ID.c_str(), SDCARD_ID.c_str());
}
Path ConstructExtDataBinaryPath(u32 media_type, u32 high, u32 low) {
std::vector<u8> binary_path;
binary_path.reserve(12);
// Append each word byte by byte
// The first word is the media type
for (unsigned i = 0; i < 4; ++i)
binary_path.push_back((media_type >> (8 * i)) & 0xFF);
// Next is the low word
for (unsigned i = 0; i < 4; ++i)
binary_path.push_back((low >> (8 * i)) & 0xFF);
// Next is the high word
for (unsigned i = 0; i < 4; ++i)
binary_path.push_back((high >> (8 * i)) & 0xFF);
return { binary_path };
}
ArchiveFactory_ExtSaveData::ArchiveFactory_ExtSaveData(const std::string& mount_location, bool shared)
: mount_point(GetExtDataContainerPath(mount_location, shared)) {
LOG_INFO(Service_FS, "Directory %s set as base for ExtSaveData.", mount_point.c_str());