memory: Support 32-bit paging, move heap address space up.
This commit is contained in:
parent
dcd6bb82f7
commit
9ceb0d9381
|
@ -163,7 +163,7 @@ ResultStatus AppLoader_NSO::Load(Kernel::SharedPtr<Kernel::Process>& process) {
|
||||||
|
|
||||||
// Load and relocate remaining submodules
|
// Load and relocate remaining submodules
|
||||||
for (const auto& module_name : {"main", "sdk", "subsdk0", "subsdk1"}) {
|
for (const auto& module_name : {"main", "sdk", "subsdk0", "subsdk1"}) {
|
||||||
LOG_INFO(Loader, "loading %s @ 0x%08x", module_name, next_base_addr);
|
LOG_INFO(Loader, "loading %s @ 0x%llx", module_name, next_base_addr);
|
||||||
const std::string module_path =
|
const std::string module_path =
|
||||||
filepath.substr(0, filepath.find_last_of("/\\")) + "/" + module_name;
|
filepath.substr(0, filepath.find_last_of("/\\")) + "/" + module_name;
|
||||||
next_base_addr = LoadNso(module_path, next_base_addr);
|
next_base_addr = LoadNso(module_path, next_base_addr);
|
||||||
|
|
|
@ -26,7 +26,7 @@ namespace Memory {
|
||||||
const int PAGE_BITS = 12;
|
const int PAGE_BITS = 12;
|
||||||
const u64 PAGE_SIZE = 1 << PAGE_BITS;
|
const u64 PAGE_SIZE = 1 << PAGE_BITS;
|
||||||
const u64 PAGE_MASK = PAGE_SIZE - 1;
|
const u64 PAGE_MASK = PAGE_SIZE - 1;
|
||||||
const size_t PAGE_TABLE_NUM_ENTRIES = 1ULL << (32 - PAGE_BITS);
|
const size_t PAGE_TABLE_NUM_ENTRIES = 1ULL << (36 - PAGE_BITS);
|
||||||
|
|
||||||
enum class PageType {
|
enum class PageType {
|
||||||
/// Page is unmapped and should cause an access error.
|
/// Page is unmapped and should cause an access error.
|
||||||
|
@ -135,7 +135,7 @@ enum : VAddr {
|
||||||
IPC_MAPPING_VADDR_END = IPC_MAPPING_VADDR + IPC_MAPPING_SIZE,
|
IPC_MAPPING_VADDR_END = IPC_MAPPING_VADDR + IPC_MAPPING_SIZE,
|
||||||
|
|
||||||
/// Application heap (includes stack).
|
/// Application heap (includes stack).
|
||||||
HEAP_VADDR = 0x08000000,
|
HEAP_VADDR = 0x108000000,
|
||||||
HEAP_SIZE = 0x08000000,
|
HEAP_SIZE = 0x08000000,
|
||||||
HEAP_VADDR_END = HEAP_VADDR + HEAP_SIZE,
|
HEAP_VADDR_END = HEAP_VADDR + HEAP_SIZE,
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue