diff options
author | Narr the Reg <juangerman-13@hotmail.com> | 2024-02-09 17:31:35 +0100 |
---|---|---|
committer | Narr the Reg <juangerman-13@hotmail.com> | 2024-02-10 07:23:23 +0100 |
commit | 816d03f7d96278c5b3d2604f94901270b10d4167 (patch) | |
tree | 3ef3a65b365de1217d60b9aad6a6d063e800e07b /src/core/hle/service/bcat/delivery_cache_directory_service.cpp | |
parent | service: bcat: Implement news interfaces (diff) | |
download | yuzu-816d03f7d96278c5b3d2604f94901270b10d4167.tar yuzu-816d03f7d96278c5b3d2604f94901270b10d4167.tar.gz yuzu-816d03f7d96278c5b3d2604f94901270b10d4167.tar.bz2 yuzu-816d03f7d96278c5b3d2604f94901270b10d4167.tar.lz yuzu-816d03f7d96278c5b3d2604f94901270b10d4167.tar.xz yuzu-816d03f7d96278c5b3d2604f94901270b10d4167.tar.zst yuzu-816d03f7d96278c5b3d2604f94901270b10d4167.zip |
Diffstat (limited to 'src/core/hle/service/bcat/delivery_cache_directory_service.cpp')
-rw-r--r-- | src/core/hle/service/bcat/delivery_cache_directory_service.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/core/hle/service/bcat/delivery_cache_directory_service.cpp b/src/core/hle/service/bcat/delivery_cache_directory_service.cpp index 8bda1168a..01f08a2fc 100644 --- a/src/core/hle/service/bcat/delivery_cache_directory_service.cpp +++ b/src/core/hle/service/bcat/delivery_cache_directory_service.cpp @@ -12,7 +12,7 @@ namespace Service::BCAT { // The digest is only used to determine if a file is unique compared to others of the same name. // Since the algorithm isn't ever checked in game, MD5 is safe. -BcatDigest DigestFile(const FileSys::VirtualFile& file) { +static BcatDigest DigestFile(const FileSys::VirtualFile& file) { BcatDigest out{}; const auto bytes = file->ReadAllBytes(); mbedtls_md5_ret(bytes.data(), bytes.size(), out.data()); @@ -24,9 +24,9 @@ IDeliveryCacheDirectoryService::IDeliveryCacheDirectoryService(Core::System& sys : ServiceFramework{system_, "IDeliveryCacheDirectoryService"}, root(std::move(root_)) { // clang-format off static const FunctionInfo functions[] = { - {0, C<&IDeliveryCacheDirectoryService::Open>, "Open"}, - {1, C<&IDeliveryCacheDirectoryService::Read>, "Read"}, - {2, C<&IDeliveryCacheDirectoryService::GetCount>, "GetCount"}, + {0, D<&IDeliveryCacheDirectoryService::Open>, "Open"}, + {1, D<&IDeliveryCacheDirectoryService::Read>, "Read"}, + {2, D<&IDeliveryCacheDirectoryService::GetCount>, "GetCount"}, }; // clang-format on @@ -35,13 +35,13 @@ IDeliveryCacheDirectoryService::IDeliveryCacheDirectoryService(Core::System& sys IDeliveryCacheDirectoryService::~IDeliveryCacheDirectoryService() = default; -Result IDeliveryCacheDirectoryService::Open(DirectoryName dir_name_raw) { +Result IDeliveryCacheDirectoryService::Open(const DirectoryName& dir_name_raw) { const auto dir_name = Common::StringFromFixedZeroTerminatedBuffer(dir_name_raw.data(), dir_name_raw.size()); LOG_DEBUG(Service_BCAT, "called, dir_name={}", dir_name); - // R_TRY(VerifyNameValidDir(dir_name_raw)); + R_TRY(VerifyNameValidDir(dir_name_raw)); R_UNLESS(current_dir == nullptr, ResultEntityAlreadyOpen); const auto dir = root->GetSubdirectory(dir_name); @@ -51,15 +51,14 @@ Result IDeliveryCacheDirectoryService::Open(DirectoryName dir_name_raw) { } Result IDeliveryCacheDirectoryService::Read( - Out<u32> out_buffer_size, - OutArray<DeliveryCacheDirectoryEntry, BufferAttr_HipcMapAlias> out_buffer) { + Out<s32> out_count, OutArray<DeliveryCacheDirectoryEntry, BufferAttr_HipcMapAlias> out_buffer) { LOG_DEBUG(Service_BCAT, "called, write_size={:016X}", out_buffer.size()); R_UNLESS(current_dir != nullptr, ResultNoOpenEntry); const auto files = current_dir->GetFiles(); - *out_buffer_size = static_cast<u32>(std::min(files.size(), out_buffer.size())); - std::transform(files.begin(), files.begin() + *out_buffer_size, out_buffer.begin(), + *out_count = static_cast<s32>(std::min(files.size(), out_buffer.size())); + std::transform(files.begin(), files.begin() + *out_count, out_buffer.begin(), [](const auto& file) { FileName name{}; std::memcpy(name.data(), file->GetName().data(), @@ -69,12 +68,12 @@ Result IDeliveryCacheDirectoryService::Read( R_SUCCEED(); } -Result IDeliveryCacheDirectoryService::GetCount(Out<u32> out_count) { +Result IDeliveryCacheDirectoryService::GetCount(Out<s32> out_count) { LOG_DEBUG(Service_BCAT, "called"); R_UNLESS(current_dir != nullptr, ResultNoOpenEntry); - *out_count = static_cast<u32>(current_dir->GetFiles().size()); + *out_count = static_cast<s32>(current_dir->GetFiles().size()); R_SUCCEED(); } |