errors.h 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. InvalidThreadPriority = 112,
  21. InvalidProcessorId = 113,
  22. InvalidHandle = 114,
  23. InvalidCombination = 116,
  24. Timeout = 117,
  25. SynchronizationCanceled = 118,
  26. TooLarge = 119,
  27. InvalidEnumValue = 120,
  28. NoSuchEntry = 121,
  29. InvalidState = 125,
  30. ResourceLimitExceeded = 132,
  31. };
  32. }
  33. // WARNING: The kernel is quite inconsistent in it's usage of errors code. Make sure to always
  34. // double check that the code matches before re-using the constant.
  35. // TODO(bunnei): Replace -1 with correct errors for Switch OS
  36. constexpr ResultCode ERR_HANDLE_TABLE_FULL(ErrorModule::Kernel, ErrCodes::HandleTableFull);
  37. constexpr ResultCode ERR_SESSION_CLOSED_BY_REMOTE(-1);
  38. constexpr ResultCode ERR_PORT_NAME_TOO_LONG(ErrorModule::Kernel, ErrCodes::TooLarge);
  39. constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED(ErrorModule::Kernel,
  40. ErrCodes::MaxConnectionsReached);
  41. constexpr ResultCode ERR_INVALID_ENUM_VALUE(ErrorModule::Kernel, ErrCodes::InvalidEnumValue);
  42. constexpr ResultCode ERR_INVALID_ENUM_VALUE_FND(-1);
  43. constexpr ResultCode ERR_INVALID_COMBINATION(-1);
  44. constexpr ResultCode ERR_INVALID_COMBINATION_KERNEL(ErrorModule::Kernel,
  45. ErrCodes::InvalidCombination);
  46. constexpr ResultCode ERR_OUT_OF_MEMORY(-1);
  47. constexpr ResultCode ERR_INVALID_ADDRESS(ErrorModule::Kernel, ErrCodes::InvalidAddress);
  48. constexpr ResultCode ERR_INVALID_ADDRESS_STATE(ErrorModule::Kernel, ErrCodes::InvalidMemoryState);
  49. constexpr ResultCode ERR_INVALID_MEMORY_PERMISSIONS(ErrorModule::Kernel,
  50. ErrCodes::InvalidMemoryPermissions);
  51. constexpr ResultCode ERR_INVALID_HANDLE(ErrorModule::Kernel, ErrCodes::InvalidHandle);
  52. constexpr ResultCode ERR_INVALID_PROCESSOR_ID(ErrorModule::Kernel, ErrCodes::InvalidProcessorId);
  53. constexpr ResultCode ERR_INVALID_SIZE(ErrorModule::Kernel, ErrCodes::InvalidSize);
  54. constexpr ResultCode ERR_INVALID_STATE(ErrorModule::Kernel, ErrCodes::InvalidState);
  55. constexpr ResultCode ERR_INVALID_THREAD_PRIORITY(ErrorModule::Kernel,
  56. ErrCodes::InvalidThreadPriority);
  57. constexpr ResultCode ERR_INVALID_POINTER(-1);
  58. constexpr ResultCode ERR_INVALID_OBJECT_ADDR(-1);
  59. constexpr ResultCode ERR_NOT_AUTHORIZED(-1);
  60. /// Alternate code returned instead of ERR_INVALID_HANDLE in some code paths.
  61. constexpr ResultCode ERR_INVALID_HANDLE_OS(-1);
  62. constexpr ResultCode ERR_NOT_FOUND(ErrorModule::Kernel, ErrCodes::NoSuchEntry);
  63. constexpr ResultCode RESULT_TIMEOUT(ErrorModule::Kernel, ErrCodes::Timeout);
  64. /// Returned when Accept() is called on a port with no sessions to be accepted.
  65. constexpr ResultCode ERR_NO_PENDING_SESSIONS(-1);
  66. } // namespace Kernel