summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/bcat/delivery_cache_directory_service.cpp
diff options
context:
space:
mode:
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.cpp23
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();
}