From b0e520112b6590f658bb04f6a8bc9d98fbda91b4 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Sat, 9 Oct 2021 10:36:21 -0700 Subject: [PATCH] strat: always use explicit result namespacing --- .../stratosphere/kvdb/kvdb_auto_buffer.hpp | 2 +- .../kvdb/kvdb_file_key_value_cache.hpp | 6 +- .../kvdb/kvdb_memory_key_value_store.hpp | 22 +-- .../stratosphere/ncm/ncm_auto_buffer.hpp | 2 +- .../fssrv_filesystem_interface_adapter.cpp | 8 +- .../fssrv/fssrv_storage_interface_adapter.cpp | 2 +- ...ystem_directory_redirection_filesystem.cpp | 2 +- ...fssystem_directory_savedata_filesystem.cpp | 2 +- .../source/i2c/i2c_command_list_formatter.cpp | 2 +- .../source/kvdb/kvdb_archive.cpp | 12 +- .../source/kvdb/kvdb_file_key_value_store.cpp | 26 +-- .../source/ncm/ncm_content_manager_impl.cpp | 20 +-- ...m_on_memory_content_meta_database_impl.cpp | 2 +- .../impl/settings_key_value_store.cpp | 148 +++++++++--------- .../impl/settings_key_value_store.hpp | 2 +- .../impl/settings_system_save_data.cpp | 2 +- .../source/updater/updater_api.cpp | 18 +-- .../source/updater/updater_bis_management.cpp | 2 +- .../source/updater/updater_files.cpp | 4 +- .../source/set_mitm/settings_sd_kvs.cpp | 44 +++--- .../creport/source/creport_crash_report.cpp | 14 +- .../creport/source/creport_crash_report.hpp | 2 +- .../dmnt/source/cheat/dmnt_cheat_service.cpp | 18 +-- .../dmnt/source/cheat/impl/dmnt_cheat_api.cpp | 42 ++--- .../fatal/source/fatal_event_manager.cpp | 2 +- stratosphere/fatal/source/fatal_service.cpp | 2 +- .../loader/source/ldr_loader_service.cpp | 2 +- stratosphere/loader/source/ldr_meta.cpp | 24 +-- .../loader/source/ldr_process_creation.cpp | 40 ++--- 29 files changed, 237 insertions(+), 237 deletions(-) diff --git a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_auto_buffer.hpp b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_auto_buffer.hpp index 7a23c08fc..cf02739d3 100644 --- a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_auto_buffer.hpp +++ b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_auto_buffer.hpp @@ -69,7 +69,7 @@ namespace ams::kvdb { /* Allocate a buffer. */ this->buffer = new (std::nothrow) u8[size]; - R_UNLESS(this->buffer != nullptr, ResultAllocationFailed()); + R_UNLESS(this->buffer != nullptr, kvdb::ResultAllocationFailed()); this->size = size; return ResultSuccess(); diff --git a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_cache.hpp b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_cache.hpp index 54c356b5a..adcb0113c 100644 --- a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_cache.hpp +++ b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_cache.hpp @@ -219,7 +219,7 @@ namespace ams::kvdb { } R_END_TRY_CATCH; /* Check that the entry type is correct. */ - R_UNLESS(entry_type == type, ResultInvalidFilesystemState()); + R_UNLESS(entry_type == type, kvdb::ResultInvalidFilesystemState()); /* The entry exists and is the correct type. */ *out = true; @@ -249,10 +249,10 @@ namespace ams::kvdb { R_TRY(DirectoryExists(&has_kvs, GetFileKeyValueStorePath(dir))); /* If neither exists, CreateNewCache was never called. */ - R_UNLESS(has_lru || has_kvs, ResultNotCreated()); + R_UNLESS(has_lru || has_kvs, kvdb::ResultNotCreated()); /* If one exists but not the other, we have an invalid state. */ - R_UNLESS(has_lru && has_kvs, ResultInvalidFilesystemState()); + R_UNLESS(has_lru && has_kvs, kvdb::ResultInvalidFilesystemState()); return ResultSuccess(); } diff --git a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_memory_key_value_store.hpp b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_memory_key_value_store.hpp index 86634f6d0..6393eca50 100644 --- a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_memory_key_value_store.hpp +++ b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_memory_key_value_store.hpp @@ -122,7 +122,7 @@ namespace ams::kvdb { Result Initialize(size_t capacity, MemoryResource *mr) { this->entries = reinterpret_cast(mr->Allocate(sizeof(Entry) * capacity)); - R_UNLESS(this->entries != nullptr, ResultAllocationFailed()); + R_UNLESS(this->entries != nullptr, kvdb::ResultAllocationFailed()); this->capacity = capacity; this->memory_resource = mr; return ResultSuccess(); @@ -136,14 +136,14 @@ namespace ams::kvdb { this->memory_resource->Deallocate(it->GetValuePointer(), it->GetValueSize()); } else { /* We need to add a new entry. Check we have room, move future keys forward. */ - R_UNLESS(this->count < this->capacity, ResultOutOfKeyResource()); + R_UNLESS(this->count < this->capacity, kvdb::ResultOutOfKeyResource()); std::memmove(it + 1, it, sizeof(*it) * (this->end() - it)); this->count++; } /* Allocate new value. */ void *new_value = this->memory_resource->Allocate(value_size); - R_UNLESS(new_value != nullptr, ResultAllocationFailed()); + R_UNLESS(new_value != nullptr, kvdb::ResultAllocationFailed()); std::memcpy(new_value, value, value_size); /* Save the new Entry in the map. */ @@ -152,7 +152,7 @@ namespace ams::kvdb { } Result AddUnsafe(const Key &key, void *value, size_t value_size) { - R_UNLESS(this->count < this->capacity, ResultOutOfKeyResource()); + R_UNLESS(this->count < this->capacity, kvdb::ResultOutOfKeyResource()); this->entries[this->count++] = Entry(key, value, value_size); return ResultSuccess(); @@ -161,7 +161,7 @@ namespace ams::kvdb { Result Remove(const Key &key) { /* Find entry for key. */ Entry *it = this->find(key); - R_UNLESS(it != this->end(), ResultKeyNotFound()); + R_UNLESS(it != this->end(), kvdb::ResultKeyNotFound()); /* Free the value, move entries back. */ this->memory_resource->Deallocate(it->GetValuePointer(), it->GetValueSize()); @@ -324,7 +324,7 @@ namespace ams::kvdb { /* Allocate memory for value. */ void *new_value = this->memory_resource->Allocate(value_size); - R_UNLESS(new_value != nullptr, ResultAllocationFailed()); + R_UNLESS(new_value != nullptr, kvdb::ResultAllocationFailed()); auto value_guard = SCOPE_GUARD { this->memory_resource->Deallocate(new_value, value_size); }; /* Read key and value. */ @@ -380,7 +380,7 @@ namespace ams::kvdb { Result Get(size_t *out_size, void *out_value, size_t max_out_size, const Key &key) { /* Find entry. */ auto it = this->find(key); - R_UNLESS(it != this->end(), ResultKeyNotFound()); + R_UNLESS(it != this->end(), kvdb::ResultKeyNotFound()); size_t size = std::min(max_out_size, it->GetValueSize()); std::memcpy(out_value, it->GetValuePointer(), size); @@ -392,7 +392,7 @@ namespace ams::kvdb { Result GetValuePointer(Value **out_value, const Key &key) { /* Find entry. */ auto it = this->find(key); - R_UNLESS(it != this->end(), ResultKeyNotFound()); + R_UNLESS(it != this->end(), kvdb::ResultKeyNotFound()); *out_value = it->template GetValuePointer(); return ResultSuccess(); @@ -402,7 +402,7 @@ namespace ams::kvdb { Result GetValuePointer(const Value **out_value, const Key &key) const { /* Find entry. */ auto it = this->find(key); - R_UNLESS(it != this->end(), ResultKeyNotFound()); + R_UNLESS(it != this->end(), kvdb::ResultKeyNotFound()); *out_value = it->template GetValuePointer(); return ResultSuccess(); @@ -412,7 +412,7 @@ namespace ams::kvdb { Result GetValue(Value *out_value, const Key &key) const { /* Find entry. */ auto it = this->find(key); - R_UNLESS(it != this->end(), ResultKeyNotFound()); + R_UNLESS(it != this->end(), kvdb::ResultKeyNotFound()); *out_value = it->template GetValue(); return ResultSuccess(); @@ -421,7 +421,7 @@ namespace ams::kvdb { Result GetValueSize(size_t *out_size, const Key &key) const { /* Find entry. */ auto it = this->find(key); - R_UNLESS(it != this->end(), ResultKeyNotFound()); + R_UNLESS(it != this->end(), kvdb::ResultKeyNotFound()); *out_size = it->GetValueSize(); return ResultSuccess(); diff --git a/libraries/libstratosphere/include/stratosphere/ncm/ncm_auto_buffer.hpp b/libraries/libstratosphere/include/stratosphere/ncm/ncm_auto_buffer.hpp index 9a7acc16f..768eaf32b 100644 --- a/libraries/libstratosphere/include/stratosphere/ncm/ncm_auto_buffer.hpp +++ b/libraries/libstratosphere/include/stratosphere/ncm/ncm_auto_buffer.hpp @@ -69,7 +69,7 @@ namespace ams::ncm { /* Allocate a buffer. */ this->buffer = new (std::nothrow) u8[size]; - R_UNLESS(this->buffer != nullptr, ResultAllocationFailed()); + R_UNLESS(this->buffer != nullptr, ncm::ResultAllocationFailed()); this->size = size; return ResultSuccess(); diff --git a/libraries/libstratosphere/source/fssrv/fssrv_filesystem_interface_adapter.cpp b/libraries/libstratosphere/source/fssrv/fssrv_filesystem_interface_adapter.cpp index cf69c7343..58224e803 100644 --- a/libraries/libstratosphere/source/fssrv/fssrv_filesystem_interface_adapter.cpp +++ b/libraries/libstratosphere/source/fssrv/fssrv_filesystem_interface_adapter.cpp @@ -36,7 +36,7 @@ namespace ams::fssrv::impl { } Result FileInterfaceAdapter::Read(ams::sf::Out out, s64 offset, const ams::sf::OutNonSecureBuffer &buffer, s64 size, fs::ReadOption option) { - /* TODO: N retries on ResultDataCorrupted, we may want to eventually. */ + /* TODO: N retries on fs::ResultDataCorrupted, we may want to eventually. */ /* TODO: Deep retry */ R_UNLESS(offset >= 0, fs::ResultInvalidOffset()); R_UNLESS(size >= 0, fs::ResultInvalidSize()); @@ -126,7 +126,7 @@ namespace ams::fssrv::impl { const s64 max_num_entries = out_entries.GetSize() / sizeof(fs::DirectoryEntry); R_UNLESS(max_num_entries >= 0, fs::ResultInvalidSize()); - /* TODO: N retries on ResultDataCorrupted, we may want to eventually. */ + /* TODO: N retries on fs::ResultDataCorrupted, we may want to eventually. */ return this->base_dir->Read(out.GetPointer(), reinterpret_cast(out_entries.GetPointer()), max_num_entries); } @@ -266,7 +266,7 @@ namespace ams::fssrv::impl { PathNormalizer normalizer(path.str); R_UNLESS(normalizer.GetPath() != nullptr, normalizer.GetResult()); - /* TODO: N retries on ResultDataCorrupted, we may want to eventually. */ + /* TODO: N retries on fs::ResultDataCorrupted, we may want to eventually. */ std::unique_ptr file; R_TRY(this->base_fs->OpenFile(&file, normalizer.GetPath(), static_cast(mode))); @@ -294,7 +294,7 @@ namespace ams::fssrv::impl { PathNormalizer normalizer(path.str); R_UNLESS(normalizer.GetPath() != nullptr, normalizer.GetResult()); - /* TODO: N retries on ResultDataCorrupted, we may want to eventually. */ + /* TODO: N retries on fs::ResultDataCorrupted, we may want to eventually. */ std::unique_ptr dir; R_TRY(this->base_fs->OpenDirectory(&dir, normalizer.GetPath(), static_cast(mode))); diff --git a/libraries/libstratosphere/source/fssrv/fssrv_storage_interface_adapter.cpp b/libraries/libstratosphere/source/fssrv/fssrv_storage_interface_adapter.cpp index ae046ad9d..c56488575 100644 --- a/libraries/libstratosphere/source/fssrv/fssrv_storage_interface_adapter.cpp +++ b/libraries/libstratosphere/source/fssrv/fssrv_storage_interface_adapter.cpp @@ -43,7 +43,7 @@ namespace ams::fssrv::impl { } Result StorageInterfaceAdapter::Read(s64 offset, const ams::sf::OutNonSecureBuffer &buffer, s64 size) { - /* TODO: N retries on ResultDataCorrupted, we may want to eventually. */ + /* TODO: N retries on fs::ResultDataCorrupted, we may want to eventually. */ /* TODO: Deep retry */ R_UNLESS(offset >= 0, fs::ResultInvalidOffset()); R_UNLESS(size >= 0, fs::ResultInvalidSize()); diff --git a/libraries/libstratosphere/source/fssystem/fssystem_directory_redirection_filesystem.cpp b/libraries/libstratosphere/source/fssystem/fssystem_directory_redirection_filesystem.cpp index e9835f2b9..33fe18286 100644 --- a/libraries/libstratosphere/source/fssystem/fssystem_directory_redirection_filesystem.cpp +++ b/libraries/libstratosphere/source/fssystem/fssystem_directory_redirection_filesystem.cpp @@ -68,7 +68,7 @@ namespace ams::fssystem { const size_t size = normalized_path_len + 1; char *new_dir = static_cast(fs::impl::Allocate(size)); AMS_ABORT_UNLESS(new_dir != nullptr); - /* TODO: custom ResultAllocationFailure? */ + /* TODO: custom fs::ResultAllocationFailure? */ /* Copy path in. */ std::memcpy(new_dir, normalized_path, normalized_path_len); diff --git a/libraries/libstratosphere/source/fssystem/fssystem_directory_savedata_filesystem.cpp b/libraries/libstratosphere/source/fssystem/fssystem_directory_savedata_filesystem.cpp index a58af030e..ff78c0992 100644 --- a/libraries/libstratosphere/source/fssystem/fssystem_directory_savedata_filesystem.cpp +++ b/libraries/libstratosphere/source/fssystem/fssystem_directory_savedata_filesystem.cpp @@ -133,7 +133,7 @@ namespace ams::fssystem { } /* TODO: Return a result here? Nintendo does not, but they have other allocation failed results. */ - /* Consider returning ResultFsAllocationFailureInDirectorySaveDataFileSystem? */ + /* Consider returning fs::ResultFsAllocationFailureInDirectorySaveDataFileSystem? */ AMS_ABORT_UNLESS(false); } diff --git a/libraries/libstratosphere/source/i2c/i2c_command_list_formatter.cpp b/libraries/libstratosphere/source/i2c/i2c_command_list_formatter.cpp index ee965d37e..e07ecaa00 100644 --- a/libraries/libstratosphere/source/i2c/i2c_command_list_formatter.cpp +++ b/libraries/libstratosphere/source/i2c/i2c_command_list_formatter.cpp @@ -19,7 +19,7 @@ namespace ams::i2c { Result CommandListFormatter::IsEnqueueAble(size_t sz) const { - R_UNLESS(this->command_list_length - this->current_index >= sz, ResultCommandListFull()); + R_UNLESS(this->command_list_length - this->current_index >= sz, i2c::ResultCommandListFull()); return ResultSuccess(); } diff --git a/libraries/libstratosphere/source/kvdb/kvdb_archive.cpp b/libraries/libstratosphere/source/kvdb/kvdb_archive.cpp index b0a220584..de61a4a3d 100644 --- a/libraries/libstratosphere/source/kvdb/kvdb_archive.cpp +++ b/libraries/libstratosphere/source/kvdb/kvdb_archive.cpp @@ -30,7 +30,7 @@ namespace ams::kvdb { u32 entry_count; Result Validate() const { - R_UNLESS(std::memcmp(this->magic, ArchiveHeaderMagic, sizeof(ArchiveHeaderMagic)) == 0, ResultInvalidKeyValue()); + R_UNLESS(std::memcmp(this->magic, ArchiveHeaderMagic, sizeof(ArchiveHeaderMagic)) == 0, kvdb::ResultInvalidKeyValue()); return ResultSuccess(); } @@ -49,7 +49,7 @@ namespace ams::kvdb { u32 value_size; Result Validate() const { - R_UNLESS(std::memcmp(this->magic, ArchiveEntryMagic, sizeof(ArchiveEntryMagic)) == 0, ResultInvalidKeyValue()); + R_UNLESS(std::memcmp(this->magic, ArchiveEntryMagic, sizeof(ArchiveEntryMagic)) == 0, kvdb::ResultInvalidKeyValue()); return ResultSuccess(); } @@ -68,8 +68,8 @@ namespace ams::kvdb { /* Reader functionality. */ Result ArchiveReader::Peek(void *dst, size_t size) { /* Bounds check. */ - R_UNLESS(this->offset + size <= this->buffer.GetSize(), ResultInvalidKeyValue()); - R_UNLESS(this->offset < this->offset + size, ResultInvalidKeyValue()); + R_UNLESS(this->offset + size <= this->buffer.GetSize(), kvdb::ResultInvalidKeyValue()); + R_UNLESS(this->offset < this->offset + size, kvdb::ResultInvalidKeyValue()); std::memcpy(dst, this->buffer.Get() + this->offset, size); return ResultSuccess(); @@ -129,8 +129,8 @@ namespace ams::kvdb { /* Writer functionality. */ Result ArchiveWriter::Write(const void *src, size_t size) { /* Bounds check. */ - R_UNLESS(this->offset + size <= this->buffer.GetSize(), ResultInvalidKeyValue()); - R_UNLESS(this->offset < this->offset + size, ResultInvalidKeyValue()); + R_UNLESS(this->offset + size <= this->buffer.GetSize(), kvdb::ResultInvalidKeyValue()); + R_UNLESS(this->offset < this->offset + size, kvdb::ResultInvalidKeyValue()); std::memcpy(this->buffer.Get() + this->offset, src, size); this->offset += size; diff --git a/libraries/libstratosphere/source/kvdb/kvdb_file_key_value_store.cpp b/libraries/libstratosphere/source/kvdb/kvdb_file_key_value_store.cpp index 571585976..1228063e9 100644 --- a/libraries/libstratosphere/source/kvdb/kvdb_file_key_value_store.cpp +++ b/libraries/libstratosphere/source/kvdb/kvdb_file_key_value_store.cpp @@ -37,7 +37,7 @@ namespace ams::kvdb { /* If we have memory to work with, ensure it's at least enough for the cache entries. */ if (this->backing_buffer != nullptr) { this->entries = static_castentries)>(this->Allocate(sizeof(*this->entries) * this->capacity)); - R_UNLESS(this->entries != nullptr, ResultBufferInsufficient()); + R_UNLESS(this->entries != nullptr, kvdb::ResultBufferInsufficient()); } return ResultSuccess(); @@ -153,13 +153,13 @@ namespace ams::kvdb { /* TODO: Nintendo does not validate that the key is valid hex. Should we do this? */ const size_t file_name_len = file_name.GetLength(); const size_t key_name_len = file_name_len - FileExtensionLength; - R_UNLESS(file_name_len >= FileExtensionLength + 2, ResultInvalidKeyValue()); - R_UNLESS(file_name.EndsWith(FileExtension), ResultInvalidKeyValue()); - R_UNLESS(util::IsAligned(key_name_len, 2), ResultInvalidKeyValue()); + R_UNLESS(file_name_len >= FileExtensionLength + 2, kvdb::ResultInvalidKeyValue()); + R_UNLESS(file_name.EndsWith(FileExtension), kvdb::ResultInvalidKeyValue()); + R_UNLESS(util::IsAligned(key_name_len, 2), kvdb::ResultInvalidKeyValue()); /* Validate that we have space for the converted key. */ const size_t key_size = key_name_len / 2; - R_UNLESS(key_size <= max_out_size, ResultBufferInsufficient()); + R_UNLESS(key_size <= max_out_size, kvdb::ResultBufferInsufficient()); /* Convert the hex key back. */ u8 *out_key = static_cast(_out_key); @@ -195,7 +195,7 @@ namespace ams::kvdb { std::scoped_lock lk(this->lock); /* Ensure key size is small enough. */ - R_UNLESS(key_size <= MaxKeySize, ResultOutOfKeyResource()); + R_UNLESS(key_size <= MaxKeySize, kvdb::ResultOutOfKeyResource()); /* Try to get from cache. */ { @@ -209,7 +209,7 @@ namespace ams::kvdb { /* Open the value file. */ fs::FileHandle file; R_TRY_CATCH(fs::OpenFile(std::addressof(file), this->GetPath(key, key_size), fs::OpenMode_Read)) { - R_CONVERT(fs::ResultPathNotFound, ResultKeyNotFound()); + R_CONVERT(fs::ResultPathNotFound, kvdb::ResultKeyNotFound()); } R_END_TRY_CATCH; ON_SCOPE_EXIT { fs::CloseFile(file); }; @@ -218,7 +218,7 @@ namespace ams::kvdb { R_TRY(fs::GetFileSize(std::addressof(file_size), file)); /* Ensure there's enough space for the value. */ - R_UNLESS(file_size <= static_cast(max_out_size), ResultBufferInsufficient()); + R_UNLESS(file_size <= static_cast(max_out_size), kvdb::ResultBufferInsufficient()); /* Read the value. */ const size_t value_size = static_cast(file_size); @@ -234,7 +234,7 @@ namespace ams::kvdb { std::scoped_lock lk(this->lock); /* Ensure key size is small enough. */ - R_UNLESS(key_size <= MaxKeySize, ResultOutOfKeyResource()); + R_UNLESS(key_size <= MaxKeySize, kvdb::ResultOutOfKeyResource()); /* Try to get from cache. */ { @@ -248,7 +248,7 @@ namespace ams::kvdb { /* Open the value file. */ fs::FileHandle file; R_TRY_CATCH(fs::OpenFile(std::addressof(file), this->GetPath(key, key_size), fs::OpenMode_Read)) { - R_CONVERT(fs::ResultPathNotFound, ResultKeyNotFound()); + R_CONVERT(fs::ResultPathNotFound, kvdb::ResultKeyNotFound()); } R_END_TRY_CATCH; ON_SCOPE_EXIT { fs::CloseFile(file); }; @@ -264,7 +264,7 @@ namespace ams::kvdb { std::scoped_lock lk(this->lock); /* Ensure key size is small enough. */ - R_UNLESS(key_size <= MaxKeySize, ResultOutOfKeyResource()); + R_UNLESS(key_size <= MaxKeySize, kvdb::ResultOutOfKeyResource()); /* When the cache contains the key being set, Nintendo invalidates the cache. */ if (this->cache.Contains(key, key_size)) { @@ -293,7 +293,7 @@ namespace ams::kvdb { std::scoped_lock lk(this->lock); /* Ensure key size is small enough. */ - R_UNLESS(key_size <= MaxKeySize, ResultOutOfKeyResource()); + R_UNLESS(key_size <= MaxKeySize, kvdb::ResultOutOfKeyResource()); /* When the cache contains the key being set, Nintendo invalidates the cache. */ if (this->cache.Contains(key, key_size)) { @@ -302,7 +302,7 @@ namespace ams::kvdb { /* Remove the file. */ R_TRY_CATCH(fs::DeleteFile(this->GetPath(key, key_size))) { - R_CONVERT(fs::ResultPathNotFound, ResultKeyNotFound()) + R_CONVERT(fs::ResultPathNotFound, kvdb::ResultKeyNotFound()) } R_END_TRY_CATCH; return ResultSuccess(); diff --git a/libraries/libstratosphere/source/ncm/ncm_content_manager_impl.cpp b/libraries/libstratosphere/source/ncm/ncm_content_manager_impl.cpp index f57f3b25c..8b5376aa6 100644 --- a/libraries/libstratosphere/source/ncm/ncm_content_manager_impl.cpp +++ b/libraries/libstratosphere/source/ncm/ncm_content_manager_impl.cpp @@ -94,21 +94,21 @@ namespace ams::ncm { ALWAYS_INLINE Result GetContentStorageNotActiveResult(StorageId storage_id) { switch (storage_id) { - case StorageId::GameCard: return ResultGameCardContentStorageNotActive(); - case StorageId::BuiltInSystem: return ResultBuiltInSystemContentStorageNotActive(); - case StorageId::BuiltInUser: return ResultBuiltInUserContentStorageNotActive(); - case StorageId::SdCard: return ResultSdCardContentStorageNotActive(); - default: return ResultUnknownContentStorageNotActive(); + case StorageId::GameCard: return ncm::ResultGameCardContentStorageNotActive(); + case StorageId::BuiltInSystem: return ncm::ResultBuiltInSystemContentStorageNotActive(); + case StorageId::BuiltInUser: return ncm::ResultBuiltInUserContentStorageNotActive(); + case StorageId::SdCard: return ncm::ResultSdCardContentStorageNotActive(); + default: return ncm::ResultUnknownContentStorageNotActive(); } } ALWAYS_INLINE Result GetContentMetaDatabaseNotActiveResult(StorageId storage_id) { switch (storage_id) { - case StorageId::GameCard: return ResultGameCardContentMetaDatabaseNotActive(); - case StorageId::BuiltInSystem: return ResultBuiltInSystemContentMetaDatabaseNotActive(); - case StorageId::BuiltInUser: return ResultBuiltInUserContentMetaDatabaseNotActive(); - case StorageId::SdCard: return ResultSdCardContentMetaDatabaseNotActive(); - default: return ResultUnknownContentMetaDatabaseNotActive(); + case StorageId::GameCard: return ncm::ResultGameCardContentMetaDatabaseNotActive(); + case StorageId::BuiltInSystem: return ncm::ResultBuiltInSystemContentMetaDatabaseNotActive(); + case StorageId::BuiltInUser: return ncm::ResultBuiltInUserContentMetaDatabaseNotActive(); + case StorageId::SdCard: return ncm::ResultSdCardContentMetaDatabaseNotActive(); + default: return ncm::ResultUnknownContentMetaDatabaseNotActive(); } } diff --git a/libraries/libstratosphere/source/ncm/ncm_on_memory_content_meta_database_impl.cpp b/libraries/libstratosphere/source/ncm/ncm_on_memory_content_meta_database_impl.cpp index 774a5d79a..94459aa98 100644 --- a/libraries/libstratosphere/source/ncm/ncm_on_memory_content_meta_database_impl.cpp +++ b/libraries/libstratosphere/source/ncm/ncm_on_memory_content_meta_database_impl.cpp @@ -89,7 +89,7 @@ namespace ams::ncm { Result OnMemoryContentMetaDatabaseImpl::LookupOrphanContent(const sf::OutArray &out_orphaned, const sf::InArray &content_ids) { AMS_UNUSED(out_orphaned, content_ids); - return ResultInvalidContentMetaDatabase(); + return ncm::ResultInvalidContentMetaDatabase(); } Result OnMemoryContentMetaDatabaseImpl::Commit() { diff --git a/libraries/libstratosphere/source/settings/impl/settings_key_value_store.cpp b/libraries/libstratosphere/source/settings/impl/settings_key_value_store.cpp index 742a17485..c6233ff76 100644 --- a/libraries/libstratosphere/source/settings/impl/settings_key_value_store.cpp +++ b/libraries/libstratosphere/source/settings/impl/settings_key_value_store.cpp @@ -135,14 +135,14 @@ namespace ams::settings::impl { MapKey &Assign(const char * const chars, s32 count) { AMS_ASSERT(chars != nullptr); AMS_ASSERT(count >= 0); - + /* Reset the key. */ this->Reset(); /* Update the count and allocate the buffer. */ m_count = count + 1; m_chars = static_cast(AllocateFromHeap(m_count)); - + /* Copy the characters to the buffer. */ std::memcpy(m_chars, chars, count); m_chars[count] = '\x00'; @@ -177,7 +177,7 @@ namespace ams::settings::impl { MapKey MakeMapKey(const SettingsName &name, const SettingsItemKey &item_key) { /* Create a map key. */ MapKey key(name.value, util::Strnlen(name.value, util::size(name.value))); - + /* Append the settings name separator followed by the item key. */ key.Append(SettingsNameSeparator); key.Append(item_key.value, util::Strnlen(item_key.value, util::size(item_key.value))); @@ -205,10 +205,10 @@ namespace ams::settings::impl { public: Allocator() noexcept = default; ~Allocator() noexcept = default; - + Allocator(const Allocator &) noexcept = default; Allocator(Allocator &&) noexcept = default; - + T *allocate(size_t n) noexcept { return static_cast(AllocateFromHeap(sizeof(T) * n)); } @@ -222,14 +222,14 @@ namespace ams::settings::impl { }; template - constexpr inline bool operator==(const Allocator &, const Allocator &) { + constexpr inline bool operator==(const Allocator &, const Allocator &) { return true; } constexpr inline size_t MapKeyBufferSize = MapKey::MaxKeySize * 2; constexpr inline size_t MapEntryBufferSize = 0x40 + sizeof(Map::value_type); - constexpr inline size_t HeapMemorySize = 512_KB; + constexpr inline size_t HeapMemorySize = 512_KB; constinit os::SdkMutex g_key_value_store_mutex; @@ -258,7 +258,7 @@ namespace ams::settings::impl { if (lhs_size == 0) { return true; } - + /* Compare the two values if they are non-null. */ return lhs != nullptr && rhs != nullptr && std::memcmp(lhs, rhs, lhs_size) == 0; } @@ -375,7 +375,7 @@ namespace ams::settings::impl { /* If the default value size is > 0, copy it to the map value. */ if (map_value.default_value_size > 0) { /* Allocate the default value if there is sufficient memory available. */ - R_UNLESS(GetHeapAllocatableSize() >= map_value.default_value_size, ResultSettingsItemValueAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= map_value.default_value_size, settings::ResultSettingsItemValueAllocationFailed()); map_value.default_value = AllocateFromHeap(map_value.default_value_size); AMS_ASSERT(map_value.default_value != nullptr); @@ -389,14 +389,14 @@ namespace ams::settings::impl { map_value.current_value = map_value.default_value; } else if (map_value.current_value_size > 0) { /* Allocate the current value if there is sufficient memory available. */ - R_UNLESS(GetHeapAllocatableSize() >= map_value.current_value_size, ResultSettingsItemValueAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= map_value.current_value_size, settings::ResultSettingsItemValueAllocationFailed()); map_value.current_value = AllocateFromHeap(map_value.current_value_size); AMS_ASSERT(map_value.current_value != nullptr); /* Copy the current value from the item. */ std::memcpy(map_value.current_value, item.current_value, map_value.current_value_size); } - + /* Set the output map value. */ *out = map_value; @@ -408,12 +408,12 @@ namespace ams::settings::impl { template const char *GetSystemDataMountName(); - + template<> const char *GetSystemDataMountName() { return FwdbgSystemDataMountName; } - + template<> const char *GetSystemDataMountName() { return PfCfgSystemDataMountName; @@ -423,7 +423,7 @@ namespace ams::settings::impl { Result GetSystemData(SystemData **out_data, ncm::SystemDataId id) { /* Check pre-conditions. */ AMS_ASSERT(out_data != nullptr); - + /* Declare static instance variables. */ static constinit util::TypedStorage s_storage = {}; static constinit bool s_initialized = false; @@ -512,7 +512,7 @@ namespace ams::settings::impl { SystemData *system_data = nullptr; R_TRY(GetSystemData(std::addressof(system_data), ncm::SystemDataId::FirmwareDebugSettings)); AMS_ASSERT(system_data != nullptr); - + /* Load the default keys/values for the firmware debug system data. */ R_TRY(LoadKeyValueStoreMapDefault(out, *system_data)); @@ -548,10 +548,10 @@ namespace ams::settings::impl { return ResultSuccess(); } - + Result LoadKeyValueStoreMap(Map *out, SplHardwareType hardware_type) { SystemData *data = nullptr; - + /* Get the platform configuration system data for the hardware type. */ switch (hardware_type) { case SplHardwareType_None: @@ -604,8 +604,8 @@ namespace ams::settings::impl { if (current_value_size > 0) { /* Ensure there is sufficient memory for the value. */ - R_UNLESS(GetHeapAllocatableSize() >= current_value_size, ResultSettingsItemValueAllocationFailed()); - + R_UNLESS(GetHeapAllocatableSize() >= current_value_size, settings::ResultSettingsItemValueAllocationFailed()); + /* Allocate the value buffer. */ current_value_buffer = AllocateFromHeap(current_value_size); AMS_ASSERT(current_value_buffer != nullptr); @@ -642,22 +642,22 @@ namespace ams::settings::impl { /* Load the map entries. */ R_TRY(LoadKeyValueStoreMapEntries(out, data, [](Map &map, const MapKey &key, u8 type, const void *value_buffer, u32 value_size) -> Result { /* Ensure there is sufficient memory for two keys. */ - R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, ResultSettingsItemKeyAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, settings::ResultSettingsItemKeyAllocationFailed()); /* Copy the map key. */ MapKey default_key = key; void *default_value_buffer = nullptr; - ON_SCOPE_EXIT { + ON_SCOPE_EXIT { /* Free the value buffer if allocated. */ if (default_value_buffer != nullptr) { - FreeToHeap(default_value_buffer, value_size); + FreeToHeap(default_value_buffer, value_size); } }; if (value_size > 0) { /* Ensure there is sufficient memory for the value. */ - R_UNLESS(GetHeapAllocatableSize() >= value_size, ResultSettingsItemValueAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= value_size, settings::ResultSettingsItemValueAllocationFailed()); /* Allocate the value buffer. */ default_value_buffer = AllocateFromHeap(value_size); @@ -669,16 +669,16 @@ namespace ams::settings::impl { /* Create the map value. */ MapValue default_value { - .type = type, - .current_value_size = value_size, - .default_value_size = value_size, + .type = type, + .current_value_size = value_size, + .default_value_size = value_size, .current_value = default_value_buffer, .default_value = default_value_buffer, }; /* Ensure there is sufficient memory for the value. */ - R_UNLESS(GetHeapAllocatableSize() >= MapEntryBufferSize, ResultSettingsItemValueAllocationFailed()); - + R_UNLESS(GetHeapAllocatableSize() >= MapEntryBufferSize, settings::ResultSettingsItemValueAllocationFailed()); + /* Insert the value into the map. */ map[std::move(default_key)] = default_value; return ResultSuccess(); @@ -697,7 +697,7 @@ namespace ams::settings::impl { s64 offset = 0; u32 total_size = 0; R_TRY(ReadData(data, offset, std::addressof(total_size), sizeof(total_size))); - + /* Iterate through all entries. NOTE: The offset is updated within LoadKeyValueStoreMapEntry. */ while (offset < total_size) { R_TRY(LoadKeyValueStoreMapEntry(out, data, offset, load)); @@ -718,8 +718,8 @@ namespace ams::settings::impl { AMS_ASSERT(key_size > 1); /* Ensure there is sufficient memory for this key. */ - R_UNLESS(GetHeapAllocatableSize() >= key_size, ResultSettingsItemKeyAllocationFailed()); - + R_UNLESS(GetHeapAllocatableSize() >= key_size, settings::ResultSettingsItemKeyAllocationFailed()); + /* Read the key. */ void *key_buffer = nullptr; R_TRY(ReadDataToHeap(data, offset, std::addressof(key_buffer), key_size)); @@ -727,7 +727,7 @@ namespace ams::settings::impl { ON_SCOPE_EXIT { FreeToHeap(key_buffer, key_size); }; /* Ensure there is sufficient memory for two keys. */ - R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, ResultSettingsItemKeyAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, settings::ResultSettingsItemKeyAllocationFailed()); const MapKey key(static_cast(key_buffer), key_size - 1); @@ -740,15 +740,15 @@ namespace ams::settings::impl { R_TRY(ReadData(data, offset, std::addressof(value_size), sizeof(value_size))); void *value_buffer = nullptr; - ON_SCOPE_EXIT { + ON_SCOPE_EXIT { if (value_buffer != nullptr) { - FreeToHeap(value_buffer, value_size); + FreeToHeap(value_buffer, value_size); } }; if (value_size > 0) { /* Ensure there is sufficient memory for the value. */ - R_UNLESS(GetHeapAllocatableSize() >= value_size, ResultSettingsItemValueAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= value_size, settings::ResultSettingsItemValueAllocationFailed()); /* Read the value to the buffer. */ R_TRY(ReadDataToHeap(data, offset, std::addressof(value_buffer), value_size)); @@ -778,14 +778,14 @@ namespace ams::settings::impl { R_TRY(LoadKeyValueStoreMapCurrent(out, *system_save_data)); return ResultSuccess(); } - + template Result ReadData(T &data, s64 &offset, void *buffer, size_t size) { AMS_ASSERT(buffer != nullptr); - + /* Read the data. */ R_TRY(data.Read(offset, buffer, size)); - + /* Increment the offset. */ offset += static_cast(size); return ResultSuccess(); @@ -800,13 +800,13 @@ namespace ams::settings::impl { /* Allocate a buffer from the heap. */ *buffer = AllocateFromHeap(size); AMS_ASSERT(*buffer != nullptr); - + /* Ensure we free the buffer if we fail. */ auto alloc_guard = SCOPE_GUARD { FreeToHeap(*buffer, size); *buffer = nullptr; }; - + /* Read data to the buffer. */ R_TRY(ReadData(data, offset, *buffer, size)); - + /* We succeeded. */ alloc_guard.Cancel(); return ResultSuccess(); @@ -909,7 +909,7 @@ namespace ams::settings::impl { /* Check preconditions. */ AMS_ASSERT(out_count != nullptr); AMS_ASSERT(out_buffer); - + /* Attempt to get the system save data. */ SystemSaveData *system_save_data = nullptr; if (R_SUCCEEDED(GetSystemSaveData(std::addressof(system_save_data), false))) { @@ -951,7 +951,7 @@ namespace ams::settings::impl { ON_SCOPE_EXIT { /* Flush and close the save data. NOTE: Nintendo only does this if SetFileSize succeeds. */ R_ABORT_UNLESS(data.Flush()); - data.Close(); + data.Close(); }; /* Set the file size of the save data. */ @@ -970,7 +970,7 @@ namespace ams::settings::impl { u8 type = 0; const void *value_buffer = nullptr; u32 value_size = 0; - + /* Test if the map value varies from the default. */ if (test(std::addressof(type), std::addressof(value_buffer), std::addressof(value_size), kv_pair.second)) { R_TRY(SaveKeyValueStoreMapEntry(data, current_offset, kv_pair.first, type, value_buffer, value_size)); @@ -1075,7 +1075,7 @@ namespace ams::settings::impl { AMS_ASSERT(map != nullptr); /* Ensure there is sufficient memory for two keys. */ - R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, ResultSettingsItemKeyAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, settings::ResultSettingsItemKeyAllocationFailed()); /* Create a map key from the key value store's name. */ MapKey map_key_header(m_name.value); @@ -1089,7 +1089,7 @@ namespace ams::settings::impl { /* Find an item map key with the name as a prefix. */ for (const auto &kv_pair : *map) { const MapKey &map_key = kv_pair.first; - + /* Check if the name map key is smaller than the current map key, and the current map key contains the name map key. */ if (map_key_header < map_key && map_key.Find(map_key_header)) { item_map_key = std::addressof(map_key); @@ -1098,12 +1098,12 @@ namespace ams::settings::impl { } /* Ensure we have located an item map key. */ - R_UNLESS(item_map_key != nullptr, ResultSettingsItemNotFound()); + R_UNLESS(item_map_key != nullptr, settings::ResultSettingsItemNotFound()); /* Ensure there is sufficient memory for the item map key. */ const size_t item_map_key_size = item_map_key->GetCount() + 1; - R_UNLESS(GetHeapAllocatableSize() >= item_map_key_size, ResultSettingsItemKeyIteratorAllocationFailed()); - + R_UNLESS(GetHeapAllocatableSize() >= item_map_key_size, settings::ResultSettingsItemKeyIteratorAllocationFailed()); + /* Allocate the key buffer. */ char *buffer = static_cast(AllocateFromHeap(item_map_key_size)); AMS_ASSERT(buffer != nullptr); @@ -1134,11 +1134,11 @@ namespace ams::settings::impl { AMS_ASSERT(map != nullptr); /* Ensure there is sufficient memory for two keys. */ - R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, ResultSettingsItemKeyAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, settings::ResultSettingsItemKeyAllocationFailed()); /* Find the key in the map. */ const Map::const_iterator it = map->find(MakeMapKey(m_name, item_key)); - R_UNLESS(it != map->end(), ResultSettingsItemNotFound()); + R_UNLESS(it != map->end(), settings::ResultSettingsItemNotFound()); /* Get the map value from the iterator. */ const MapValue &map_value = it->second; @@ -1170,11 +1170,11 @@ namespace ams::settings::impl { AMS_ASSERT(map != nullptr); /* Ensure there is sufficient memory for two keys. */ - R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, ResultSettingsItemKeyAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, settings::ResultSettingsItemKeyAllocationFailed()); /* Find the key in the map. */ const Map::const_iterator it = map->find(MakeMapKey(m_name, item_key)); - R_UNLESS(it != map->end(), ResultSettingsItemNotFound()); + R_UNLESS(it != map->end(), settings::ResultSettingsItemNotFound()); /* Output the value size. */ *out_value_size = it->second.current_value_size; @@ -1191,11 +1191,11 @@ namespace ams::settings::impl { AMS_ASSERT(map != nullptr); /* Ensure there is sufficient memory for two keys. */ - R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, ResultSettingsItemKeyAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, settings::ResultSettingsItemKeyAllocationFailed()); /* Find the key in the map. */ const Map::iterator it = map->find(MakeMapKey(m_name, item_key)); - R_UNLESS(it != map->end(), ResultSettingsItemNotFound()); + R_UNLESS(it != map->end(), settings::ResultSettingsItemNotFound()); /* Get the map value from the iterator. */ MapValue &map_value = it->second; @@ -1233,7 +1233,7 @@ namespace ams::settings::impl { Result KeyValueStore::SetValue(const SettingsItemKey &item_key, const void *buffer, size_t buffer_size) { /* Check preconditions. */ AMS_ASSERT(buffer != nullptr); - + /* Acquire exclusive access to global state. */ std::scoped_lock lk(g_key_value_store_mutex); @@ -1243,18 +1243,18 @@ namespace ams::settings::impl { AMS_ASSERT(map != nullptr); /* Ensure there is sufficient memory for two keys. */ - R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, ResultSettingsItemKeyAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, settings::ResultSettingsItemKeyAllocationFailed()); /* Find the key in the map. */ const Map::iterator it = map->find(MakeMapKey(m_name, item_key)); - R_UNLESS(it != map->end(), ResultSettingsItemNotFound()); + R_UNLESS(it != map->end(), settings::ResultSettingsItemNotFound()); /* Get the map value from the iterator. */ MapValue &map_value = it->second; /* Succeed if the map value is already set to the new value. */ R_SUCCEED_IF(CompareValue(map_value.current_value, map_value.current_value_size, buffer, buffer_size)); - + /* Define the value buffer and size variables. */ size_t value_size = buffer_size; void *value_buffer = nullptr; @@ -1264,7 +1264,7 @@ namespace ams::settings::impl { value_buffer = map_value.default_value; } else if (buffer_size > 0) { /* Allocate the new value if there is sufficient memory available. */ - R_UNLESS(GetHeapAllocatableSize() >= value_size, ResultSettingsItemValueAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= value_size, settings::ResultSettingsItemValueAllocationFailed()); value_buffer = AllocateFromHeap(value_size); AMS_ASSERT(value_buffer != nullptr); @@ -1302,7 +1302,7 @@ namespace ams::settings::impl { Result AddKeyValueStoreItemForDebug(const KeyValueStoreItemForDebug * const items, size_t items_count) { /* Check preconditions. */ AMS_ASSERT(items != nullptr); - + /* Acquire exclusive access to global state. */ std::scoped_lock lk(g_key_value_store_mutex); @@ -1323,7 +1323,7 @@ namespace ams::settings::impl { R_TRY(GetMapValueOfKeyValueStoreItemForDebug(std::addressof(map_value), item)); /* Ensure there is sufficient memory for two keys. */ - R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, ResultSettingsItemKeyAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, settings::ResultSettingsItemKeyAllocationFailed()); /* Create the map key. */ MapKey map_key(item.key); @@ -1337,8 +1337,8 @@ namespace ams::settings::impl { it->second = map_value; } else { /* Ensure there is sufficient memory for the value. */ - R_UNLESS(GetHeapAllocatableSize() >= MapEntryBufferSize, ResultSettingsItemValueAllocationFailed()); - + R_UNLESS(GetHeapAllocatableSize() >= MapEntryBufferSize, settings::ResultSettingsItemValueAllocationFailed()); + /* Assign the map value to the map key in the map. */ (*map)[std::move(map_key)] = map_value; } @@ -1367,24 +1367,24 @@ namespace ams::settings::impl { AMS_ASSERT(map != nullptr); /* Ensure there is sufficient memory for two keys. */ - R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, ResultSettingsItemKeyAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= MapKeyBufferSize, settings::ResultSettingsItemKeyAllocationFailed()); /* Locate the iterator's current key. */ Map::const_iterator it = map->find(MapKey(out->map_key, static_cast(out->entire_size) - 1)); - R_UNLESS(it != map->end(), ResultNotFoundSettingsItemKeyIterator()); + R_UNLESS(it != map->end(), settings::ResultNotFoundSettingsItemKeyIterator()); /* Increment the iterator, ensuring we aren't at the end of the map. */ - R_UNLESS((++it) != map->end(), ResultStopIteration()); + R_UNLESS((++it) != map->end(), settings::ResultStopIteration()); /* Get the map key. */ const MapKey &map_key = it->first; - + /* Ensure the advanced iterator retains the required name. */ - R_UNLESS(std::strncmp(map_key.GetString(), out->map_key, out->header_size) == 0, ResultStopIteration()); + R_UNLESS(std::strncmp(map_key.GetString(), out->map_key, out->header_size) == 0, settings::ResultStopIteration()); /* Ensure there is sufficient memory for the map key. */ const size_t map_key_size = map_key.GetCount() + 1; - R_UNLESS(GetHeapAllocatableSize() >= map_key_size, ResultSettingsItemKeyIteratorAllocationFailed()); + R_UNLESS(GetHeapAllocatableSize() >= map_key_size, settings::ResultSettingsItemKeyIteratorAllocationFailed()); /* Free the iterator's old map key. */ FreeToHeap(out->map_key, out->entire_size); @@ -1402,7 +1402,7 @@ namespace ams::settings::impl { return ResultSuccess(); } - + Result DestroyKeyValueStoreKeyIterator(KeyValueStoreKeyIterator *out) { /* Check preconditions. */ AMS_ASSERT(out != nullptr); @@ -1439,7 +1439,7 @@ namespace ams::settings::impl { *out_count = map->size(); return ResultSuccess(); } - + Result GetKeyValueStoreItemForDebug(u64 *out_count, KeyValueStoreItemForDebug * const out_items, size_t out_items_count) { /* Check preconditions. */ AMS_ASSERT(out_count != nullptr); @@ -1466,7 +1466,7 @@ namespace ams::settings::impl { break; } - /* Get the current item. */ + /* Get the current item. */ KeyValueStoreItemForDebug &item = out_items[count++]; /* Copy the map key and value to the item. */ @@ -1494,7 +1494,7 @@ namespace ams::settings::impl { /* Copy the key from the iterator to the output buffer. */ const size_t key_size = std::min(out_buffer_size, std::min(iterator.entire_size - iterator.header_size, SettingsItemKeyLengthMax + 1)); std::strncpy(out_buffer, iterator.map_key + iterator.header_size, key_size); - + /* Set the end of the key to null. */ if (key_size > 0) { out_buffer[key_size - 1] = '\x00'; diff --git a/libraries/libstratosphere/source/settings/impl/settings_key_value_store.hpp b/libraries/libstratosphere/source/settings/impl/settings_key_value_store.hpp index 92c4507ad..3c8a31f66 100644 --- a/libraries/libstratosphere/source/settings/impl/settings_key_value_store.hpp +++ b/libraries/libstratosphere/source/settings/impl/settings_key_value_store.hpp @@ -41,7 +41,7 @@ namespace ams::settings::impl { const SettingsName &m_name; public: explicit KeyValueStore(const SettingsName &name) : m_name(name) { /* ... */ } - + Result CreateKeyIterator(KeyValueStoreKeyIterator *out); Result GetValue(u64 *out_count, char *out_buffer, size_t out_buffer_size, const SettingsItemKey &item_key); Result GetValueSize(u64 *out_value_size, const SettingsItemKey &item_key); diff --git a/libraries/libstratosphere/source/settings/impl/settings_system_save_data.cpp b/libraries/libstratosphere/source/settings/impl/settings_system_save_data.cpp index ffa929596..1c3d88504 100644 --- a/libraries/libstratosphere/source/settings/impl/settings_system_save_data.cpp +++ b/libraries/libstratosphere/source/settings/impl/settings_system_save_data.cpp @@ -200,7 +200,7 @@ namespace ams::settings::impl { s64 file_size = 0; R_TRY(fs::GetFileSize(std::addressof(file_size), file)); AMS_ASSERT(0 <= file_size && file_size <= static_cast(sizeof(m_buffer))); - R_UNLESS(file_size <= static_cast(sizeof(m_buffer)), ResultTooLargeSystemSaveData()); + R_UNLESS(file_size <= static_cast(sizeof(m_buffer)), settings::ResultTooLargeSystemSaveData()); /* Read the save file. */ R_TRY(fs::ReadFile(file, 0, m_buffer, static_cast(file_size))); diff --git a/libraries/libstratosphere/source/updater/updater_api.cpp b/libraries/libstratosphere/source/updater/updater_api.cpp index 4b19acfce..95f65cb06 100644 --- a/libraries/libstratosphere/source/updater/updater_api.cpp +++ b/libraries/libstratosphere/source/updater/updater_api.cpp @@ -51,9 +51,9 @@ namespace ams::updater { /* Implementations. */ Result ValidateWorkBuffer(const void *work_buffer, size_t work_buffer_size) { - R_UNLESS(work_buffer_size >= BctSize + EksSize, ResultTooSmallWorkBuffer()); - R_UNLESS(util::IsAligned(work_buffer, os::MemoryPageSize), ResultNotAlignedWorkBuffer()); - R_UNLESS(util::IsAligned(work_buffer_size, 0x200), ResultNotAlignedWorkBuffer()); + R_UNLESS(work_buffer_size >= BctSize + EksSize, updater::ResultTooSmallWorkBuffer()); + R_UNLESS(util::IsAligned(work_buffer, os::MemoryPageSize), updater::ResultNotAlignedWorkBuffer()); + R_UNLESS(util::IsAligned(work_buffer_size, 0x200), updater::ResultNotAlignedWorkBuffer()); return ResultSuccess(); } @@ -144,7 +144,7 @@ namespace ams::updater { /* Mount the boot image package. */ const char *mount_name = GetMountName(); R_TRY_CATCH(fs::MountSystemData(mount_name, data_id)) { - R_CONVERT(fs::ResultTargetNotFound, ResultBootImagePackageNotFound()) + R_CONVERT(fs::ResultTargetNotFound, updater::ResultBootImagePackageNotFound()) } R_END_TRY_CATCH; ON_SCOPE_EXIT { fs::Unmount(mount_name); }; @@ -202,7 +202,7 @@ namespace ams::updater { /* Mount the boot image package. */ const char *mount_name = GetMountName(); R_TRY_CATCH(fs::MountSystemData(mount_name, data_id)) { - R_CONVERT(fs::ResultTargetNotFound, ResultBootImagePackageNotFound()) + R_CONVERT(fs::ResultTargetNotFound, updater::ResultBootImagePackageNotFound()) } R_END_TRY_CATCH; ON_SCOPE_EXIT { fs::Unmount(mount_name); }; @@ -264,7 +264,7 @@ namespace ams::updater { /* Mount the boot image package. */ const char *mount_name = GetMountName(); R_TRY_CATCH(fs::MountSystemData(mount_name, data_id)) { - R_CONVERT(fs::ResultTargetNotFound, ResultBootImagePackageNotFound()) + R_CONVERT(fs::ResultTargetNotFound, updater::ResultBootImagePackageNotFound()) } R_END_TRY_CATCH; ON_SCOPE_EXIT { fs::Unmount(mount_name); }; @@ -330,7 +330,7 @@ namespace ams::updater { /* Mount the boot image package. */ const char *mount_name = GetMountName(); R_TRY_CATCH(fs::MountSystemData(mount_name, data_id)) { - R_CONVERT(fs::ResultTargetNotFound, ResultBootImagePackageNotFound()) + R_CONVERT(fs::ResultTargetNotFound, updater::ResultBootImagePackageNotFound()) } R_END_TRY_CATCH; ON_SCOPE_EXIT { fs::Unmount(mount_name); }; @@ -450,7 +450,7 @@ namespace ams::updater { } Result CompareHash(const void *lhs, const void *rhs, size_t size) { - R_UNLESS(crypto::IsSameBytes(lhs, rhs, size), ResultNeedsRepairBootImages()); + R_UNLESS(crypto::IsSameBytes(lhs, rhs, size), updater::ResultNeedsRepairBootImages()); return ResultSuccess(); } @@ -493,7 +493,7 @@ namespace ams::updater { const auto content_meta_type = GetContentMetaType(mode); auto count = db.ListContentMeta(keys, MaxContentMetas, content_meta_type); - R_UNLESS(count.total > 0, ResultBootImagePackageNotFound()); + R_UNLESS(count.total > 0, updater::ResultBootImagePackageNotFound()); /* Output is sorted, return the lowest valid exfat entry. */ if (count.total > 1) { diff --git a/libraries/libstratosphere/source/updater/updater_bis_management.cpp b/libraries/libstratosphere/source/updater/updater_bis_management.cpp index 7dc005d86..5dc96ee79 100644 --- a/libraries/libstratosphere/source/updater/updater_bis_management.cpp +++ b/libraries/libstratosphere/source/updater/updater_bis_management.cpp @@ -72,7 +72,7 @@ namespace ams::updater { fs::FileHandle file; R_TRY_CATCH(fs::OpenFile(std::addressof(file), bip_path, fs::OpenMode_Read)) { - R_CONVERT(fs::ResultPathNotFound, ResultInvalidBootImagePackage()) + R_CONVERT(fs::ResultPathNotFound, updater::ResultInvalidBootImagePackage()) } R_END_TRY_CATCH; ON_SCOPE_EXIT { fs::CloseFile(file); }; diff --git a/libraries/libstratosphere/source/updater/updater_files.cpp b/libraries/libstratosphere/source/updater/updater_files.cpp index 3572a22ee..5ec086c46 100644 --- a/libraries/libstratosphere/source/updater/updater_files.cpp +++ b/libraries/libstratosphere/source/updater/updater_files.cpp @@ -22,7 +22,7 @@ namespace ams::updater { /* Open the file. */ fs::FileHandle file; R_TRY_CATCH(fs::OpenFile(std::addressof(file), path, fs::OpenMode_Read)) { - R_CONVERT(fs::ResultPathNotFound, ResultInvalidBootImagePackage()) + R_CONVERT(fs::ResultPathNotFound, updater::ResultInvalidBootImagePackage()) } R_END_TRY_CATCH; ON_SCOPE_EXIT { fs::CloseFile(file); }; @@ -34,7 +34,7 @@ namespace ams::updater { /* Open the file. */ fs::FileHandle file; R_TRY_CATCH(fs::OpenFile(std::addressof(file), path, fs::OpenMode_Read)) { - R_CONVERT(fs::ResultPathNotFound, ResultInvalidBootImagePackage()) + R_CONVERT(fs::ResultPathNotFound, updater::ResultInvalidBootImagePackage()) } R_END_TRY_CATCH; ON_SCOPE_EXIT { fs::CloseFile(file); }; diff --git a/stratosphere/ams_mitm/source/set_mitm/settings_sd_kvs.cpp b/stratosphere/ams_mitm/source/set_mitm/settings_sd_kvs.cpp index 0ecee3086..3f7fe59b7 100644 --- a/stratosphere/ams_mitm/source/set_mitm/settings_sd_kvs.cpp +++ b/stratosphere/ams_mitm/source/set_mitm/settings_sd_kvs.cpp @@ -122,25 +122,25 @@ namespace ams::settings::fwdbg { } Result ValidateSettingsName(const char *name) { - R_UNLESS(name != nullptr, ResultNullSettingsName()); + R_UNLESS(name != nullptr, settings::ResultNullSettingsName()); const size_t len = strnlen(name, SettingsNameLengthMax + 1); - R_UNLESS(len > 0, ResultEmptySettingsName()); - R_UNLESS(len <= SettingsNameLengthMax, ResultTooLongSettingsName()); - R_UNLESS(IsValidSettingsFormat(name, len), ResultInvalidFormatSettingsName()); + R_UNLESS(len > 0, settings::ResultEmptySettingsName()); + R_UNLESS(len <= SettingsNameLengthMax, settings::ResultTooLongSettingsName()); + R_UNLESS(IsValidSettingsFormat(name, len), settings::ResultInvalidFormatSettingsName()); return ResultSuccess(); } Result ValidateSettingsItemKey(const char *key) { - R_UNLESS(key != nullptr, ResultNullSettingsName()); + R_UNLESS(key != nullptr, settings::ResultNullSettingsName()); const size_t len = strnlen(key, SettingsItemKeyLengthMax + 1); - R_UNLESS(len > 0, ResultEmptySettingsItemKey()); - R_UNLESS(len <= SettingsNameLengthMax, ResultTooLongSettingsItemKey()); - R_UNLESS(IsValidSettingsFormat(key, len), ResultInvalidFormatSettingsItemKey()); + R_UNLESS(len > 0, settings::ResultEmptySettingsItemKey()); + R_UNLESS(len <= SettingsNameLengthMax, settings::ResultTooLongSettingsItemKey()); + R_UNLESS(IsValidSettingsFormat(key, len), settings::ResultInvalidFormatSettingsItemKey()); return ResultSuccess(); } Result AllocateValue(void **out, size_t size) { - R_UNLESS(g_allocated_value_storage_size + size <= sizeof(g_value_storage), ResultSettingsItemValueAllocationFailed()); + R_UNLESS(g_allocated_value_storage_size + size <= sizeof(g_value_storage), settings::ResultSettingsItemValueAllocationFailed()); *out = g_value_storage + g_allocated_value_storage_size; g_allocated_value_storage_size += size; @@ -158,7 +158,7 @@ namespace ams::settings::fwdbg { return ResultSuccess(); } } - return ResultSettingsItemKeyAllocationFailed(); + return settings::ResultSettingsItemKeyAllocationFailed(); } Result FindSettingsItemKey(const char **out, const char *key) { @@ -172,7 +172,7 @@ namespace ams::settings::fwdbg { return ResultSuccess(); } } - return ResultSettingsItemKeyAllocationFailed(); + return settings::ResultSettingsItemKeyAllocationFailed(); } template @@ -196,8 +196,8 @@ namespace ams::settings::fwdbg { auto *begin = g_entries; auto *end = begin + g_num_entries; auto it = std::lower_bound(begin, end, test_entry); - R_UNLESS(it != end, ResultSettingsItemNotFound()); - R_UNLESS(*it == test_entry, ResultSettingsItemNotFound()); + R_UNLESS(it != end, settings::ResultSettingsItemNotFound()); + R_UNLESS(*it == test_entry, settings::ResultSettingsItemNotFound()); *out = &*it; return ResultSuccess(); @@ -208,7 +208,7 @@ namespace ams::settings::fwdbg { const char *value_str = delimiter + 1; const char *type = val_tup; - R_UNLESS(delimiter != nullptr, ResultInvalidFormatSettingsItemValue()); + R_UNLESS(delimiter != nullptr, settings::ResultInvalidFormatSettingsItemValue()); while (std::isspace(static_cast(*type)) && type != delimiter) { type++; @@ -216,8 +216,8 @@ namespace ams::settings::fwdbg { const size_t type_len = delimiter - type; const size_t value_len = strlen(value_str); - R_UNLESS(type_len > 0, ResultInvalidFormatSettingsItemValue()); - R_UNLESS(value_len > 0, ResultInvalidFormatSettingsItemValue()); + R_UNLESS(type_len > 0, settings::ResultInvalidFormatSettingsItemValue()); + R_UNLESS(value_len > 0, settings::ResultInvalidFormatSettingsItemValue()); /* Create new value. */ SdKeyValueStoreEntry new_value = {}; @@ -232,9 +232,9 @@ namespace ams::settings::fwdbg { std::memcpy(new_value.value, value_str, size); new_value.value_size = size; } else if (strncasecmp(type, "hex", type_len) == 0 || strncasecmp(type, "bytes", type_len) == 0) { - R_UNLESS(value_len > 0, ResultInvalidFormatSettingsItemValue()); - R_UNLESS(value_len % 2 == 0, ResultInvalidFormatSettingsItemValue()); - R_UNLESS(IsHexadecimal(value_str), ResultInvalidFormatSettingsItemValue()); + R_UNLESS(value_len > 0, settings::ResultInvalidFormatSettingsItemValue()); + R_UNLESS(value_len % 2 == 0, settings::ResultInvalidFormatSettingsItemValue()); + R_UNLESS(IsHexadecimal(value_str), settings::ResultInvalidFormatSettingsItemValue()); const size_t size = value_len / 2; R_TRY(AllocateValue(&new_value.value, size)); @@ -253,7 +253,7 @@ namespace ams::settings::fwdbg { } else if (strncasecmp(type, "u64", type_len) == 0) { R_TRY((ParseSettingsItemIntegralValue(new_value, value_str))); } else { - return ResultInvalidFormatSettingsItemValue(); + return settings::ResultInvalidFormatSettingsItemValue(); } /* Insert the entry. */ @@ -266,7 +266,7 @@ namespace ams::settings::fwdbg { } } - R_UNLESS(inserted, ResultSettingsItemValueAllocationFailed()); + R_UNLESS(inserted, settings::ResultSettingsItemValueAllocationFailed()); return ResultSuccess(); } @@ -429,7 +429,7 @@ namespace ams::settings::fwdbg { } Result GetSdCardKeyValueStoreSettingsItemValue(size_t *out_size, void *dst, size_t dst_size, const char *name, const char *key) { - R_UNLESS(dst != nullptr, ResultNullSettingsItemValueBuffer()); + R_UNLESS(dst != nullptr, settings::ResultNullSettingsItemValueBuffer()); SdKeyValueStoreEntry *entry = nullptr; R_TRY(GetEntry(&entry, name, key)); diff --git a/stratosphere/creport/source/creport_crash_report.cpp b/stratosphere/creport/source/creport_crash_report.cpp index 027e920d1..262191377 100644 --- a/stratosphere/creport/source/creport_crash_report.cpp +++ b/stratosphere/creport/source/creport_crash_report.cpp @@ -229,29 +229,29 @@ namespace ams::creport { void CrashReport::HandleDebugEventInfoException(const svc::DebugEventInfo &d) { switch (d.info.exception.type) { case svc::DebugException_UndefinedInstruction: - this->result = ResultUndefinedInstruction(); + this->result = creport::ResultUndefinedInstruction(); break; case svc::DebugException_InstructionAbort: - this->result = ResultInstructionAbort(); + this->result = creport::ResultInstructionAbort(); break; case svc::DebugException_DataAbort: - this->result = ResultDataAbort(); + this->result = creport::ResultDataAbort(); break; case svc::DebugException_AlignmentFault: - this->result = ResultAlignmentFault(); + this->result = creport::ResultAlignmentFault(); break; case svc::DebugException_UserBreak: - this->result = ResultUserBreak(); + this->result = creport::ResultUserBreak(); /* Try to parse out the user break result. */ if (hos::GetVersion() >= hos::Version_5_0_0) { svc::ReadDebugProcessMemory(reinterpret_cast(std::addressof(this->result)), this->debug_handle, d.info.exception.specific.user_break.address, sizeof(this->result)); } break; case svc::DebugException_UndefinedSystemCall: - this->result = ResultUndefinedSystemCall(); + this->result = creport::ResultUndefinedSystemCall(); break; case svc::DebugException_MemorySystemError: - this->result = ResultMemorySystemError(); + this->result = creport::ResultMemorySystemError(); break; case svc::DebugException_DebuggerAttached: case svc::DebugException_BreakPoint: diff --git a/stratosphere/creport/source/creport_crash_report.hpp b/stratosphere/creport/source/creport_crash_report.hpp index e164111fa..0ed1ff2e4 100644 --- a/stratosphere/creport/source/creport_crash_report.hpp +++ b/stratosphere/creport/source/creport_crash_report.hpp @@ -27,7 +27,7 @@ namespace ams::creport { private: os::NativeHandle debug_handle = os::InvalidNativeHandle; bool has_extra_info = true; - Result result = ResultIncompleteReport(); + Result result = creport::ResultIncompleteReport(); /* Meta, used for building module/thread list. */ ThreadTlsMap thread_tls_map = {}; diff --git a/stratosphere/dmnt/source/cheat/dmnt_cheat_service.cpp b/stratosphere/dmnt/source/cheat/dmnt_cheat_service.cpp index 387bf84f0..2d3aa5f3b 100644 --- a/stratosphere/dmnt/source/cheat/dmnt_cheat_service.cpp +++ b/stratosphere/dmnt/source/cheat/dmnt_cheat_service.cpp @@ -36,7 +36,7 @@ namespace ams::dmnt::cheat { } Result CheatService::ForceOpenCheatProcess() { - R_UNLESS(R_SUCCEEDED(dmnt::cheat::impl::ForceOpenCheatProcess()), ResultCheatNotAttached()); + R_UNLESS(R_SUCCEEDED(dmnt::cheat::impl::ForceOpenCheatProcess()), dmnt::cheat::ResultCheatNotAttached()); return ResultSuccess(); } @@ -61,17 +61,17 @@ namespace ams::dmnt::cheat { } Result CheatService::GetCheatProcessMappings(const sf::OutArray &mappings, sf::Out out_count, u64 offset) { - R_UNLESS(mappings.GetPointer() != nullptr, ResultCheatNullBuffer()); + R_UNLESS(mappings.GetPointer() != nullptr, dmnt::cheat::ResultCheatNullBuffer()); return dmnt::cheat::impl::GetCheatProcessMappings(mappings.GetPointer(), mappings.GetSize(), out_count.GetPointer(), offset); } Result CheatService::ReadCheatProcessMemory(const sf::OutBuffer &buffer, u64 address, u64 out_size) { - R_UNLESS(buffer.GetPointer() != nullptr, ResultCheatNullBuffer()); + R_UNLESS(buffer.GetPointer() != nullptr, dmnt::cheat::ResultCheatNullBuffer()); return dmnt::cheat::impl::ReadCheatProcessMemory(address, buffer.GetPointer(), std::min(out_size, buffer.GetSize())); } Result CheatService::WriteCheatProcessMemory(const sf::InBuffer &buffer, u64 address, u64 in_size) { - R_UNLESS(buffer.GetPointer() != nullptr, ResultCheatNullBuffer()); + R_UNLESS(buffer.GetPointer() != nullptr, dmnt::cheat::ResultCheatNullBuffer()); return dmnt::cheat::impl::WriteCheatProcessMemory(address, buffer.GetPointer(), std::min(in_size, buffer.GetSize())); } @@ -88,7 +88,7 @@ namespace ams::dmnt::cheat { } Result CheatService::GetCheats(const sf::OutArray &cheats, sf::Out out_count, u64 offset) { - R_UNLESS(cheats.GetPointer() != nullptr, ResultCheatNullBuffer()); + R_UNLESS(cheats.GetPointer() != nullptr, dmnt::cheat::ResultCheatNullBuffer()); return dmnt::cheat::impl::GetCheats(cheats.GetPointer(), cheats.GetSize(), out_count.GetPointer(), offset); } @@ -133,7 +133,7 @@ namespace ams::dmnt::cheat { } Result CheatService::GetFrozenAddresses(const sf::OutArray &addresses, sf::Out out_count, u64 offset) { - R_UNLESS(addresses.GetPointer() != nullptr, ResultCheatNullBuffer()); + R_UNLESS(addresses.GetPointer() != nullptr, dmnt::cheat::ResultCheatNullBuffer()); return dmnt::cheat::impl::GetFrozenAddresses(addresses.GetPointer(), addresses.GetSize(), out_count.GetPointer(), offset); } @@ -143,9 +143,9 @@ namespace ams::dmnt::cheat { Result CheatService::EnableFrozenAddress(sf::Out out_value, u64 address, u64 width) { /* Width needs to be a power of two <= 8. */ - R_UNLESS(width > 0, ResultFrozenAddressInvalidWidth()); - R_UNLESS(width <= sizeof(u64), ResultFrozenAddressInvalidWidth()); - R_UNLESS((width & (width - 1)) == 0, ResultFrozenAddressInvalidWidth()); + R_UNLESS(width > 0, dmnt::cheat::ResultFrozenAddressInvalidWidth()); + R_UNLESS(width <= sizeof(u64), dmnt::cheat::ResultFrozenAddressInvalidWidth()); + R_UNLESS((width & (width - 1)) == 0, dmnt::cheat::ResultFrozenAddressInvalidWidth()); return dmnt::cheat::impl::EnableFrozenAddress(out_value.GetPointer(), address, width); } diff --git a/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_api.cpp b/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_api.cpp index 2e2fdc274..15596e9bc 100644 --- a/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_api.cpp +++ b/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_api.cpp @@ -231,7 +231,7 @@ namespace ams::dmnt::cheat::impl { } Result EnsureCheatProcess() { - R_UNLESS(this->HasActiveCheatProcess(), ResultCheatNotAttached()); + R_UNLESS(this->HasActiveCheatProcess(), dmnt::cheat::ResultCheatNotAttached()); return ResultSuccess(); } @@ -480,8 +480,8 @@ namespace ams::dmnt::cheat::impl { R_TRY(this->EnsureCheatProcess()); const CheatEntry *entry = this->GetCheatEntryById(cheat_id); - R_UNLESS(entry != nullptr, ResultCheatUnknownId()); - R_UNLESS(entry->definition.num_opcodes != 0, ResultCheatUnknownId()); + R_UNLESS(entry != nullptr, dmnt::cheat::ResultCheatUnknownId()); + R_UNLESS(entry->definition.num_opcodes != 0, dmnt::cheat::ResultCheatUnknownId()); *out_cheat = *entry; return ResultSuccess(); @@ -493,10 +493,10 @@ namespace ams::dmnt::cheat::impl { R_TRY(this->EnsureCheatProcess()); CheatEntry *entry = this->GetCheatEntryById(cheat_id); - R_UNLESS(entry != nullptr, ResultCheatUnknownId()); - R_UNLESS(entry->definition.num_opcodes != 0, ResultCheatUnknownId()); + R_UNLESS(entry != nullptr, dmnt::cheat::ResultCheatUnknownId()); + R_UNLESS(entry->definition.num_opcodes != 0, dmnt::cheat::ResultCheatUnknownId()); - R_UNLESS(cheat_id != 0, ResultCheatCannotDisable()); + R_UNLESS(cheat_id != 0, dmnt::cheat::ResultCheatCannotDisable()); entry->enabled = !entry->enabled; @@ -511,11 +511,11 @@ namespace ams::dmnt::cheat::impl { R_TRY(this->EnsureCheatProcess()); - R_UNLESS(def.num_opcodes != 0, ResultCheatInvalid()); - R_UNLESS(def.num_opcodes <= util::size(def.opcodes), ResultCheatInvalid()); + R_UNLESS(def.num_opcodes != 0, dmnt::cheat::ResultCheatInvalid()); + R_UNLESS(def.num_opcodes <= util::size(def.opcodes), dmnt::cheat::ResultCheatInvalid()); CheatEntry *new_entry = this->GetFreeCheatEntry(); - R_UNLESS(new_entry != nullptr, ResultCheatOutOfResource()); + R_UNLESS(new_entry != nullptr, dmnt::cheat::ResultCheatOutOfResource()); new_entry->enabled = enabled; new_entry->definition = def; @@ -533,7 +533,7 @@ namespace ams::dmnt::cheat::impl { std::scoped_lock lk(this->cheat_lock); R_TRY(this->EnsureCheatProcess()); - R_UNLESS(cheat_id < MaxCheatCount, ResultCheatUnknownId()); + R_UNLESS(cheat_id < MaxCheatCount, dmnt::cheat::ResultCheatUnknownId()); this->ResetCheatEntry(cheat_id); @@ -548,8 +548,8 @@ namespace ams::dmnt::cheat::impl { R_TRY(this->EnsureCheatProcess()); - R_UNLESS(def.num_opcodes != 0, ResultCheatInvalid()); - R_UNLESS(def.num_opcodes <= util::size(def.opcodes), ResultCheatInvalid()); + R_UNLESS(def.num_opcodes != 0, dmnt::cheat::ResultCheatInvalid()); + R_UNLESS(def.num_opcodes <= util::size(def.opcodes), dmnt::cheat::ResultCheatInvalid()); CheatEntry *master_entry = this->cheat_entries + 0; @@ -566,7 +566,7 @@ namespace ams::dmnt::cheat::impl { std::scoped_lock lk(this->cheat_lock); R_TRY(this->EnsureCheatProcess()); - R_UNLESS(which < CheatVirtualMachine::NumStaticRegisters, ResultCheatInvalid()); + R_UNLESS(which < CheatVirtualMachine::NumStaticRegisters, dmnt::cheat::ResultCheatInvalid()); *out = this->cheat_vm.GetStaticRegister(which); return ResultSuccess(); @@ -576,7 +576,7 @@ namespace ams::dmnt::cheat::impl { std::scoped_lock lk(this->cheat_lock); R_TRY(this->EnsureCheatProcess()); - R_UNLESS(which < CheatVirtualMachine::NumStaticRegisters, ResultCheatInvalid()); + R_UNLESS(which < CheatVirtualMachine::NumStaticRegisters, dmnt::cheat::ResultCheatInvalid()); this->cheat_vm.SetStaticRegister(which, value); return ResultSuccess(); @@ -629,7 +629,7 @@ namespace ams::dmnt::cheat::impl { R_TRY(this->EnsureCheatProcess()); const auto it = this->frozen_addresses_map.find_key(address); - R_UNLESS(it != this->frozen_addresses_map.end(), ResultFrozenAddressNotFound()); + R_UNLESS(it != this->frozen_addresses_map.end(), dmnt::cheat::ResultFrozenAddressNotFound()); frz_addr->address = it->GetAddress(); frz_addr->value = it->GetValue(); @@ -642,14 +642,14 @@ namespace ams::dmnt::cheat::impl { R_TRY(this->EnsureCheatProcess()); const auto it = this->frozen_addresses_map.find_key(address); - R_UNLESS(it == this->frozen_addresses_map.end(), ResultFrozenAddressAlreadyExists()); + R_UNLESS(it == this->frozen_addresses_map.end(), dmnt::cheat::ResultFrozenAddressAlreadyExists()); FrozenAddressValue value = {}; value.width = width; R_TRY(this->ReadCheatProcessMemoryUnsafe(address, &value.value, width)); FrozenAddressMapEntry *entry = AllocateFrozenAddress(address, value); - R_UNLESS(entry != nullptr, ResultFrozenAddressOutOfResource()); + R_UNLESS(entry != nullptr, dmnt::cheat::ResultFrozenAddressOutOfResource()); this->frozen_addresses_map.insert(*entry); *out_value = value.value; @@ -662,7 +662,7 @@ namespace ams::dmnt::cheat::impl { R_TRY(this->EnsureCheatProcess()); const auto it = this->frozen_addresses_map.find_key(address); - R_UNLESS(it != this->frozen_addresses_map.end(), ResultFrozenAddressNotFound()); + R_UNLESS(it != this->frozen_addresses_map.end(), dmnt::cheat::ResultFrozenAddressNotFound()); FrozenAddressMapEntry *entry = std::addressof(*it); this->frozen_addresses_map.erase(it); @@ -820,7 +820,7 @@ namespace ams::dmnt::cheat::impl { /* If new process launch, we may not want to actually attach. */ if (on_process_launch) { - R_UNLESS(status.IsCheatEnabled(), ResultCheatNotAttached()); + R_UNLESS(status.IsCheatEnabled(), dmnt::cheat::ResultCheatNotAttached()); } } @@ -841,7 +841,7 @@ namespace ams::dmnt::cheat::impl { } else if (num_modules == 1 && !on_process_launch) { proc_module = &proc_modules[0]; } else { - return ResultCheatNotAttached(); + return dmnt::cheat::ResultCheatNotAttached(); } this->cheat_process_metadata.main_nso_extents.base = proc_module->base_address; @@ -853,7 +853,7 @@ namespace ams::dmnt::cheat::impl { if (!this->LoadCheats(this->cheat_process_metadata.program_id, this->cheat_process_metadata.main_nso_build_id) || !this->LoadCheatToggles(this->cheat_process_metadata.program_id)) { /* If new process launch, require success. */ - R_UNLESS(!on_process_launch, ResultCheatNotAttached()); + R_UNLESS(!on_process_launch, dmnt::cheat::ResultCheatNotAttached()); } /* Open a debug handle. */ diff --git a/stratosphere/fatal/source/fatal_event_manager.cpp b/stratosphere/fatal/source/fatal_event_manager.cpp index e22474640..b50351b08 100644 --- a/stratosphere/fatal/source/fatal_event_manager.cpp +++ b/stratosphere/fatal/source/fatal_event_manager.cpp @@ -29,7 +29,7 @@ namespace ams::fatal::srv { std::scoped_lock lk{this->lock}; /* Only allow GetEvent to succeed NumFatalEvents times. */ - R_UNLESS(this->num_events_gotten < FatalEventManager::NumFatalEvents, ResultTooManyEvents()); + R_UNLESS(this->num_events_gotten < FatalEventManager::NumFatalEvents, fatal::ResultTooManyEvents()); *out = std::addressof(this->events[this->num_events_gotten++]); return ResultSuccess(); diff --git a/stratosphere/fatal/source/fatal_service.cpp b/stratosphere/fatal/source/fatal_service.cpp index f978f0ce8..f479713e0 100644 --- a/stratosphere/fatal/source/fatal_service.cpp +++ b/stratosphere/fatal/source/fatal_service.cpp @@ -35,7 +35,7 @@ namespace ams::fatal::srv { bool has_thrown; private: Result TrySetHasThrown() { - R_UNLESS(!this->has_thrown, ResultAlreadyThrown()); + R_UNLESS(!this->has_thrown, fatal::ResultAlreadyThrown()); this->has_thrown = true; return ResultSuccess(); } diff --git a/stratosphere/loader/source/ldr_loader_service.cpp b/stratosphere/loader/source/ldr_loader_service.cpp index 6ca2806e3..96747115c 100644 --- a/stratosphere/loader/source/ldr_loader_service.cpp +++ b/stratosphere/loader/source/ldr_loader_service.cpp @@ -107,7 +107,7 @@ namespace ams::ldr { } Result LoaderService::GetProcessModuleInfo(sf::Out count, const sf::OutPointerArray &out, os::ProcessId process_id) { - R_UNLESS(out.GetSize() <= std::numeric_limits::max(), ResultInvalidSize()); + R_UNLESS(out.GetSize() <= std::numeric_limits::max(), ldr::ResultInvalidSize()); return ldr::ro::GetProcessModuleInfo(count.GetPointer(), out.GetPointer(), out.GetSize(), process_id); } diff --git a/stratosphere/loader/source/ldr_meta.cpp b/stratosphere/loader/source/ldr_meta.cpp index 65a5cec62..696b84398 100644 --- a/stratosphere/loader/source/ldr_meta.cpp +++ b/stratosphere/loader/source/ldr_meta.cpp @@ -43,16 +43,16 @@ namespace ams::ldr { /* Helpers. */ Result ValidateSubregion(size_t allowed_start, size_t allowed_end, size_t start, size_t size, size_t min_size = 0) { - R_UNLESS(size >= min_size, ResultInvalidMeta()); - R_UNLESS(allowed_start <= start, ResultInvalidMeta()); - R_UNLESS(start <= allowed_end, ResultInvalidMeta()); - R_UNLESS(start + size <= allowed_end, ResultInvalidMeta()); + R_UNLESS(size >= min_size, ldr::ResultInvalidMeta()); + R_UNLESS(allowed_start <= start, ldr::ResultInvalidMeta()); + R_UNLESS(start <= allowed_end, ldr::ResultInvalidMeta()); + R_UNLESS(start + size <= allowed_end, ldr::ResultInvalidMeta()); return ResultSuccess(); } Result ValidateNpdm(const Npdm *npdm, size_t size) { /* Validate magic. */ - R_UNLESS(npdm->magic == Npdm::Magic, ResultInvalidMeta()); + R_UNLESS(npdm->magic == Npdm::Magic, ldr::ResultInvalidMeta()); /* Validate flags. */ u32 mask; @@ -69,7 +69,7 @@ namespace ams::ldr { /* We set the "DisableDeviceAddressSpaceMerge" bit on all versions, so be permissive with it. */ mask &= ~0x20; - R_UNLESS(!(npdm->flags & mask), ResultInvalidMeta()); + R_UNLESS(!(npdm->flags & mask), ldr::ResultInvalidMeta()); /* Validate Acid extents. */ R_TRY(ValidateSubregion(sizeof(Npdm), size, npdm->acid_offset, npdm->acid_size, sizeof(Acid))); @@ -82,11 +82,11 @@ namespace ams::ldr { Result ValidateAcid(const Acid *acid, size_t size) { /* Validate magic. */ - R_UNLESS(acid->magic == Acid::Magic, ResultInvalidMeta()); + R_UNLESS(acid->magic == Acid::Magic, ldr::ResultInvalidMeta()); /* Validate that the acid is for production if not development. */ if (!IsDevelopmentForAcidProductionCheck()) { - R_UNLESS((acid->flags & Acid::AcidFlag_Production) != 0, ResultInvalidMeta()); + R_UNLESS((acid->flags & Acid::AcidFlag_Production) != 0, ldr::ResultInvalidMeta()); } /* Validate Fac, Sac, Kac. */ @@ -99,7 +99,7 @@ namespace ams::ldr { Result ValidateAci(const Aci *aci, size_t size) { /* Validate magic. */ - R_UNLESS(aci->magic == Aci::Magic, ResultInvalidMeta()); + R_UNLESS(aci->magic == Aci::Magic, ldr::ResultInvalidMeta()); /* Validate Fah, Sac, Kac. */ R_TRY(ValidateSubregion(sizeof(Aci), size, aci->fah_offset, aci->fah_size)); @@ -130,7 +130,7 @@ namespace ams::ldr { const u8 *msg = meta->acid->modulus; const size_t msg_size = meta->acid->size; const bool is_signature_valid = crypto::VerifyRsa2048PssSha256(sig, sig_size, mod, mod_size, exp, exp_size, msg, msg_size); - R_UNLESS(is_signature_valid || !IsEnabledProgramVerification(), ResultInvalidAcidSignature()); + R_UNLESS(is_signature_valid || !IsEnabledProgramVerification(), ldr::ResultInvalidAcidSignature()); meta->check_verification_data = is_signature_valid; return ResultSuccess(); @@ -147,12 +147,12 @@ namespace ams::ldr { R_TRY(fs::GetFileSize(std::addressof(npdm_size), file)); /* Read data into cache buffer. */ - R_UNLESS(npdm_size <= static_cast(MetaCacheBufferSize), ResultTooLargeMeta()); + R_UNLESS(npdm_size <= static_cast(MetaCacheBufferSize), ldr::ResultTooLargeMeta()); R_TRY(fs::ReadFile(file, 0, cache->buffer, npdm_size)); } /* Ensure size is big enough. */ - R_UNLESS(npdm_size >= static_cast(sizeof(Npdm)), ResultInvalidMeta()); + R_UNLESS(npdm_size >= static_cast(sizeof(Npdm)), ldr::ResultInvalidMeta()); /* Validate the meta. */ { diff --git a/stratosphere/loader/source/ldr_process_creation.cpp b/stratosphere/loader/source/ldr_process_creation.cpp index 6283ec722..fc8371775 100644 --- a/stratosphere/loader/source/ldr_process_creation.cpp +++ b/stratosphere/loader/source/ldr_process_creation.cpp @@ -120,7 +120,7 @@ namespace ams::ldr { for (size_t i = 0; i < num_entries; i++) { if (entries[i].program_id == program_id) { - R_UNLESS(entries[i].version <= version, ResultInvalidVersion()); + R_UNLESS(entries[i].version <= version, ldr::ResultInvalidVersion()); } } #else @@ -142,7 +142,7 @@ namespace ams::ldr { #define COPY_ACCESS_CONTROL(source, which) \ ({ \ const size_t size = meta->source->which##_size; \ - R_UNLESS(offset + size <= sizeof(out->ac_buffer), ResultInternalError()); \ + R_UNLESS(offset + size <= sizeof(out->ac_buffer), ldr::ResultInternalError()); \ out->source##_##which##_size = size; \ std::memcpy(out->ac_buffer + offset, meta->source##_##which, size); \ offset += size; \ @@ -189,7 +189,7 @@ namespace ams::ldr { /* Read NSO header. */ size_t read_size; R_TRY(fs::ReadFile(std::addressof(read_size), file, 0, nso_headers + i, sizeof(*nso_headers))); - R_UNLESS(read_size == sizeof(*nso_headers), ResultInvalidNso()); + R_UNLESS(read_size == sizeof(*nso_headers), ldr::ResultInvalidNso()); has_nso[i] = true; } @@ -200,18 +200,18 @@ namespace ams::ldr { Result ValidateNsoHeaders(const NsoHeader *nso_headers, const bool *has_nso) { /* We must always have a main. */ - R_UNLESS(has_nso[Nso_Main], ResultInvalidNso()); + R_UNLESS(has_nso[Nso_Main], ldr::ResultInvalidNso()); /* If we don't have an RTLD, we must only have a main. */ if (!has_nso[Nso_Rtld]) { for (size_t i = Nso_Main + 1; i < Nso_Count; i++) { - R_UNLESS(!has_nso[i], ResultInvalidNso()); + R_UNLESS(!has_nso[i], ldr::ResultInvalidNso()); } } /* All NSOs must have zero text offset. */ for (size_t i = 0; i < Nso_Count; i++) { - R_UNLESS(nso_headers[i].text_dst_offset == 0, ResultInvalidNso()); + R_UNLESS(nso_headers[i].text_dst_offset == 0, ldr::ResultInvalidNso()); } return ResultSuccess(); @@ -222,8 +222,8 @@ namespace ams::ldr { R_TRY(ValidateProgramVersion(loc.program_id, meta->npdm->version)); /* Validate program id. */ - R_UNLESS(meta->aci->program_id >= meta->acid->program_id_min, ResultInvalidProgramId()); - R_UNLESS(meta->aci->program_id <= meta->acid->program_id_max, ResultInvalidProgramId()); + R_UNLESS(meta->aci->program_id >= meta->acid->program_id_min, ldr::ResultInvalidProgramId()); + R_UNLESS(meta->aci->program_id <= meta->acid->program_id_max, ldr::ResultInvalidProgramId()); /* Validate the kernel capabilities. */ R_TRY(caps::ValidateCapabilities(meta->acid_kac, meta->acid->kac_size, meta->aci_kac, meta->aci->kac_size)); @@ -240,7 +240,7 @@ namespace ams::ldr { const size_t hsh_size = sizeof(code_verification_data.target_hash); const bool is_signature_valid = crypto::VerifyRsa2048PssSha256WithHash(sig, sig_size, mod, mod_size, exp, exp_size, hsh, hsh_size); - R_UNLESS(is_signature_valid, ResultInvalidNcaSignature()); + R_UNLESS(is_signature_valid, ldr::ResultInvalidNcaSignature()); } /* All good. */ @@ -272,7 +272,7 @@ namespace ams::ldr { flags |= svc::CreateProcessFlag_AddressSpace64Bit; break; default: - return ResultInvalidMeta(); + return ldr::ResultInvalidMeta(); } /* Set Enable Debug. */ @@ -317,7 +317,7 @@ namespace ams::ldr { flags |= svc::CreateProcessFlag_PoolPartitionSystemNonSecure; break; default: - return ResultInvalidMeta(); + return ldr::ResultInvalidMeta(); } } else if (hos::GetVersion() >= hos::Version_4_0_0) { /* On 4.0.0+, the corresponding bit was simply "UseSecureMemory". */ @@ -351,18 +351,18 @@ namespace ams::ldr { /* 3.0.0+ System Resource Size. */ if (hos::GetVersion() >= hos::Version_3_0_0) { /* Validate size is aligned. */ - R_UNLESS(util::IsAligned(meta->npdm->system_resource_size, os::MemoryBlockUnitSize), ResultInvalidSize()); + R_UNLESS(util::IsAligned(meta->npdm->system_resource_size, os::MemoryBlockUnitSize), ldr::ResultInvalidSize()); /* Validate system resource usage. */ if (meta->npdm->system_resource_size) { /* Process must be 64-bit. */ - R_UNLESS((out->flags & svc::CreateProcessFlag_AddressSpace64Bit), ResultInvalidMeta()); + R_UNLESS((out->flags & svc::CreateProcessFlag_AddressSpace64Bit), ldr::ResultInvalidMeta()); /* Process must be application or applet. */ - R_UNLESS(IsApplication(meta) || IsApplet(meta), ResultInvalidMeta()); + R_UNLESS(IsApplication(meta) || IsApplet(meta), ldr::ResultInvalidMeta()); /* Size must be less than or equal to max. */ - R_UNLESS(meta->npdm->system_resource_size <= SystemResourceSizeMax, ResultInvalidMeta()); + R_UNLESS(meta->npdm->system_resource_size <= SystemResourceSizeMax, ldr::ResultInvalidMeta()); } out->system_resource_num_pages = meta->npdm->system_resource_size >> 12; } @@ -541,19 +541,19 @@ namespace ams::ldr { } /* Validate size. */ - R_UNLESS(file_size <= segment->size, ResultInvalidNso()); - R_UNLESS(segment->size <= std::numeric_limits::max(), ResultInvalidNso()); + R_UNLESS(file_size <= segment->size, ldr::ResultInvalidNso()); + R_UNLESS(segment->size <= std::numeric_limits::max(), ldr::ResultInvalidNso()); /* Load data from file. */ uintptr_t load_address = is_compressed ? map_end - file_size : map_base; size_t read_size; R_TRY(fs::ReadFile(std::addressof(read_size), file, segment->file_offset, reinterpret_cast(load_address), file_size)); - R_UNLESS(read_size == file_size, ResultInvalidNso()); + R_UNLESS(read_size == file_size, ldr::ResultInvalidNso()); /* Uncompress if necessary. */ if (is_compressed) { bool decompressed = (util::DecompressLZ4(reinterpret_cast(map_base), segment->size, reinterpret_cast(load_address), file_size) == static_cast(segment->size)); - R_UNLESS(decompressed, ResultInvalidNso()); + R_UNLESS(decompressed, ldr::ResultInvalidNso()); } /* Check hash if necessary. */ @@ -561,7 +561,7 @@ namespace ams::ldr { u8 hash[crypto::Sha256Generator::HashSize]; crypto::GenerateSha256Hash(hash, sizeof(hash), reinterpret_cast(map_base), segment->size); - R_UNLESS(std::memcmp(hash, file_hash, sizeof(hash)) == 0, ResultInvalidNso()); + R_UNLESS(std::memcmp(hash, file_hash, sizeof(hash)) == 0, ldr::ResultInvalidNso()); } return ResultSuccess();