ams: use R_SUCCEED, R_THROW globally

This commit is contained in:
Michael Scire
2022-03-26 00:14:36 -07:00
parent e5b1739f65
commit dd78ede99f
370 changed files with 2107 additions and 2107 deletions

View File

@@ -68,7 +68,7 @@ namespace ams::ro::impl {
/* If the memory range is free and big enough, use it. */
if (mem_info.state == svc::MemoryState_Free && mapping_size <= ((mem_info.base_address + mem_info.size) - address)) {
*out = address;
return ResultSuccess();
R_SUCCEED();
}
/* Check that we can advance. */

View File

@@ -74,7 +74,7 @@ namespace ams::ro::impl {
bss_mcm.Cancel();
*out_base_address = base_address;
return ResultSuccess();
R_SUCCEED();
}
Result SetNroPerms(os::NativeHandle process_handle, u64 base_address, u64 rx_size, u64 ro_size, u64 rw_size) {
@@ -86,7 +86,7 @@ namespace ams::ro::impl {
R_TRY(svc::SetProcessMemoryPermission(process_handle, base_address + ro_offset, ro_size, svc::MemoryPermission_Read));
R_TRY(svc::SetProcessMemoryPermission(process_handle, base_address + rw_offset, rw_size, svc::MemoryPermission_ReadWrite));
return ResultSuccess();
R_SUCCEED();
}
Result UnmapNro(os::NativeHandle process_handle, u64 base_address, u64 nro_heap_address, u64 bss_heap_address, u64 bss_heap_size, u64 code_size, u64 rw_size) {
@@ -103,7 +103,7 @@ namespace ams::ro::impl {
/* Finally, unmap .text + .rodata. */
R_TRY(svc::UnmapProcessCodeMemory(process_handle, base_address, nro_heap_address, code_size));
return ResultSuccess();
R_SUCCEED();
}
}

View File

@@ -119,7 +119,7 @@ namespace ams::ro::impl {
}
*out = IsDevelopmentHardware() ? DevModuli[key_generation] : ProdModuli[key_generation];
return ResultSuccess();
R_SUCCEED();
}
Result ValidateNrrCertification(const NrrHeader *header, const u8 *mod) {
@@ -138,7 +138,7 @@ namespace ams::ro::impl {
/* Check ProgramId pattern is valid. */
R_UNLESS(header->IsProgramIdValid(), ro::ResultNotAuthorized());
return ResultSuccess();
R_SUCCEED();
}
Result ValidateNrrSignature(const NrrHeader *header) {
@@ -155,7 +155,7 @@ namespace ams::ro::impl {
const size_t msg_size = header->GetSignedAreaSize();
R_UNLESS(crypto::VerifyRsa2048PssSha256(sig, sig_size, mod, mod_size, exp, exp_size, msg, msg_size), ro::ResultNotAuthorized());
return ResultSuccess();
R_SUCCEED();
}
Result ValidateNrr(const NrrHeader *header, u64 size, ncm::ProgramId program_id, NrrKind nrr_kind, bool enforce_nrr_kind) {
@@ -189,7 +189,7 @@ namespace ams::ro::impl {
}
}
return ResultSuccess();
R_SUCCEED();
}
}
@@ -246,13 +246,13 @@ namespace ams::ro::impl {
*out_header = nrr_header;
*out_mapped_code_address = code_address;
return ResultSuccess();
R_SUCCEED();
}
Result UnmapNrr(os::NativeHandle process_handle, const NrrHeader *header, u64 nrr_heap_address, u64 nrr_heap_size, u64 mapped_code_address) {
R_TRY(svc::UnmapProcessMemory(reinterpret_cast<uintptr_t>(header), process_handle, mapped_code_address, nrr_heap_size));
R_TRY(svc::UnmapProcessCodeMemory(process_handle, mapped_code_address, nrr_heap_address, nrr_heap_size));
return ResultSuccess();
R_SUCCEED();
}
bool ValidateNrrHashTableEntry(const void *signed_area, size_t signed_area_size, size_t hashes_offset, size_t num_hashes, const void *nrr_hash, const u8 *hash_table, const void *desired_hash) {

View File

@@ -148,10 +148,10 @@ namespace ams::ro::impl {
if (out != nullptr) {
*out = m_nrr_infos + i;
}
return ResultSuccess();
R_SUCCEED();
}
}
return ro::ResultNotRegistered();
R_THROW(ro::ResultNotRegistered());
}
Result GetFreeNrrInfo(NrrInfo **out) {
@@ -160,10 +160,10 @@ namespace ams::ro::impl {
if (out != nullptr) {
*out = m_nrr_infos + i;
}
return ResultSuccess();
R_SUCCEED();
}
}
return ro::ResultTooManyNrr();
R_THROW(ro::ResultTooManyNrr());
}
Result GetNroInfoByAddress(NroInfo **out, u64 nro_address) {
@@ -172,10 +172,10 @@ namespace ams::ro::impl {
if (out != nullptr) {
*out = m_nro_infos + i;
}
return ResultSuccess();
R_SUCCEED();
}
}
return ro::ResultNotLoaded();
R_THROW(ro::ResultNotLoaded());
}
Result GetNroInfoByModuleId(NroInfo **out, const ModuleId *module_id) {
@@ -184,10 +184,10 @@ namespace ams::ro::impl {
if (out != nullptr) {
*out = m_nro_infos + i;
}
return ResultSuccess();
R_SUCCEED();
}
}
return ro::ResultNotLoaded();
R_THROW(ro::ResultNotLoaded());
}
Result GetFreeNroInfo(NroInfo **out) {
@@ -196,10 +196,10 @@ namespace ams::ro::impl {
if (out != nullptr) {
*out = m_nro_infos + i;
}
return ResultSuccess();
R_SUCCEED();
}
}
return ro::ResultTooManyNro();
R_THROW(ro::ResultTooManyNro());
}
Result ValidateHasNroHash(const NroHeader *nro_header) const {
@@ -241,10 +241,10 @@ namespace ams::ro::impl {
}
/* The hash is valid! */
return ResultSuccess();
R_SUCCEED();
}
return ro::ResultNotAuthorized();
R_THROW(ro::ResultNotAuthorized());
}
Result ValidateNro(ModuleId *out_module_id, u64 *out_rx_size, u64 *out_ro_size, u64 *out_rw_size, u64 base_address, u64 expected_nro_size, u64 expected_bss_size) {
@@ -305,7 +305,7 @@ namespace ams::ro::impl {
*out_rx_size = text_size;
*out_ro_size = ro_size;
*out_rw_size = rw_size;
return ResultSuccess();
R_SUCCEED();
}
void SetNrrInfoInUse(const NrrInfo *info, bool in_use) {
@@ -391,14 +391,14 @@ namespace ams::ro::impl {
R_UNLESS(size != 0, ro::ResultInvalidSize());
R_UNLESS(util::IsAligned(size, os::MemoryPageSize), ro::ResultInvalidSize());
R_UNLESS(address < address + size, ro::ResultInvalidSize());
return ResultSuccess();
R_SUCCEED();
}
constexpr inline Result ValidateAddressAndSize(u64 address, u64 size) {
R_UNLESS(util::IsAligned(address, os::MemoryPageSize), ro::ResultInvalidAddress());
R_UNLESS(util::IsAligned(size, os::MemoryPageSize), ro::ResultInvalidSize());
R_UNLESS(size == 0 || address < address + size, ro::ResultInvalidSize());
return ResultSuccess();
R_SUCCEED();
}
}
@@ -451,14 +451,14 @@ namespace ams::ro::impl {
*out_context_id = AllocateContext(process_handle.GetOsHandle(), process_id);
process_handle.Detach();
return ResultSuccess();
R_SUCCEED();
}
Result ValidateProcess(size_t context_id, os::ProcessId process_id) {
const ProcessContext *ctx = GetContextById(context_id);
R_UNLESS(ctx != nullptr, ro::ResultInvalidProcess());
R_UNLESS(ctx->GetProcessId() == process_id, ro::ResultInvalidProcess());
return ResultSuccess();
R_SUCCEED();
}
void UnregisterProcess(size_t context_id) {
@@ -504,7 +504,7 @@ namespace ams::ro::impl {
std::memcpy(nrr_info->cached_signed_area, header->GetSignedArea(), std::min(sizeof(nrr_info->cached_signed_area), header->GetHashesOffset() - header->GetSignedAreaOffset()));
std::memcpy(std::addressof(nrr_info->signed_area_hash), std::addressof(signed_area_hash), sizeof(signed_area_hash));
return ResultSuccess();
R_SUCCEED();
}
Result UnregisterModuleInfo(size_t context_id, u64 nrr_address) {
@@ -603,7 +603,7 @@ namespace ams::ro::impl {
context->GetProcessModuleInfo(out_count, out_infos, max_out_count);
}
return ResultSuccess();
R_SUCCEED();
}
}