2026-08-11 14:44:58 -04:00
|
|
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
2022-04-23 04:59:50 -04:00
|
|
|
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
|
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2020-04-02 22:00:41 -04:00
|
|
|
|
|
|
|
|
#include "core/device_memory.h"
|
2022-02-21 12:36:34 -08:00
|
|
|
#include "hle/kernel/board/nintendo/nx/k_system_control.h"
|
2020-04-02 22:00:41 -04:00
|
|
|
|
|
|
|
|
namespace Core {
|
|
|
|
|
|
2023-11-20 15:52:18 +02:00
|
|
|
#ifdef HAS_NCE
|
2023-01-01 12:12:01 -05:00
|
|
|
constexpr size_t VirtualReserveSize = 1ULL << 38;
|
|
|
|
|
#else
|
|
|
|
|
constexpr size_t VirtualReserveSize = 1ULL << 39;
|
|
|
|
|
#endif
|
|
|
|
|
|
2026-08-07 00:38:36 -04:00
|
|
|
namespace {
|
|
|
|
|
size_t ApplicationPoolOffset() {
|
|
|
|
|
using Init = Kernel::Board::Nintendo::Nx::KSystemControl::Init;
|
|
|
|
|
const size_t dram_size = Init::GetIntendedMemorySize();
|
|
|
|
|
const size_t application_pool_size = Init::GetApplicationPoolSize();
|
|
|
|
|
return dram_size > application_pool_size ? dram_size - application_pool_size : 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-17 23:44:53 +02:00
|
|
|
DeviceMemory::DeviceMemory()
|
2022-02-21 12:36:34 -08:00
|
|
|
: buffer{Kernel::Board::Nintendo::Nx::KSystemControl::Init::GetIntendedMemorySize(),
|
2026-08-07 00:38:36 -04:00
|
|
|
VirtualReserveSize, ApplicationPoolOffset()} {}
|
2023-11-17 22:23:48 +02:00
|
|
|
|
2020-04-08 17:39:58 -04:00
|
|
|
DeviceMemory::~DeviceMemory() = default;
|
2020-04-02 22:00:41 -04:00
|
|
|
|
|
|
|
|
} // namespace Core
|