Просмотр исходного кода

kernel/error: Add error code for invalid memory permissions

Lioncash 8 лет назад
Родитель
Сommit
b8be5524bc
2 измененных файлов с 4 добавлено и 3 удалено
  1. 3 2
      src/core/hle/kernel/errors.h
  2. 1 1
      src/core/hle/kernel/shared_memory.cpp

+ 3 - 2
src/core/hle/kernel/errors.h

@@ -15,13 +15,13 @@ enum {
     SessionClosedByRemote = 26,
     PortNameTooLong = 30,
     NoPendingSessions = 35,
-    WrongPermission = 46,
     InvalidBufferDescriptor = 48,
     MaxConnectionsReached = 52,
 
     // Confirmed Switch OS error codes
     InvalidAddress = 102,
     InvalidMemoryState = 106,
+    InvalidMemoryPermissions = 108,
     InvalidProcessorId = 113,
     InvalidHandle = 114,
     InvalidCombination = 116,
@@ -40,7 +40,6 @@ enum {
 constexpr ResultCode ERR_OUT_OF_HANDLES(-1);
 constexpr ResultCode ERR_SESSION_CLOSED_BY_REMOTE(-1);
 constexpr ResultCode ERR_PORT_NAME_TOO_LONG(-1);
-constexpr ResultCode ERR_WRONG_PERMISSION(-1);
 constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED(-1);
 constexpr ResultCode ERR_INVALID_ENUM_VALUE(ErrorModule::Kernel, ErrCodes::InvalidEnumValue);
 constexpr ResultCode ERR_INVALID_ENUM_VALUE_FND(-1);
@@ -50,6 +49,8 @@ constexpr ResultCode ERR_INVALID_COMBINATION_KERNEL(ErrorModule::Kernel,
 constexpr ResultCode ERR_OUT_OF_MEMORY(-1);
 constexpr ResultCode ERR_INVALID_ADDRESS(ErrorModule::Kernel, ErrCodes::InvalidAddress);
 constexpr ResultCode ERR_INVALID_ADDRESS_STATE(ErrorModule::Kernel, ErrCodes::InvalidMemoryState);
+constexpr ResultCode ERR_INVALID_MEMORY_PERMISSIONS(ErrorModule::Kernel,
+                                                    ErrCodes::InvalidMemoryPermissions);
 constexpr ResultCode ERR_INVALID_HANDLE(ErrorModule::Kernel, ErrCodes::InvalidHandle);
 constexpr ResultCode ERR_INVALID_STATE(ErrorModule::Kernel, ErrCodes::InvalidState);
 constexpr ResultCode ERR_INVALID_POINTER(-1);

+ 1 - 1
src/core/hle/kernel/shared_memory.cpp

@@ -101,7 +101,7 @@ ResultCode SharedMemory::Map(Process* target_process, VAddr address, MemoryPermi
         static_cast<u32>(this->permissions) & ~static_cast<u32>(other_permissions)) {
         LOG_ERROR(Kernel, "cannot map id={}, address=0x{:X} name={}, permissions don't match",
                   GetObjectId(), address, name);
-        return ERR_WRONG_PERMISSION;
+        return ERR_INVALID_MEMORY_PERMISSIONS;
     }
 
     VAddr target_address = address;