From 81ca46dd17dafa2a474a6f8eed748d604516034d Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 25 Aug 2018 05:44:51 -0400 Subject: [PATCH] kernel/error: Add error code for the handle table being full This replaces the lingering 3DS constant with the proper one, and utilizes it within HandleTable's Create() member function. --- src/core/hle/kernel/errors.h | 4 ++-- src/core/hle/kernel/handle_table.cpp | 2 +- src/core/hle/kernel/handle_table.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/hle/kernel/errors.h b/src/core/hle/kernel/errors.h index 8b4e051911..59c5c2a67c 100644 --- a/src/core/hle/kernel/errors.h +++ b/src/core/hle/kernel/errors.h @@ -11,7 +11,6 @@ namespace Kernel { namespace ErrCodes { enum { // TODO(Subv): Remove these 3DS OS error codes. - OutOfHandles = 19, SessionClosedByRemote = 26, PortNameTooLong = 30, NoPendingSessions = 35, @@ -20,6 +19,7 @@ enum { // Confirmed Switch OS error codes InvalidAddress = 102, + HandleTableFull = 105, InvalidMemoryState = 106, InvalidMemoryPermissions = 108, InvalidProcessorId = 113, @@ -37,7 +37,7 @@ enum { // double check that the code matches before re-using the constant. // TODO(bunnei): Replace these with correct errors for Switch OS -constexpr ResultCode ERR_OUT_OF_HANDLES(-1); +constexpr ResultCode ERR_HANDLE_TABLE_FULL(ErrorModule::Kernel, ErrCodes::HandleTableFull); constexpr ResultCode ERR_SESSION_CLOSED_BY_REMOTE(-1); constexpr ResultCode ERR_PORT_NAME_TOO_LONG(-1); constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED(-1); diff --git a/src/core/hle/kernel/handle_table.cpp b/src/core/hle/kernel/handle_table.cpp index 28e21428a5..6d9f7a02bb 100644 --- a/src/core/hle/kernel/handle_table.cpp +++ b/src/core/hle/kernel/handle_table.cpp @@ -26,7 +26,7 @@ ResultVal HandleTable::Create(SharedPtr obj) { u16 slot = next_free_slot; if (slot >= generations.size()) { LOG_ERROR(Kernel, "Unable to allocate Handle, too many slots in use."); - return ERR_OUT_OF_HANDLES; + return ERR_HANDLE_TABLE_FULL; } next_free_slot = generations[slot]; diff --git a/src/core/hle/kernel/handle_table.h b/src/core/hle/kernel/handle_table.h index 22ddda6300..aee3583e8a 100644 --- a/src/core/hle/kernel/handle_table.h +++ b/src/core/hle/kernel/handle_table.h @@ -47,7 +47,7 @@ public: /** * Allocates a handle for the given object. * @return The created Handle or one of the following errors: - * - `ERR_OUT_OF_HANDLES`: the maximum number of handles has been exceeded. + * - `ERR_HANDLE_TABLE_FULL`: the maximum number of handles has been exceeded. */ ResultVal Create(SharedPtr obj);