diff --git a/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_meta_database.hpp b/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_meta_database.hpp index 99616adc1..1b28fce9a 100644 --- a/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_meta_database.hpp +++ b/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_meta_database.hpp @@ -24,8 +24,8 @@ namespace ams::ncm { NON_COPYABLE(ContentMetaDatabase); public: struct ListCount { - u32 written; - u32 total; + s32 written; + s32 total; }; private: std::shared_ptr interface; @@ -103,7 +103,7 @@ namespace ams::ncm { return lc; } - ListCount ListContentMeta(ContentMetaKey *dst, size_t dst_size, ContentMetaType type, ProgramId app_id = InvalidProgramId, ProgramId min = {std::numeric_limits::min()}, ProgramId max = {std::numeric_limits::max()}, ContentInstallType install_type = ContentInstallType::Full) { + ListCount ListContentMeta(ContentMetaKey *dst, size_t dst_size, ContentMetaType type, ProgramId app_id = InvalidProgramId, u64 min = std::numeric_limits::min(), u64 max = std::numeric_limits::max(), ContentInstallType install_type = ContentInstallType::Full) { ListCount lc = {}; R_ABORT_UNLESS(this->interface->List(std::addressof(lc.total), std::addressof(lc.written), sf::OutArray(dst, dst_size), type, app_id, min, max, install_type)); return lc; @@ -114,12 +114,12 @@ namespace ams::ncm { return this->interface->GetLatestContentMetaKey(out_key, id); } - Result ListContentInfo(u32 *out_count, ContentInfo *dst, size_t dst_size, const ContentMetaKey &key, u32 offset) { + Result ListContentInfo(s32 *out_count, ContentInfo *dst, size_t dst_size, const ContentMetaKey &key, s32 offset) { AMS_ASSERT(this->interface != nullptr); return this->interface->ListContentInfo(out_count, sf::OutArray(dst, dst_size), key, offset); } - Result ListContentMetaInfo(u32 *out_count, ContentMetaInfo *dst, size_t dst_size, const ContentMetaKey &key, u32 offset) { + Result ListContentMetaInfo(s32 *out_count, ContentMetaInfo *dst, size_t dst_size, const ContentMetaKey &key, s32 offset) { AMS_ASSERT(this->interface != nullptr); return this->interface->ListContentMetaInfo(out_count, sf::OutArray(dst, dst_size), key, offset); } diff --git a/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_storage.hpp b/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_storage.hpp index 15821f6f2..d9f3bc2ff 100644 --- a/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_storage.hpp +++ b/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_storage.hpp @@ -49,7 +49,7 @@ namespace ams::ncm { return id; } - Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, u64 size) { + Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, s64 size) { AMS_ASSERT(this->interface != nullptr); return this->interface->CreatePlaceHolder(placeholder_id, content_id, size); } @@ -64,7 +64,7 @@ namespace ams::ncm { return this->interface->HasPlaceHolder(out, placeholder_id); } - Result WritePlaceHolder(PlaceHolderId placeholder_id, u64 offset, const void *buf, size_t size) { + Result WritePlaceHolder(PlaceHolderId placeholder_id, s64 offset, const void *buf, size_t size) { AMS_ASSERT(this->interface != nullptr); return this->interface->WritePlaceHolder(placeholder_id, offset, sf::InBuffer(buf, size)); } @@ -99,27 +99,27 @@ namespace ams::ncm { return this->interface->CleanupAllPlaceHolder(); } - Result ListPlaceHolder(u32 *out_count, PlaceHolderId *out_list, size_t out_list_size) { + Result ListPlaceHolder(s32 *out_count, PlaceHolderId *out_list, size_t out_list_size) { AMS_ASSERT(this->interface != nullptr); return this->interface->ListPlaceHolder(out_count, sf::OutArray(out_list, out_list_size)); } - Result GetContentCount(u32 *out_count) { + Result GetContentCount(s32 *out_count) { AMS_ASSERT(this->interface != nullptr); return this->interface->GetContentCount(out_count); } - Result ListContentId(u32 *out_count, ContentId *out_list, size_t out_list_size, u32 offset) { + Result ListContentId(s32 *out_count, ContentId *out_list, size_t out_list_size, s32 offset) { AMS_ASSERT(this->interface != nullptr); return this->interface->ListContentId(out_count, sf::OutArray(out_list, out_list_size), offset); } - Result GetSize(u64 *out_size, ContentId content_id) { + Result GetSize(s64 *out_size, ContentId content_id) { AMS_ASSERT(this->interface != nullptr); return this->interface->GetSizeFromContentId(out_size, content_id); } - Result GetSize(u64 *out_size, PlaceHolderId placeholder_id) { + Result GetSize(s64 *out_size, PlaceHolderId placeholder_id) { AMS_ASSERT(this->interface != nullptr); return this->interface->GetSizeFromPlaceHolderId(out_size, placeholder_id); } @@ -134,12 +134,12 @@ namespace ams::ncm { return this->interface->RevertToPlaceHolder(placeholder_id, old_content_id, new_content_id); } - Result SetPlaceHolderSize(PlaceHolderId placeholder_id, u64 size) { + Result SetPlaceHolderSize(PlaceHolderId placeholder_id, s64 size) { AMS_ASSERT(this->interface != nullptr); return this->interface->SetPlaceHolderSize(placeholder_id, size); } - Result ReadContentIdFile(void *dst, size_t size, ContentId content_id, u64 offset) { + Result ReadContentIdFile(void *dst, size_t size, ContentId content_id, s64 offset) { AMS_ASSERT(this->interface != nullptr); return this->interface->ReadContentIdFile(sf::OutBuffer(dst, size), content_id, offset); } @@ -168,17 +168,17 @@ namespace ams::ncm { return this->interface->GetRightsIdFromContentId(out_rights_id, content_id); } - Result WriteContentForDebug(ContentId content_id, u64 offset, const void *buf, size_t size) { + Result WriteContentForDebug(ContentId content_id, s64 offset, const void *buf, size_t size) { AMS_ASSERT(this->interface != nullptr); return this->interface->WriteContentForDebug(content_id, offset, sf::InBuffer(buf, size)); } - Result GetFreeSpaceSize(u64 *out_size) { + Result GetFreeSpaceSize(s64 *out_size) { AMS_ASSERT(this->interface != nullptr); return this->interface->GetFreeSpaceSize(out_size); } - Result GetTotalSpaceSize(u64 *out_size) { + Result GetTotalSpaceSize(s64 *out_size) { AMS_ASSERT(this->interface != nullptr); return this->interface->GetTotalSpaceSize(out_size); } diff --git a/libraries/libstratosphere/include/stratosphere/ncm/ncm_i_content_meta_database.hpp b/libraries/libstratosphere/include/stratosphere/ncm/ncm_i_content_meta_database.hpp index 3df31dc3b..c19082c91 100644 --- a/libraries/libstratosphere/include/stratosphere/ncm/ncm_i_content_meta_database.hpp +++ b/libraries/libstratosphere/include/stratosphere/ncm/ncm_i_content_meta_database.hpp @@ -52,10 +52,10 @@ namespace ams::ncm { virtual Result Get(sf::Out out_size, const ContentMetaKey &key, sf::OutBuffer out_value) = 0; virtual Result Remove(const ContentMetaKey &key) = 0; virtual Result GetContentIdByType(sf::Out out_content_id, const ContentMetaKey &key, ContentType type) = 0; - virtual Result ListContentInfo(sf::Out out_entries_written, const sf::OutArray &out_info, const ContentMetaKey &key, u32 start_index) = 0; - virtual Result List(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_info, ContentMetaType meta_type, ProgramId application_program_id, ProgramId program_id_min, ProgramId program_id_max, ContentInstallType install_type) = 0; + virtual Result ListContentInfo(sf::Out out_entries_written, const sf::OutArray &out_info, const ContentMetaKey &key, s32 offset) = 0; + virtual Result List(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_info, ContentMetaType meta_type, ProgramId application_id, u64 min, u64 max, ContentInstallType install_type) = 0; virtual Result GetLatestContentMetaKey(sf::Out out_key, ProgramId id) = 0; - virtual Result ListApplication(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_keys, ContentMetaType meta_type) = 0; + virtual Result ListApplication(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_keys, ContentMetaType meta_type) = 0; virtual Result Has(sf::Out out, const ContentMetaKey &key) = 0; virtual Result HasAll(sf::Out out, const sf::InArray &keys) = 0; virtual Result GetSize(sf::Out out_size, const ContentMetaKey &key) = 0; @@ -65,7 +65,7 @@ namespace ams::ncm { virtual Result LookupOrphanContent(const sf::OutArray &out_orphaned, const sf::InArray &content_ids) = 0; virtual Result Commit() = 0; virtual Result HasContent(sf::Out out, const ContentMetaKey &key, const ContentId &content_id) = 0; - virtual Result ListContentMetaInfo(sf::Out out_entries_written, const sf::OutArray &out_meta_info, const ContentMetaKey &key, u32 start_index) = 0; + virtual Result ListContentMetaInfo(sf::Out out_entries_written, const sf::OutArray &out_meta_info, const ContentMetaKey &key, s32 offset) = 0; virtual Result GetAttributes(sf::Out out_attributes, const ContentMetaKey &key) = 0; virtual Result GetRequiredApplicationVersion(sf::Out out_version, const ContentMetaKey &key) = 0; virtual Result GetContentIdByTypeAndIdOffset(sf::Out out_content_id, const ContentMetaKey &key, ContentType type, u8 id_offset) = 0; diff --git a/libraries/libstratosphere/include/stratosphere/ncm/ncm_i_content_storage.hpp b/libraries/libstratosphere/include/stratosphere/ncm/ncm_i_content_storage.hpp index 19896cb05..d1321ca16 100644 --- a/libraries/libstratosphere/include/stratosphere/ncm/ncm_i_content_storage.hpp +++ b/libraries/libstratosphere/include/stratosphere/ncm/ncm_i_content_storage.hpp @@ -62,33 +62,33 @@ namespace ams::ncm { IContentStorage() { /* ... */ } public: virtual Result GeneratePlaceHolderId(sf::Out out) = 0; - virtual Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, u64 size) = 0; + virtual Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, s64 size) = 0; virtual Result DeletePlaceHolder(PlaceHolderId placeholder_id) = 0; virtual Result HasPlaceHolder(sf::Out out, PlaceHolderId placeholder_id) = 0; - virtual Result WritePlaceHolder(PlaceHolderId placeholder_id, u64 offset, sf::InBuffer data) = 0; + virtual Result WritePlaceHolder(PlaceHolderId placeholder_id, s64 offset, sf::InBuffer data) = 0; virtual Result Register(PlaceHolderId placeholder_id, ContentId content_id) = 0; virtual Result Delete(ContentId content_id) = 0; virtual Result Has(sf::Out out, ContentId content_id) = 0; virtual Result GetPath(sf::Out out, ContentId content_id) = 0; virtual Result GetPlaceHolderPath(sf::Out out, PlaceHolderId placeholder_id) = 0; virtual Result CleanupAllPlaceHolder() = 0; - virtual Result ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) = 0; - virtual Result GetContentCount(sf::Out out_count) = 0; - virtual Result ListContentId(sf::Out out_count, const sf::OutArray &out_buf, u32 start_offset) = 0; - virtual Result GetSizeFromContentId(sf::Out out_size, ContentId content_id) = 0; + virtual Result ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) = 0; + virtual Result GetContentCount(sf::Out out_count) = 0; + virtual Result ListContentId(sf::Out out_count, const sf::OutArray &out_buf, s32 start_offset) = 0; + virtual Result GetSizeFromContentId(sf::Out out_size, ContentId content_id) = 0; virtual Result DisableForcibly() = 0; virtual Result RevertToPlaceHolder(PlaceHolderId placeholder_id, ContentId old_content_id, ContentId new_content_id) = 0; - virtual Result SetPlaceHolderSize(PlaceHolderId placeholder_id, u64 size) = 0; - virtual Result ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, u64 offset) = 0; + virtual Result SetPlaceHolderSize(PlaceHolderId placeholder_id, s64 size) = 0; + virtual Result ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, s64 offset) = 0; virtual Result GetRightsIdFromPlaceHolderIdDeprecated(sf::Out out_rights_id, PlaceHolderId placeholder_id) = 0; virtual Result GetRightsIdFromPlaceHolderId(sf::Out out_rights_id, PlaceHolderId placeholder_id) = 0; virtual Result GetRightsIdFromContentIdDeprecated(sf::Out out_rights_id, ContentId content_id) = 0; virtual Result GetRightsIdFromContentId(sf::Out out_rights_id, ContentId content_id) = 0; - virtual Result WriteContentForDebug(ContentId content_id, u64 offset, sf::InBuffer data) = 0; - virtual Result GetFreeSpaceSize(sf::Out out_size) = 0; - virtual Result GetTotalSpaceSize(sf::Out out_size) = 0; + virtual Result WriteContentForDebug(ContentId content_id, s64 offset, sf::InBuffer data) = 0; + virtual Result GetFreeSpaceSize(sf::Out out_size) = 0; + virtual Result GetTotalSpaceSize(sf::Out out_size) = 0; virtual Result FlushPlaceHolder() = 0; - virtual Result GetSizeFromPlaceHolderId(sf::Out out, PlaceHolderId placeholder_id) = 0; + virtual Result GetSizeFromPlaceHolderId(sf::Out out, PlaceHolderId placeholder_id) = 0; virtual Result RepairInvalidFileAttribute() = 0; virtual Result GetRightsIdFromPlaceHolderIdWithCache(sf::Out out_rights_id, PlaceHolderId placeholder_id, ContentId cache_content_id) = 0; public: diff --git a/libraries/libstratosphere/source/ncm/ncm_remote_content_meta_database_impl.hpp b/libraries/libstratosphere/source/ncm/ncm_remote_content_meta_database_impl.hpp index 92b4d3944..83123a077 100644 --- a/libraries/libstratosphere/source/ncm/ncm_remote_content_meta_database_impl.hpp +++ b/libraries/libstratosphere/source/ncm/ncm_remote_content_meta_database_impl.hpp @@ -88,20 +88,20 @@ namespace ams::ncm { return ncmContentMetaDatabaseGetContentIdByType(std::addressof(this->srv), Convert(out_content_id.GetPointer()), Convert(key), static_cast<::NcmContentType>(type)); } - virtual Result ListContentInfo(sf::Out out_entries_written, const sf::OutArray &out_info, const ContentMetaKey &key, u32 start_index) override { - return ncmContentMetaDatabaseListContentInfo(std::addressof(this->srv), reinterpret_cast(out_entries_written.GetPointer()), Convert(out_info.GetPointer()), out_info.GetSize(), Convert(key), start_index); + virtual Result ListContentInfo(sf::Out out_entries_written, const sf::OutArray &out_info, const ContentMetaKey &key, s32 offset) override { + return ncmContentMetaDatabaseListContentInfo(std::addressof(this->srv), out_entries_written.GetPointer(), Convert(out_info.GetPointer()), out_info.GetSize(), Convert(key), offset); } - virtual Result List(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out, ContentMetaType meta_type, ProgramId application_program_id, ProgramId program_id_min, ProgramId program_id_max, ContentInstallType install_type) override { - return ncmContentMetaDatabaseList(std::addressof(this->srv), reinterpret_cast(out_entries_total.GetPointer()), reinterpret_cast(out_entries_written.GetPointer()), Convert(out.GetPointer()), out.GetSize(), static_cast<::NcmContentMetaType>(meta_type), static_cast(application_program_id), static_cast(program_id_min), static_cast(program_id_max), static_cast<::NcmContentInstallType>(install_type)); + virtual Result List(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_info, ContentMetaType meta_type, ProgramId application_id, u64 min, u64 max, ContentInstallType install_type) override { + return ncmContentMetaDatabaseList(std::addressof(this->srv), out_entries_total.GetPointer(), out_entries_written.GetPointer(), Convert(out_info.GetPointer()), out_info.GetSize(), static_cast<::NcmContentMetaType>(meta_type), static_cast(application_id), min, max, static_cast<::NcmContentInstallType>(install_type)); } virtual Result GetLatestContentMetaKey(sf::Out out_key, ProgramId id) override { return ncmContentMetaDatabaseGetLatestContentMetaKey(std::addressof(this->srv), Convert(out_key.GetPointer()), static_cast(id)); } - virtual Result ListApplication(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_keys, ContentMetaType meta_type) override { - return ncmContentMetaDatabaseListApplication(std::addressof(this->srv), reinterpret_cast(out_entries_total.GetPointer()), reinterpret_cast(out_entries_written.GetPointer()), Convert(out_keys.GetPointer()), out_keys.GetSize(), static_cast<::NcmContentMetaType>(meta_type)); + virtual Result ListApplication(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_keys, ContentMetaType meta_type) override { + return ncmContentMetaDatabaseListApplication(std::addressof(this->srv), out_entries_total.GetPointer(), out_entries_written.GetPointer(), Convert(out_keys.GetPointer()), out_keys.GetSize(), static_cast<::NcmContentMetaType>(meta_type)); } virtual Result Has(sf::Out out, const ContentMetaKey &key) override { @@ -140,8 +140,8 @@ namespace ams::ncm { return ncmContentMetaDatabaseHasContent(std::addressof(this->srv), out.GetPointer(), Convert(key), Convert(content_id)); } - virtual Result ListContentMetaInfo(sf::Out out_entries_written, const sf::OutArray &out_meta_info, const ContentMetaKey &key, u32 start_index) override { - return ncmContentMetaDatabaseListContentMetaInfo(std::addressof(this->srv), reinterpret_cast(out_entries_written.GetPointer()), out_meta_info.GetPointer(), out_meta_info.GetSize(), Convert(key), start_index); + virtual Result ListContentMetaInfo(sf::Out out_entries_written, const sf::OutArray &out_meta_info, const ContentMetaKey &key, s32 offset) override { + return ncmContentMetaDatabaseListContentMetaInfo(std::addressof(this->srv), out_entries_written.GetPointer(), out_meta_info.GetPointer(), out_meta_info.GetSize(), Convert(key), offset); } virtual Result GetAttributes(sf::Out out_attributes, const ContentMetaKey &key) override { diff --git a/libraries/libstratosphere/source/ncm/ncm_remote_content_storage_impl.hpp b/libraries/libstratosphere/source/ncm/ncm_remote_content_storage_impl.hpp index f11e1b4d9..8e034ee5f 100644 --- a/libraries/libstratosphere/source/ncm/ncm_remote_content_storage_impl.hpp +++ b/libraries/libstratosphere/source/ncm/ncm_remote_content_storage_impl.hpp @@ -51,9 +51,9 @@ namespace ams::ncm { return ncmContentStorageGeneratePlaceHolderId(std::addressof(this->srv), Convert(out.GetPointer())); } - virtual Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, u64 size) override { + virtual Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, s64 size) override { static_assert(alignof(ContentId) < alignof(PlaceHolderId)); - return ncmContentStorageCreatePlaceHolder(std::addressof(this->srv), Convert(content_id), Convert(placeholder_id), static_cast(size)); + return ncmContentStorageCreatePlaceHolder(std::addressof(this->srv), Convert(content_id), Convert(placeholder_id), size); } virtual Result DeletePlaceHolder(PlaceHolderId placeholder_id) override { @@ -64,7 +64,7 @@ namespace ams::ncm { return ncmContentStorageHasPlaceHolder(std::addressof(this->srv), out.GetPointer(), Convert(placeholder_id)); } - virtual Result WritePlaceHolder(PlaceHolderId placeholder_id, u64 offset, sf::InBuffer data) override { + virtual Result WritePlaceHolder(PlaceHolderId placeholder_id, s64 offset, sf::InBuffer data) override { return ncmContentStorageWritePlaceHolder(std::addressof(this->srv), Convert(placeholder_id), offset, data.GetPointer(), data.GetSize()); } @@ -93,20 +93,20 @@ namespace ams::ncm { return ncmContentStorageCleanupAllPlaceHolder(std::addressof(this->srv)); } - virtual Result ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) override { - return ncmContentStorageListPlaceHolder(std::addressof(this->srv), Convert(out_buf.GetPointer()), out_buf.GetSize(), reinterpret_cast(out_count.GetPointer())); + virtual Result ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) override { + return ncmContentStorageListPlaceHolder(std::addressof(this->srv), Convert(out_buf.GetPointer()), out_buf.GetSize(), out_count.GetPointer()); } - virtual Result GetContentCount(sf::Out out_count) override { - return ncmContentStorageGetContentCount(std::addressof(this->srv), reinterpret_cast(out_count.GetPointer())); + virtual Result GetContentCount(sf::Out out_count) override { + return ncmContentStorageGetContentCount(std::addressof(this->srv), out_count.GetPointer()); } - virtual Result ListContentId(sf::Out out_count, const sf::OutArray &out_buf, u32 offset) override { - return ncmContentStorageListContentId(std::addressof(this->srv), Convert(out_buf.GetPointer()), out_buf.GetSize(), reinterpret_cast(out_count.GetPointer()), static_cast(offset)); + virtual Result ListContentId(sf::Out out_count, const sf::OutArray &out_buf, s32 offset) override { + return ncmContentStorageListContentId(std::addressof(this->srv), Convert(out_buf.GetPointer()), out_buf.GetSize(), out_count.GetPointer(), offset); } - virtual Result GetSizeFromContentId(sf::Out out_size, ContentId content_id) override { - return ncmContentStorageGetSizeFromContentId(std::addressof(this->srv), reinterpret_cast(out_size.GetPointer()), Convert(content_id)); + virtual Result GetSizeFromContentId(sf::Out out_size, ContentId content_id) override { + return ncmContentStorageGetSizeFromContentId(std::addressof(this->srv), out_size.GetPointer(), Convert(content_id)); } virtual Result DisableForcibly() override { @@ -117,12 +117,12 @@ namespace ams::ncm { return ncmContentStorageRevertToPlaceHolder(std::addressof(this->srv), Convert(placeholder_id), Convert(old_content_id), Convert(new_content_id)); } - virtual Result SetPlaceHolderSize(PlaceHolderId placeholder_id, u64 size) override { - return ncmContentStorageSetPlaceHolderSize(std::addressof(this->srv), Convert(placeholder_id), static_cast(size)); + virtual Result SetPlaceHolderSize(PlaceHolderId placeholder_id, s64 size) override { + return ncmContentStorageSetPlaceHolderSize(std::addressof(this->srv), Convert(placeholder_id), size); } - virtual Result ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, u64 offset) override { - return ncmContentStorageReadContentIdFile(std::addressof(this->srv), buf.GetPointer(), buf.GetSize(), Convert(content_id), static_cast(offset)); + virtual Result ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, s64 offset) override { + return ncmContentStorageReadContentIdFile(std::addressof(this->srv), buf.GetPointer(), buf.GetSize(), Convert(content_id), offset); } virtual Result GetRightsIdFromPlaceHolderIdDeprecated(sf::Out out_rights_id, PlaceHolderId placeholder_id) override { @@ -161,24 +161,24 @@ namespace ams::ncm { return ResultSuccess(); } - virtual Result WriteContentForDebug(ContentId content_id, u64 offset, sf::InBuffer data) override { - return ncmContentStorageWriteContentForDebug(std::addressof(this->srv), Convert(content_id), static_cast(offset), data.GetPointer(), data.GetSize()); + virtual Result WriteContentForDebug(ContentId content_id, s64 offset, sf::InBuffer data) override { + return ncmContentStorageWriteContentForDebug(std::addressof(this->srv), Convert(content_id), offset, data.GetPointer(), data.GetSize()); } - virtual Result GetFreeSpaceSize(sf::Out out_size) override { - return ncmContentStorageGetFreeSpaceSize(std::addressof(this->srv), reinterpret_cast(out_size.GetPointer())); + virtual Result GetFreeSpaceSize(sf::Out out_size) override { + return ncmContentStorageGetFreeSpaceSize(std::addressof(this->srv), out_size.GetPointer()); } - virtual Result GetTotalSpaceSize(sf::Out out_size) override { - return ncmContentStorageGetTotalSpaceSize(std::addressof(this->srv), reinterpret_cast(out_size.GetPointer())); + virtual Result GetTotalSpaceSize(sf::Out out_size) override { + return ncmContentStorageGetTotalSpaceSize(std::addressof(this->srv), out_size.GetPointer()); } virtual Result FlushPlaceHolder() override { return ncmContentStorageFlushPlaceHolder(std::addressof(this->srv)); } - virtual Result GetSizeFromPlaceHolderId(sf::Out out_size, PlaceHolderId placeholder_id) override { - return ncmContentStorageGetSizeFromPlaceHolderId(std::addressof(this->srv), reinterpret_cast(out_size.GetPointer()), Convert(placeholder_id)); + virtual Result GetSizeFromPlaceHolderId(sf::Out out_size, PlaceHolderId placeholder_id) override { + return ncmContentStorageGetSizeFromPlaceHolderId(std::addressof(this->srv), out_size.GetPointer(), Convert(placeholder_id)); } virtual Result RepairInvalidFileAttribute() override { diff --git a/stratosphere/ncm/source/ncm_content_meta_database_impl.cpp b/stratosphere/ncm/source/ncm_content_meta_database_impl.cpp index e216474a7..ac36533a3 100644 --- a/stratosphere/ncm/source/ncm_content_meta_database_impl.cpp +++ b/stratosphere/ncm/source/ncm_content_meta_database_impl.cpp @@ -92,8 +92,8 @@ namespace ams::ncm { return this->GetContentIdByTypeImpl(out_content_id.GetPointer(), key, type, std::nullopt); } - Result ContentMetaDatabaseImpl::ListContentInfo(sf::Out out_count, const sf::OutArray &out_info, const ContentMetaKey &key, u32 offset) { - R_UNLESS(offset <= std::numeric_limits::max(), ncm::ResultInvalidOffset()); + Result ContentMetaDatabaseImpl::ListContentInfo(sf::Out out_count, const sf::OutArray &out_info, const ContentMetaKey &key, s32 offset) { + R_UNLESS(offset >= 0, ncm::ResultInvalidOffset()); R_TRY(this->EnsureEnabled()); /* Obtain the content meta for the given key. */ @@ -114,7 +114,7 @@ namespace ams::ncm { return ResultSuccess(); } - Result ContentMetaDatabaseImpl::List(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_info, ContentMetaType type, ProgramId application_id, ProgramId program_id_min, ProgramId program_id_max, ContentInstallType install_type) { + Result ContentMetaDatabaseImpl::List(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_info, ContentMetaType meta_type, ProgramId application_id, u64 min, u64 max, ContentInstallType install_type) { R_TRY(this->EnsureEnabled()); size_t entries_total = 0; @@ -125,7 +125,7 @@ namespace ams::ncm { ContentMetaKey key = entry->GetKey(); /* Check if this entry matches the given filters. */ - if (!((type == ContentMetaType::Unknown || key.type == type) && (program_id_min <= key.id && key.id <= program_id_max) && (install_type == ContentInstallType::Unknown || key.install_type == install_type))) { + if (!((meta_type == ContentMetaType::Unknown || key.type == meta_type) && (min <= static_cast(key.id) && static_cast(key.id) <= max) && (install_type == ContentInstallType::Unknown || key.install_type == install_type))) { continue; } @@ -162,7 +162,7 @@ namespace ams::ncm { return this->GetLatestContentMetaKeyImpl(out_key.GetPointer(), program_id); } - Result ContentMetaDatabaseImpl::ListApplication(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_keys, ContentMetaType type) { + Result ContentMetaDatabaseImpl::ListApplication(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_keys, ContentMetaType type) { R_TRY(this->EnsureEnabled()); size_t entries_total = 0; @@ -346,8 +346,8 @@ namespace ams::ncm { return ResultSuccess(); } - Result ContentMetaDatabaseImpl::ListContentMetaInfo(sf::Out out_entries_written, const sf::OutArray &out_meta_info, const ContentMetaKey &key, u32 offset) { - R_UNLESS(offset <= std::numeric_limits::max(), ncm::ResultInvalidOffset()); + Result ContentMetaDatabaseImpl::ListContentMetaInfo(sf::Out out_entries_written, const sf::OutArray &out_meta_info, const ContentMetaKey &key, s32 offset) { + R_UNLESS(offset >= 0, ncm::ResultInvalidOffset()); R_TRY(this->EnsureEnabled()); /* Obtain the content meta for the key. */ diff --git a/stratosphere/ncm/source/ncm_content_meta_database_impl.hpp b/stratosphere/ncm/source/ncm_content_meta_database_impl.hpp index 155ba7248..ba86a2c33 100644 --- a/stratosphere/ncm/source/ncm_content_meta_database_impl.hpp +++ b/stratosphere/ncm/source/ncm_content_meta_database_impl.hpp @@ -35,10 +35,10 @@ namespace ams::ncm { virtual Result Get(sf::Out out_size, const ContentMetaKey &key, sf::OutBuffer out_value) override; virtual Result Remove(const ContentMetaKey &key) override; virtual Result GetContentIdByType(sf::Out out_content_id, const ContentMetaKey &key, ContentType type) override; - virtual Result ListContentInfo(sf::Out out_entries_written, const sf::OutArray &out_info, const ContentMetaKey &key, u32 start_index) override; - virtual Result List(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_info, ContentMetaType type, ProgramId application_program_id, ProgramId program_id_min, ProgramId program_id_max, ContentInstallType install_type) override; + virtual Result ListContentInfo(sf::Out out_entries_written, const sf::OutArray &out_info, const ContentMetaKey &key, s32 offset) override; + virtual Result List(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_info, ContentMetaType meta_type, ProgramId application_id, u64 min, u64 max, ContentInstallType install_type) override; virtual Result GetLatestContentMetaKey(sf::Out out_key, ProgramId id) override; - virtual Result ListApplication(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_keys, ContentMetaType type) override; + virtual Result ListApplication(sf::Out out_entries_total, sf::Out out_entries_written, const sf::OutArray &out_keys, ContentMetaType meta_type) override; virtual Result Has(sf::Out out, const ContentMetaKey &key) override; virtual Result HasAll(sf::Out out, const sf::InArray &keys) override; virtual Result GetSize(sf::Out out_size, const ContentMetaKey &key) override; @@ -48,7 +48,7 @@ namespace ams::ncm { virtual Result LookupOrphanContent(const sf::OutArray &out_orphaned, const sf::InArray &content_ids) override; virtual Result Commit() override; virtual Result HasContent(sf::Out out, const ContentMetaKey &key, const ContentId &content_id) override; - virtual Result ListContentMetaInfo(sf::Out out_entries_written, const sf::OutArray &out_meta_info, const ContentMetaKey &key, u32 start_index) override; + virtual Result ListContentMetaInfo(sf::Out out_entries_written, const sf::OutArray &out_meta_info, const ContentMetaKey &key, s32 offset) override; virtual Result GetAttributes(sf::Out out_attributes, const ContentMetaKey &key) override; virtual Result GetRequiredApplicationVersion(sf::Out out_version, const ContentMetaKey &key) override; virtual Result GetContentIdByTypeAndIdOffset(sf::Out out_content_id, const ContentMetaKey &key, ContentType type, u8 id_offset) override; diff --git a/stratosphere/ncm/source/ncm_content_storage_impl.cpp b/stratosphere/ncm/source/ncm_content_storage_impl.cpp index 52abfe22b..ccf82ef49 100644 --- a/stratosphere/ncm/source/ncm_content_storage_impl.cpp +++ b/stratosphere/ncm/source/ncm_content_storage_impl.cpp @@ -73,7 +73,7 @@ namespace ams::ncm { fs::DirectoryEntry entry; s64 entry_count; R_TRY(fs::ReadDirectory(std::addressof(entry_count), std::addressof(entry), dir, 1)); - + /* Directory has no entries to process. */ if (entry_count == 0) { break; @@ -269,7 +269,7 @@ namespace ams::ncm { return ResultSuccess(); } - Result ContentStorageImpl::CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, u64 size) { + Result ContentStorageImpl::CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, s64 size) { R_TRY(this->EnsureEnabled()); R_TRY(EnsureContentDirectory(content_id, this->make_content_path_func, this->root_path)); @@ -298,9 +298,9 @@ namespace ams::ncm { return ResultSuccess(); } - Result ContentStorageImpl::WritePlaceHolder(PlaceHolderId placeholder_id, u64 offset, sf::InBuffer data) { - /* Offset is too large */ - R_UNLESS(offset <= std::numeric_limits::max(), ncm::ResultInvalidOffset()); + Result ContentStorageImpl::WritePlaceHolder(PlaceHolderId placeholder_id, s64 offset, sf::InBuffer data) { + /* Ensure offset is valid. */ + R_UNLESS(offset >= 0, ncm::ResultInvalidOffset()); R_TRY(this->EnsureEnabled()); return this->placeholder_accessor.WritePlaceHolderFile(placeholder_id, offset, data.GetPointer(), data.GetSize()); } @@ -392,13 +392,13 @@ namespace ams::ncm { return ResultSuccess(); } - Result ContentStorageImpl::ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) { + Result ContentStorageImpl::ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) { R_TRY(this->EnsureEnabled()); /* Obtain the placeholder base directory path. */ PathString placeholder_dir; PlaceHolderAccessor::MakeBaseDirectoryPath(std::addressof(placeholder_dir), this->root_path); - + const size_t max_entries = out_buf.GetSize(); size_t entry_count = 0; @@ -421,17 +421,17 @@ namespace ams::ncm { return ResultSuccess(); })); - out_count.SetValue(static_cast(entry_count)); + out_count.SetValue(static_cast(entry_count)); return ResultSuccess(); } - Result ContentStorageImpl::GetContentCount(sf::Out out_count) { + Result ContentStorageImpl::GetContentCount(sf::Out out_count) { R_TRY(this->EnsureEnabled()); /* Obtain the content base directory path. */ PathString path; MakeBaseContentDirectoryPath(std::addressof(path), this->root_path); - + const auto depth = GetHierarchicalContentDirectoryDepth(this->make_content_path_func); size_t count = 0; @@ -448,12 +448,12 @@ namespace ams::ncm { return ResultSuccess(); })); - out_count.SetValue(static_cast(count)); + out_count.SetValue(static_cast(count)); return ResultSuccess(); } - Result ContentStorageImpl::ListContentId(sf::Out out_count, const sf::OutArray &out_buf, u32 offset) { - R_UNLESS(offset <= std::numeric_limits::max(), ncm::ResultInvalidOffset()); + Result ContentStorageImpl::ListContentId(sf::Out out_count, const sf::OutArray &out_buf, s32 offset) { + R_UNLESS(offset >= 0, ncm::ResultInvalidOffset()); R_TRY(this->EnsureEnabled()); /* Obtain the content base directory path. */ @@ -493,11 +493,11 @@ namespace ams::ncm { return ResultSuccess(); })); - out_count.SetValue(static_cast(entry_count)); + out_count.SetValue(static_cast(entry_count)); return ResultSuccess(); } - Result ContentStorageImpl::GetSizeFromContentId(sf::Out out_size, ContentId content_id) { + Result ContentStorageImpl::GetSizeFromContentId(sf::Out out_size, ContentId content_id) { R_TRY(this->EnsureEnabled()); /* Create the content path. */ @@ -553,14 +553,14 @@ namespace ams::ncm { return ResultSuccess(); } - Result ContentStorageImpl::SetPlaceHolderSize(PlaceHolderId placeholder_id, u64 size) { + Result ContentStorageImpl::SetPlaceHolderSize(PlaceHolderId placeholder_id, s64 size) { R_TRY(this->EnsureEnabled()); return this->placeholder_accessor.SetPlaceHolderFileSize(placeholder_id, size); } - Result ContentStorageImpl::ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, u64 offset) { - /* Offset is too large */ - R_UNLESS(offset <= std::numeric_limits::max(), ncm::ResultInvalidOffset()); + Result ContentStorageImpl::ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, s64 offset) { + /* Ensure offset is valid. */ + R_UNLESS(offset >= 0, ncm::ResultInvalidOffset()); R_TRY(this->EnsureEnabled()); /* Create the content path. */ @@ -628,9 +628,9 @@ namespace ams::ncm { return ResultSuccess(); } - Result ContentStorageImpl::WriteContentForDebug(ContentId content_id, u64 offset, sf::InBuffer data) { - /* Offset is too large */ - R_UNLESS(offset <= std::numeric_limits::max(), ncm::ResultInvalidOffset()); + Result ContentStorageImpl::WriteContentForDebug(ContentId content_id, s64 offset, sf::InBuffer data) { + /* Ensure offset is valid. */ + R_UNLESS(offset >= 0, ncm::ResultInvalidOffset()); R_TRY(this->EnsureEnabled()); /* This command is for development hardware only. */ @@ -654,14 +654,14 @@ namespace ams::ncm { return ResultSuccess(); } - Result ContentStorageImpl::GetFreeSpaceSize(sf::Out out_size) { + Result ContentStorageImpl::GetFreeSpaceSize(sf::Out out_size) { s64 size; R_TRY(fs::GetFreeSpaceSize(std::addressof(size), this->root_path)); out_size.SetValue(size); return ResultSuccess(); } - Result ContentStorageImpl::GetTotalSpaceSize(sf::Out out_size) { + Result ContentStorageImpl::GetTotalSpaceSize(sf::Out out_size) { s64 size; R_TRY(fs::GetTotalSpaceSize(std::addressof(size), this->root_path)); out_size.SetValue(size); @@ -673,14 +673,14 @@ namespace ams::ncm { return ResultSuccess(); } - Result ContentStorageImpl::GetSizeFromPlaceHolderId(sf::Out out_size, PlaceHolderId placeholder_id) { + Result ContentStorageImpl::GetSizeFromPlaceHolderId(sf::Out out_size, PlaceHolderId placeholder_id) { R_TRY(this->EnsureEnabled()); /* Attempt to get the placeholder file size. */ bool found = false; s64 file_size = 0; R_TRY(this->placeholder_accessor.TryGetPlaceHolderFileSize(std::addressof(found), std::addressof(file_size), placeholder_id)); - + /* Set the output if placeholder file is found. */ if (found) { out_size.SetValue(file_size); diff --git a/stratosphere/ncm/source/ncm_content_storage_impl.hpp b/stratosphere/ncm/source/ncm_content_storage_impl.hpp index c4e76f141..3fbaccdc0 100644 --- a/stratosphere/ncm/source/ncm_content_storage_impl.hpp +++ b/stratosphere/ncm/source/ncm_content_storage_impl.hpp @@ -46,33 +46,33 @@ namespace ams::ncm { public: /* Actual commands. */ virtual Result GeneratePlaceHolderId(sf::Out out) override; - virtual Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, u64 size) override; + virtual Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, s64 size) override; virtual Result DeletePlaceHolder(PlaceHolderId placeholder_id) override; virtual Result HasPlaceHolder(sf::Out out, PlaceHolderId placeholder_id) override; - virtual Result WritePlaceHolder(PlaceHolderId placeholder_id, u64 offset, sf::InBuffer data) override; + virtual Result WritePlaceHolder(PlaceHolderId placeholder_id, s64 offset, sf::InBuffer data) override; virtual Result Register(PlaceHolderId placeholder_id, ContentId content_id) override; virtual Result Delete(ContentId content_id) override; virtual Result Has(sf::Out out, ContentId content_id) override; virtual Result GetPath(sf::Out out, ContentId content_id) override; virtual Result GetPlaceHolderPath(sf::Out out, PlaceHolderId placeholder_id) override; virtual Result CleanupAllPlaceHolder() override; - virtual Result ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) override; - virtual Result GetContentCount(sf::Out out_count) override; - virtual Result ListContentId(sf::Out out_count, const sf::OutArray &out_buf, u32 start_offset) override; - virtual Result GetSizeFromContentId(sf::Out out_size, ContentId content_id) override; + virtual Result ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) override; + virtual Result GetContentCount(sf::Out out_count) override; + virtual Result ListContentId(sf::Out out_count, const sf::OutArray &out_buf, s32 start_offset) override; + virtual Result GetSizeFromContentId(sf::Out out_size, ContentId content_id) override; virtual Result DisableForcibly() override; virtual Result RevertToPlaceHolder(PlaceHolderId placeholder_id, ContentId old_content_id, ContentId new_content_id) override; - virtual Result SetPlaceHolderSize(PlaceHolderId placeholder_id, u64 size) override; - virtual Result ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, u64 offset) override; + virtual Result SetPlaceHolderSize(PlaceHolderId placeholder_id, s64 size) override; + virtual Result ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, s64 offset) override; virtual Result GetRightsIdFromPlaceHolderIdDeprecated(sf::Out out_rights_id, PlaceHolderId placeholder_id) override; virtual Result GetRightsIdFromPlaceHolderId(sf::Out out_rights_id, PlaceHolderId placeholder_id) override; virtual Result GetRightsIdFromContentIdDeprecated(sf::Out out_rights_id, ContentId content_id) override; virtual Result GetRightsIdFromContentId(sf::Out out_rights_id, ContentId content_id) override; - virtual Result WriteContentForDebug(ContentId content_id, u64 offset, sf::InBuffer data) override; - virtual Result GetFreeSpaceSize(sf::Out out_size) override; - virtual Result GetTotalSpaceSize(sf::Out out_size) override; + virtual Result WriteContentForDebug(ContentId content_id, s64 offset, sf::InBuffer data) override; + virtual Result GetFreeSpaceSize(sf::Out out_size) override; + virtual Result GetTotalSpaceSize(sf::Out out_size) override; virtual Result FlushPlaceHolder() override; - virtual Result GetSizeFromPlaceHolderId(sf::Out out, PlaceHolderId placeholder_id) override; + virtual Result GetSizeFromPlaceHolderId(sf::Out out, PlaceHolderId placeholder_id) override; virtual Result RepairInvalidFileAttribute() override; virtual Result GetRightsIdFromPlaceHolderIdWithCache(sf::Out out_rights_id, PlaceHolderId placeholder_id, ContentId cache_content_id) override; }; diff --git a/stratosphere/ncm/source/ncm_read_only_content_storage_impl.cpp b/stratosphere/ncm/source/ncm_read_only_content_storage_impl.cpp index adca31783..1e445fb66 100644 --- a/stratosphere/ncm/source/ncm_read_only_content_storage_impl.cpp +++ b/stratosphere/ncm/source/ncm_read_only_content_storage_impl.cpp @@ -64,7 +64,7 @@ namespace ams::ncm { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, u64 size) { + Result ReadOnlyContentStorageImpl::CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, s64 size) { return ncm::ResultWriteToReadOnlyContentStorage(); } @@ -76,7 +76,7 @@ namespace ams::ncm { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::WritePlaceHolder(PlaceHolderId placeholder_id, u64 offset, sf::InBuffer data) { + Result ReadOnlyContentStorageImpl::WritePlaceHolder(PlaceHolderId placeholder_id, s64 offset, sf::InBuffer data) { return ncm::ResultWriteToReadOnlyContentStorage(); } @@ -119,7 +119,7 @@ namespace ams::ncm { /* Check if the file exists. */ bool has_file; R_TRY(impl::HasFile(std::addressof(has_file), content_path)); - + /* If the file is absent, make the path for regular content. */ if (!has_file) { MakeContentPath(std::addressof(content_path), content_id, this->make_content_path_func, this->root_path); @@ -128,7 +128,7 @@ namespace ams::ncm { /* Substitute mount name with the common mount name. */ Path common_path; R_TRY(fs::ConvertToFsCommonPath(common_path.str, sizeof(common_path.str), content_path)); - + out.SetValue(common_path); return ResultSuccess(); } @@ -141,19 +141,19 @@ namespace ams::ncm { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) { + Result ReadOnlyContentStorageImpl::ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::GetContentCount(sf::Out out_count) { + Result ReadOnlyContentStorageImpl::GetContentCount(sf::Out out_count) { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::ListContentId(sf::Out out_count, const sf::OutArray &out_buf, u32 start_offset) { + Result ReadOnlyContentStorageImpl::ListContentId(sf::Out out_count, const sf::OutArray &out_buf, s32 offset) { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::GetSizeFromContentId(sf::Out out_size, ContentId content_id) { + Result ReadOnlyContentStorageImpl::GetSizeFromContentId(sf::Out out_size, ContentId content_id) { R_TRY(this->EnsureEnabled()); /* Open the file for the content id. */ @@ -178,13 +178,13 @@ namespace ams::ncm { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::SetPlaceHolderSize(PlaceHolderId placeholder_id, u64 size) { + Result ReadOnlyContentStorageImpl::SetPlaceHolderSize(PlaceHolderId placeholder_id, s64 size) { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, u64 offset) { - /* Offset is too large */ - R_UNLESS(offset <= std::numeric_limits::max(), ncm::ResultInvalidOffset()); + Result ReadOnlyContentStorageImpl::ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, s64 offset) { + /* Ensure offset is valid. */ + R_UNLESS(offset >= 0, ncm::ResultInvalidOffset()); R_TRY(this->EnsureEnabled()); /* Open the file for the content id. */ @@ -231,16 +231,16 @@ namespace ams::ncm { return ResultSuccess(); } - Result ReadOnlyContentStorageImpl::WriteContentForDebug(ContentId content_id, u64 offset, sf::InBuffer data) { + Result ReadOnlyContentStorageImpl::WriteContentForDebug(ContentId content_id, s64 offset, sf::InBuffer data) { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::GetFreeSpaceSize(sf::Out out_size) { + Result ReadOnlyContentStorageImpl::GetFreeSpaceSize(sf::Out out_size) { out_size.SetValue(0); return ResultSuccess(); } - Result ReadOnlyContentStorageImpl::GetTotalSpaceSize(sf::Out out_size) { + Result ReadOnlyContentStorageImpl::GetTotalSpaceSize(sf::Out out_size) { out_size.SetValue(0); return ResultSuccess(); } @@ -249,7 +249,7 @@ namespace ams::ncm { return ncm::ResultWriteToReadOnlyContentStorage(); } - Result ReadOnlyContentStorageImpl::GetSizeFromPlaceHolderId(sf::Out out, PlaceHolderId placeholder_id) { + Result ReadOnlyContentStorageImpl::GetSizeFromPlaceHolderId(sf::Out out, PlaceHolderId placeholder_id) { return ncm::ResultWriteToReadOnlyContentStorage(); } diff --git a/stratosphere/ncm/source/ncm_read_only_content_storage_impl.hpp b/stratosphere/ncm/source/ncm_read_only_content_storage_impl.hpp index 4d4ce7bb7..357f2984e 100644 --- a/stratosphere/ncm/source/ncm_read_only_content_storage_impl.hpp +++ b/stratosphere/ncm/source/ncm_read_only_content_storage_impl.hpp @@ -27,33 +27,33 @@ namespace ams::ncm { public: /* Actual commands. */ virtual Result GeneratePlaceHolderId(sf::Out out) override; - virtual Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, u64 size) override; + virtual Result CreatePlaceHolder(PlaceHolderId placeholder_id, ContentId content_id, s64 size) override; virtual Result DeletePlaceHolder(PlaceHolderId placeholder_id) override; virtual Result HasPlaceHolder(sf::Out out, PlaceHolderId placeholder_id) override; - virtual Result WritePlaceHolder(PlaceHolderId placeholder_id, u64 offset, sf::InBuffer data) override; + virtual Result WritePlaceHolder(PlaceHolderId placeholder_id, s64 offset, sf::InBuffer data) override; virtual Result Register(PlaceHolderId placeholder_id, ContentId content_id) override; virtual Result Delete(ContentId content_id) override; virtual Result Has(sf::Out out, ContentId content_id) override; virtual Result GetPath(sf::Out out, ContentId content_id) override; virtual Result GetPlaceHolderPath(sf::Out out, PlaceHolderId placeholder_id) override; virtual Result CleanupAllPlaceHolder() override; - virtual Result ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) override; - virtual Result GetContentCount(sf::Out out_count) override; - virtual Result ListContentId(sf::Out out_count, const sf::OutArray &out_buf, u32 start_offset) override; - virtual Result GetSizeFromContentId(sf::Out out_size, ContentId content_id) override; + virtual Result ListPlaceHolder(sf::Out out_count, const sf::OutArray &out_buf) override; + virtual Result GetContentCount(sf::Out out_count) override; + virtual Result ListContentId(sf::Out out_count, const sf::OutArray &out_buf, s32 start_offset) override; + virtual Result GetSizeFromContentId(sf::Out out_size, ContentId content_id) override; virtual Result DisableForcibly() override; virtual Result RevertToPlaceHolder(PlaceHolderId placeholder_id, ContentId old_content_id, ContentId new_content_id) override; - virtual Result SetPlaceHolderSize(PlaceHolderId placeholder_id, u64 size) override; - virtual Result ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, u64 offset) override; + virtual Result SetPlaceHolderSize(PlaceHolderId placeholder_id, s64 size) override; + virtual Result ReadContentIdFile(sf::OutBuffer buf, ContentId content_id, s64 offset) override; virtual Result GetRightsIdFromPlaceHolderIdDeprecated(sf::Out out_rights_id, PlaceHolderId placeholder_id) override; virtual Result GetRightsIdFromPlaceHolderId(sf::Out out_rights_id, PlaceHolderId placeholder_id) override; virtual Result GetRightsIdFromContentIdDeprecated(sf::Out out_rights_id, ContentId content_id) override; virtual Result GetRightsIdFromContentId(sf::Out out_rights_id, ContentId content_id) override; - virtual Result WriteContentForDebug(ContentId content_id, u64 offset, sf::InBuffer data) override; - virtual Result GetFreeSpaceSize(sf::Out out_size) override; - virtual Result GetTotalSpaceSize(sf::Out out_size) override; + virtual Result WriteContentForDebug(ContentId content_id, s64 offset, sf::InBuffer data) override; + virtual Result GetFreeSpaceSize(sf::Out out_size) override; + virtual Result GetTotalSpaceSize(sf::Out out_size) override; virtual Result FlushPlaceHolder() override; - virtual Result GetSizeFromPlaceHolderId(sf::Out out, PlaceHolderId placeholder_id) override; + virtual Result GetSizeFromPlaceHolderId(sf::Out out, PlaceHolderId placeholder_id) override; virtual Result RepairInvalidFileAttribute() override; virtual Result GetRightsIdFromPlaceHolderIdWithCache(sf::Out out_rights_id, PlaceHolderId placeholder_id, ContentId cache_content_id) override; };