Merge pull request #185 from purpasmart96/mem_perm

Kernel: Add missing permissions
master
bunnei 2014-12-17 20:56:04 +07:00
commit 7bae450379
2 changed files with 13 additions and 5 deletions

@ -12,11 +12,15 @@ namespace Kernel {
/// Permissions for mapped shared memory blocks /// Permissions for mapped shared memory blocks
enum class MemoryPermission : u32 { enum class MemoryPermission : u32 {
None = 0, None = 0,
Read = (1u << 0), Read = (1u << 0),
Write = (1u << 1), Write = (1u << 1),
ReadWrite = (Read | Write), ReadWrite = (Read | Write),
DontCare = (1u << 28) Execute = (1u << 2),
ReadExecute = (Read | Execute),
WriteExecute = (Write | Execute),
ReadWriteExecute = (Read | Write | Execute),
DontCare = (1u << 28)
}; };
/** /**

@ -64,6 +64,10 @@ static Result MapMemoryBlock(Handle handle, u32 addr, u32 permissions, u32 other
case Kernel::MemoryPermission::Read: case Kernel::MemoryPermission::Read:
case Kernel::MemoryPermission::Write: case Kernel::MemoryPermission::Write:
case Kernel::MemoryPermission::ReadWrite: case Kernel::MemoryPermission::ReadWrite:
case Kernel::MemoryPermission::Execute:
case Kernel::MemoryPermission::ReadExecute:
case Kernel::MemoryPermission::WriteExecute:
case Kernel::MemoryPermission::ReadWriteExecute:
case Kernel::MemoryPermission::DontCare: case Kernel::MemoryPermission::DontCare:
Kernel::MapSharedMemory(handle, addr, permissions_type, Kernel::MapSharedMemory(handle, addr, permissions_type,
static_cast<Kernel::MemoryPermission>(other_permissions)); static_cast<Kernel::MemoryPermission>(other_permissions));