diff options
| author | 2017-10-09 21:39:32 -0400 | |
|---|---|---|
| committer | 2017-10-09 21:39:32 -0400 | |
| commit | 23ce4f5afc66eb04a7aafc4f89685b8109b8d5c6 (patch) | |
| tree | 168e7793c6d68eb8b195850a056443ea98f430a9 /src/core/hle/kernel | |
| parent | loader: Add support for NRO, as well as various fixes and shared linker. (diff) | |
| download | yuzu-23ce4f5afc66eb04a7aafc4f89685b8109b8d5c6.tar.gz yuzu-23ce4f5afc66eb04a7aafc4f89685b8109b8d5c6.tar.xz yuzu-23ce4f5afc66eb04a7aafc4f89685b8109b8d5c6.zip | |
loader: Various improvements for NSO/NRO loaders.
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/process.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/kernel/thread.cpp | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index 2a80c2492..84ebdbc58 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp | |||
| @@ -147,9 +147,9 @@ void Process::LoadModule(SharedPtr<CodeSet> module_, VAddr base_addr) { | |||
| 147 | }; | 147 | }; |
| 148 | 148 | ||
| 149 | // Map CodeSet segments | 149 | // Map CodeSet segments |
| 150 | MapSegment(module_->code, VMAPermission::ReadExecute, MemoryState::Code); | 150 | MapSegment(module_->code, VMAPermission::ReadWrite, MemoryState::Private); |
| 151 | MapSegment(module_->rodata, VMAPermission::Read, MemoryState::Code); | 151 | MapSegment(module_->rodata, VMAPermission::Read, MemoryState::Static); |
| 152 | MapSegment(module_->data, VMAPermission::ReadWrite, MemoryState::Private); | 152 | MapSegment(module_->data, VMAPermission::ReadWrite, MemoryState::Static); |
| 153 | } | 153 | } |
| 154 | 154 | ||
| 155 | VAddr Process::GetLinearHeapAreaAddress() const { | 155 | VAddr Process::GetLinearHeapAreaAddress() const { |
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 736be50db..c01d08ebb 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp | |||
| @@ -429,7 +429,7 @@ ResultVal<SharedPtr<Thread>> Thread::Create(std::string name, VAddr entry_point, | |||
| 429 | // Map the page to the current process' address space. | 429 | // Map the page to the current process' address space. |
| 430 | // TODO(Subv): Find the correct MemoryState for this region. | 430 | // TODO(Subv): Find the correct MemoryState for this region. |
| 431 | vm_manager.MapMemoryBlock(Memory::TLS_AREA_VADDR + available_page * Memory::PAGE_SIZE, | 431 | vm_manager.MapMemoryBlock(Memory::TLS_AREA_VADDR + available_page * Memory::PAGE_SIZE, |
| 432 | linheap_memory, offset, Memory::PAGE_SIZE, MemoryState::Private); | 432 | linheap_memory, offset, Memory::PAGE_SIZE, MemoryState::Static); |
| 433 | } | 433 | } |
| 434 | 434 | ||
| 435 | // Mark the slot as used | 435 | // Mark the slot as used |