diff options
author | bunnei <bunneidev@gmail.com> | 2023-02-11 06:41:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-11 06:41:22 +0100 |
commit | abd826ba87a7a02c2a0813f18f99915f8d6799b8 (patch) | |
tree | 208aad5a3c173905fab6b2c61532cbf984ca381b /src/core/hle/kernel/svc/svc_address_translation.cpp | |
parent | Merge pull request #9759 from german77/pro_controller (diff) | |
parent | kernel/svc: switch to generated wrappers (diff) | |
download | yuzu-abd826ba87a7a02c2a0813f18f99915f8d6799b8.tar yuzu-abd826ba87a7a02c2a0813f18f99915f8d6799b8.tar.gz yuzu-abd826ba87a7a02c2a0813f18f99915f8d6799b8.tar.bz2 yuzu-abd826ba87a7a02c2a0813f18f99915f8d6799b8.tar.lz yuzu-abd826ba87a7a02c2a0813f18f99915f8d6799b8.tar.xz yuzu-abd826ba87a7a02c2a0813f18f99915f8d6799b8.tar.zst yuzu-abd826ba87a7a02c2a0813f18f99915f8d6799b8.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/svc/svc_address_translation.cpp | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/core/hle/kernel/svc/svc_address_translation.cpp b/src/core/hle/kernel/svc/svc_address_translation.cpp index 299e22ae6..c25e144cd 100644 --- a/src/core/hle/kernel/svc/svc_address_translation.cpp +++ b/src/core/hle/kernel/svc/svc_address_translation.cpp @@ -2,5 +2,49 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "core/hle/kernel/svc.h" +#include "core/hle/kernel/svc_results.h" -namespace Kernel::Svc {} // namespace Kernel::Svc +namespace Kernel::Svc { + +Result QueryPhysicalAddress(Core::System& system, lp64::PhysicalMemoryInfo* out_info, + uint64_t address) { + UNIMPLEMENTED(); + R_THROW(ResultNotImplemented); +} + +Result QueryIoMapping(Core::System& system, uintptr_t* out_address, uintptr_t* out_size, + uint64_t physical_address, uint64_t size) { + UNIMPLEMENTED(); + R_THROW(ResultNotImplemented); +} + +Result QueryPhysicalAddress64(Core::System& system, lp64::PhysicalMemoryInfo* out_info, + uint64_t address) { + R_RETURN(QueryPhysicalAddress(system, out_info, address)); +} + +Result QueryIoMapping64(Core::System& system, uintptr_t* out_address, uintptr_t* out_size, + uint64_t physical_address, uint64_t size) { + R_RETURN(QueryIoMapping(system, out_address, out_size, physical_address, size)); +} + +Result QueryPhysicalAddress64From32(Core::System& system, ilp32::PhysicalMemoryInfo* out_info, + uint32_t address) { + lp64::PhysicalMemoryInfo info{}; + R_TRY(QueryPhysicalAddress(system, std::addressof(info), address)); + + *out_info = { + .physical_address = info.physical_address, + .virtual_address = static_cast<u32>(info.virtual_address), + .size = static_cast<u32>(info.size), + }; + R_SUCCEED(); +} + +Result QueryIoMapping64From32(Core::System& system, uintptr_t* out_address, uintptr_t* out_size, + uint64_t physical_address, uint32_t size) { + R_RETURN(QueryIoMapping(system, reinterpret_cast<uintptr_t*>(out_address), + reinterpret_cast<uintptr_t*>(out_size), physical_address, size)); +} + +} // namespace Kernel::Svc |