3
0
Fork 0
forked from suyu/suyu

file_sys: Fix nacp field cache_storage_max_index datatype

This commit is contained in:
Leystryku 2024-02-18 06:00:42 +01:00
parent d93fdc8a6c
commit 4f387b0b74
2 changed files with 7 additions and 10 deletions

View file

@ -64,8 +64,8 @@ struct RawNACP {
u64_le cache_storage_size; u64_le cache_storage_size;
u64_le cache_storage_journal_size; u64_le cache_storage_journal_size;
u64_le cache_storage_data_and_journal_max_size; u64_le cache_storage_data_and_journal_max_size;
u64_le cache_storage_max_index; u16_le cache_storage_max_index;
INSERT_PADDING_BYTES(0xE70); INSERT_PADDING_BYTES(0xE76);
}; };
static_assert(sizeof(RawNACP) == 0x4000, "RawNACP has incorrect size."); static_assert(sizeof(RawNACP) == 0x4000, "RawNACP has incorrect size.");

View file

@ -272,17 +272,14 @@ Result IApplicationFunctions::GetCacheStorageMax(Out<u32> out_cache_storage_inde
Out<u64> out_max_journal_size) { Out<u64> out_max_journal_size) {
LOG_DEBUG(Service_AM, "called"); LOG_DEBUG(Service_AM, "called");
const auto title_id = m_applet->program_id;
std::vector<u8> nacp; std::vector<u8> nacp;
const auto result = system.GetARPManager().GetControlProperty(&nacp, title_id); R_TRY(system.GetARPManager().GetControlProperty(&nacp, m_applet->program_id));
if (R_SUCCEEDED(result)) { FileSys::RawNACP raw_nacp{};
const auto rawnacp = reinterpret_cast<FileSys::RawNACP*>(nacp.data()); std::memcpy(&raw_nacp, nacp.data(), std::min(sizeof(raw_nacp), nacp.size()));
*out_cache_storage_index_max = static_cast<u32>(rawnacp->cache_storage_max_index); *out_cache_storage_index_max = static_cast<u32>(raw_nacp.cache_storage_max_index);
*out_max_journal_size = static_cast<u64>(rawnacp->cache_storage_data_and_journal_max_size); *out_max_journal_size = static_cast<u64>(raw_nacp.cache_storage_data_and_journal_max_size);
}
R_SUCCEED(); R_SUCCEED();
} }