summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Lioncash2018-08-25 05:44:51 -0400
committerGravatar Lioncash2018-08-25 09:40:21 -0400
commit81ca46dd17dafa2a474a6f8eed748d604516034d (patch)
treeebec2110b01f8a243d0834828ebad7ef50ab5ac1
parentkernel/error: Add error code for invalid memory permissions (diff)
downloadyuzu-81ca46dd17dafa2a474a6f8eed748d604516034d.tar.gz
yuzu-81ca46dd17dafa2a474a6f8eed748d604516034d.tar.xz
yuzu-81ca46dd17dafa2a474a6f8eed748d604516034d.zip
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.
-rw-r--r--src/core/hle/kernel/errors.h4
-rw-r--r--src/core/hle/kernel/handle_table.cpp2
-rw-r--r--src/core/hle/kernel/handle_table.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/src/core/hle/kernel/errors.h b/src/core/hle/kernel/errors.h
index 8b4e05191..59c5c2a67 100644
--- a/src/core/hle/kernel/errors.h
+++ b/src/core/hle/kernel/errors.h
@@ -11,7 +11,6 @@ namespace Kernel {
11namespace ErrCodes { 11namespace ErrCodes {
12enum { 12enum {
13 // TODO(Subv): Remove these 3DS OS error codes. 13 // TODO(Subv): Remove these 3DS OS error codes.
14 OutOfHandles = 19,
15 SessionClosedByRemote = 26, 14 SessionClosedByRemote = 26,
16 PortNameTooLong = 30, 15 PortNameTooLong = 30,
17 NoPendingSessions = 35, 16 NoPendingSessions = 35,
@@ -20,6 +19,7 @@ enum {
20 19
21 // Confirmed Switch OS error codes 20 // Confirmed Switch OS error codes
22 InvalidAddress = 102, 21 InvalidAddress = 102,
22 HandleTableFull = 105,
23 InvalidMemoryState = 106, 23 InvalidMemoryState = 106,
24 InvalidMemoryPermissions = 108, 24 InvalidMemoryPermissions = 108,
25 InvalidProcessorId = 113, 25 InvalidProcessorId = 113,
@@ -37,7 +37,7 @@ enum {
37// double check that the code matches before re-using the constant. 37// double check that the code matches before re-using the constant.
38 38
39// TODO(bunnei): Replace these with correct errors for Switch OS 39// TODO(bunnei): Replace these with correct errors for Switch OS
40constexpr ResultCode ERR_OUT_OF_HANDLES(-1); 40constexpr ResultCode ERR_HANDLE_TABLE_FULL(ErrorModule::Kernel, ErrCodes::HandleTableFull);
41constexpr ResultCode ERR_SESSION_CLOSED_BY_REMOTE(-1); 41constexpr ResultCode ERR_SESSION_CLOSED_BY_REMOTE(-1);
42constexpr ResultCode ERR_PORT_NAME_TOO_LONG(-1); 42constexpr ResultCode ERR_PORT_NAME_TOO_LONG(-1);
43constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED(-1); 43constexpr 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 28e21428a..6d9f7a02b 100644
--- a/src/core/hle/kernel/handle_table.cpp
+++ b/src/core/hle/kernel/handle_table.cpp
@@ -26,7 +26,7 @@ ResultVal<Handle> HandleTable::Create(SharedPtr<Object> obj) {
26 u16 slot = next_free_slot; 26 u16 slot = next_free_slot;
27 if (slot >= generations.size()) { 27 if (slot >= generations.size()) {
28 LOG_ERROR(Kernel, "Unable to allocate Handle, too many slots in use."); 28 LOG_ERROR(Kernel, "Unable to allocate Handle, too many slots in use.");
29 return ERR_OUT_OF_HANDLES; 29 return ERR_HANDLE_TABLE_FULL;
30 } 30 }
31 next_free_slot = generations[slot]; 31 next_free_slot = generations[slot];
32 32
diff --git a/src/core/hle/kernel/handle_table.h b/src/core/hle/kernel/handle_table.h
index 22ddda630..aee3583e8 100644
--- a/src/core/hle/kernel/handle_table.h
+++ b/src/core/hle/kernel/handle_table.h
@@ -47,7 +47,7 @@ public:
47 /** 47 /**
48 * Allocates a handle for the given object. 48 * Allocates a handle for the given object.
49 * @return The created Handle or one of the following errors: 49 * @return The created Handle or one of the following errors:
50 * - `ERR_OUT_OF_HANDLES`: the maximum number of handles has been exceeded. 50 * - `ERR_HANDLE_TABLE_FULL`: the maximum number of handles has been exceeded.
51 */ 51 */
52 ResultVal<Handle> Create(SharedPtr<Object> obj); 52 ResultVal<Handle> Create(SharedPtr<Object> obj);
53 53