errors.h 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // Copyright 2018 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include "core/hle/result.h"
  6. namespace Kernel {
  7. namespace ErrCodes {
  8. enum {
  9. // TODO(Subv): Remove these 3DS OS error codes.
  10. SessionClosedByRemote = 26,
  11. NoPendingSessions = 35,
  12. InvalidBufferDescriptor = 48,
  13. // Confirmed Switch OS error codes
  14. MaxConnectionsReached = 7,
  15. InvalidSize = 101,
  16. InvalidAddress = 102,
  17. HandleTableFull = 105,
  18. InvalidMemoryState = 106,
  19. InvalidMemoryPermissions = 108,
  20. InvalidMemoryRange = 110,
  21. InvalidThreadPriority = 112,
  22. InvalidProcessorId = 113,
  23. InvalidHandle = 114,
  24. InvalidPointer = 115,
  25. InvalidCombination = 116,
  26. Timeout = 117,
  27. SynchronizationCanceled = 118,
  28. TooLarge = 119,
  29. InvalidEnumValue = 120,
  30. NoSuchEntry = 121,
  31. AlreadyRegistered = 122,
  32. SessionClosed = 123,
  33. InvalidState = 125,
  34. ResourceLimitExceeded = 132,
  35. };
  36. }
  37. // WARNING: The kernel is quite inconsistent in it's usage of errors code. Make sure to always
  38. // double check that the code matches before re-using the constant.
  39. // TODO(bunnei): Replace -1 with correct errors for Switch OS
  40. constexpr ResultCode ERR_HANDLE_TABLE_FULL(ErrorModule::Kernel, ErrCodes::HandleTableFull);
  41. constexpr ResultCode ERR_SESSION_CLOSED_BY_REMOTE(ErrorModule::Kernel, ErrCodes::SessionClosed);
  42. constexpr ResultCode ERR_PORT_NAME_TOO_LONG(ErrorModule::Kernel, ErrCodes::TooLarge);
  43. constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED(ErrorModule::Kernel,
  44. ErrCodes::MaxConnectionsReached);
  45. constexpr ResultCode ERR_INVALID_ENUM_VALUE(ErrorModule::Kernel, ErrCodes::InvalidEnumValue);
  46. constexpr ResultCode ERR_INVALID_ENUM_VALUE_FND(-1);
  47. constexpr ResultCode ERR_INVALID_COMBINATION(-1);
  48. constexpr ResultCode ERR_INVALID_COMBINATION_KERNEL(ErrorModule::Kernel,
  49. ErrCodes::InvalidCombination);
  50. constexpr ResultCode ERR_OUT_OF_MEMORY(-1);
  51. constexpr ResultCode ERR_INVALID_ADDRESS(ErrorModule::Kernel, ErrCodes::InvalidAddress);
  52. constexpr ResultCode ERR_INVALID_ADDRESS_STATE(ErrorModule::Kernel, ErrCodes::InvalidMemoryState);
  53. constexpr ResultCode ERR_INVALID_MEMORY_PERMISSIONS(ErrorModule::Kernel,
  54. ErrCodes::InvalidMemoryPermissions);
  55. constexpr ResultCode ERR_INVALID_MEMORY_RANGE(ErrorModule::Kernel, ErrCodes::InvalidMemoryRange);
  56. constexpr ResultCode ERR_INVALID_HANDLE(ErrorModule::Kernel, ErrCodes::InvalidHandle);
  57. constexpr ResultCode ERR_INVALID_PROCESSOR_ID(ErrorModule::Kernel, ErrCodes::InvalidProcessorId);
  58. constexpr ResultCode ERR_INVALID_SIZE(ErrorModule::Kernel, ErrCodes::InvalidSize);
  59. constexpr ResultCode ERR_ALREADY_REGISTERED(ErrorModule::Kernel, ErrCodes::AlreadyRegistered);
  60. constexpr ResultCode ERR_INVALID_STATE(ErrorModule::Kernel, ErrCodes::InvalidState);
  61. constexpr ResultCode ERR_INVALID_THREAD_PRIORITY(ErrorModule::Kernel,
  62. ErrCodes::InvalidThreadPriority);
  63. constexpr ResultCode ERR_INVALID_POINTER(ErrorModule::Kernel, ErrCodes::InvalidPointer);
  64. constexpr ResultCode ERR_INVALID_OBJECT_ADDR(-1);
  65. constexpr ResultCode ERR_NOT_AUTHORIZED(-1);
  66. /// Alternate code returned instead of ERR_INVALID_HANDLE in some code paths.
  67. constexpr ResultCode ERR_INVALID_HANDLE_OS(-1);
  68. constexpr ResultCode ERR_NOT_FOUND(ErrorModule::Kernel, ErrCodes::NoSuchEntry);
  69. constexpr ResultCode RESULT_TIMEOUT(ErrorModule::Kernel, ErrCodes::Timeout);
  70. /// Returned when Accept() is called on a port with no sessions to be accepted.
  71. constexpr ResultCode ERR_NO_PENDING_SESSIONS(-1);
  72. } // namespace Kernel