Integrate new result macros. (#1780)

* result: try out some experimental shenanigans

* result: sketch out some more shenanigans

* result: see what it looks like to convert kernel to use result conds instead of guards

* make rest of kernel use experimental new macro-ing
This commit is contained in:
SciresM
2022-02-14 14:45:32 -08:00
committed by GitHub
parent 375ba615be
commit 96f95b9f95
109 changed files with 1355 additions and 1380 deletions

View File

@@ -60,14 +60,10 @@ namespace ams::kern::svc {
R_TRY(process.AddSharedMemory(shmem.GetPointerUnsafe(), address, size));
/* Ensure that we clean up the shared memory if we fail to map it. */
auto guard = SCOPE_GUARD { process.RemoveSharedMemory(shmem.GetPointerUnsafe(), address, size); };
ON_RESULT_FAILURE { process.RemoveSharedMemory(shmem.GetPointerUnsafe(), address, size); };
/* Map the shared memory. */
R_TRY(shmem->Map(std::addressof(page_table), address, size, std::addressof(process), map_perm));
/* We succeeded. */
guard.Cancel();
return ResultSuccess();
R_RETURN(shmem->Map(std::addressof(page_table), address, size, std::addressof(process), map_perm));
}
Result UnmapSharedMemory(ams::svc::Handle shmem_handle, uintptr_t address, size_t size) {
@@ -94,7 +90,7 @@ namespace ams::kern::svc {
/* Remove the shared memory from the process. */
process.RemoveSharedMemory(shmem.GetPointerUnsafe(), address, size);
return ResultSuccess();
R_SUCCEED();
}
Result CreateSharedMemory(ams::svc::Handle *out, size_t size, ams::svc::MemoryPermission owner_perm, ams::svc::MemoryPermission remote_perm) {
@@ -122,7 +118,7 @@ namespace ams::kern::svc {
/* Add the shared memory to the handle table. */
R_TRY(GetCurrentProcess().GetHandleTable().Add(out, shmem));
return ResultSuccess();
R_SUCCEED();
}
}
@@ -130,29 +126,29 @@ namespace ams::kern::svc {
/* ============================= 64 ABI ============================= */
Result MapSharedMemory64(ams::svc::Handle shmem_handle, ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission map_perm) {
return MapSharedMemory(shmem_handle, address, size, map_perm);
R_RETURN(MapSharedMemory(shmem_handle, address, size, map_perm));
}
Result UnmapSharedMemory64(ams::svc::Handle shmem_handle, ams::svc::Address address, ams::svc::Size size) {
return UnmapSharedMemory(shmem_handle, address, size);
R_RETURN(UnmapSharedMemory(shmem_handle, address, size));
}
Result CreateSharedMemory64(ams::svc::Handle *out_handle, ams::svc::Size size, ams::svc::MemoryPermission owner_perm, ams::svc::MemoryPermission remote_perm) {
return CreateSharedMemory(out_handle, size, owner_perm, remote_perm);
R_RETURN(CreateSharedMemory(out_handle, size, owner_perm, remote_perm));
}
/* ============================= 64From32 ABI ============================= */
Result MapSharedMemory64From32(ams::svc::Handle shmem_handle, ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission map_perm) {
return MapSharedMemory(shmem_handle, address, size, map_perm);
R_RETURN(MapSharedMemory(shmem_handle, address, size, map_perm));
}
Result UnmapSharedMemory64From32(ams::svc::Handle shmem_handle, ams::svc::Address address, ams::svc::Size size) {
return UnmapSharedMemory(shmem_handle, address, size);
R_RETURN(UnmapSharedMemory(shmem_handle, address, size));
}
Result CreateSharedMemory64From32(ams::svc::Handle *out_handle, ams::svc::Size size, ams::svc::MemoryPermission owner_perm, ams::svc::MemoryPermission remote_perm) {
return CreateSharedMemory(out_handle, size, owner_perm, remote_perm);
R_RETURN(CreateSharedMemory(out_handle, size, owner_perm, remote_perm));
}
}