diff options
author | purpasmart96 <purpasmart96@users.noreply.github.com> | 2014-11-07 18:53:18 -0800 |
---|---|---|
committer | purpasmart96 <kanzoconfigz@hotmail.com> | 2014-11-18 15:57:25 -0800 |
commit | 66431bcedaf406e5d356da1aad8baf55e1cc9cb9 (patch) | |
tree | 1b7982ea71b69f54913ee6eb18c74d5b3bb4510e | |
parent | 1aa29b2b6cae4bde3a5de22a06a9078934235778 (diff) |
Kernel:Add missing permissions in shared memory & svc
-rw-r--r-- | src/core/hle/kernel/shared_memory.h | 14 | ||||
-rw-r--r-- | src/core/hle/svc.cpp | 4 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/core/hle/kernel/shared_memory.h b/src/core/hle/kernel/shared_memory.h index 5312b8854..6204d8a45 100644 --- a/src/core/hle/kernel/shared_memory.h +++ b/src/core/hle/kernel/shared_memory.h @@ -12,11 +12,15 @@ namespace Kernel { /// Permissions for mapped shared memory blocks enum class MemoryPermission : u32 { - None = 0, - Read = (1u << 0), - Write = (1u << 1), - ReadWrite = (Read | Write), - DontCare = (1u << 28) + None = 0, + Read = (1u << 0), + Write = (1u << 1), + ReadWrite = (Read | Write), + Execute = (1u << 2), + ReadExecute = (Read | Execute), + WriteExecute = (Write | Execute), + ReadWriteExecute = (Read | Write | Execute), + DontCare = (1u << 28) }; /** diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 1eda36c53..2aa1303f6 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp @@ -62,6 +62,10 @@ Result MapMemoryBlock(Handle handle, u32 addr, u32 permissions, u32 other_permis case Kernel::MemoryPermission::Read: case Kernel::MemoryPermission::Write: case Kernel::MemoryPermission::ReadWrite: + case Kernel::MemoryPermission::Execute: + case Kernel::MemoryPermission::ReadExecute: + case Kernel::MemoryPermission::WriteExecute: + case Kernel::MemoryPermission::ReadWriteExecute: case Kernel::MemoryPermission::DontCare: Kernel::MapSharedMemory(handle, addr, permissions_type, static_cast<Kernel::MemoryPermission>(other_permissions)); |