libnx
result.h
Go to the documentation of this file.
1 /**
2  * @file result.h
3  * @brief Switch result code tools.
4  * @copyright libnx Authors
5  */
6 #pragma once
7 #include "types.h"
8 
9 /// Checks whether a result code indicates success.
10 #define R_SUCCEEDED(res) ((res)==0)
11 /// Checks whether a result code indicates failure.
12 #define R_FAILED(res) ((res)!=0)
13 /// Returns the module ID of a result code.
14 #define R_MODULE(res) ((res)&0x1FF)
15 /// Returns the description of a result code.
16 #define R_DESCRIPTION(res) (((res)>>9)&0x1FFF)
17 
18 /// Builds a result code from its constituent components.
19 #define MAKERESULT(module,description) \
20  ((((module)&0x1FF)) | ((description)&0x1FFF)<<9)
21 
22 /// Module values
23 enum {
24  Module_Kernel=1,
25  Module_Libnx=345,
26  Module_LibnxNvidia=348,
27 };
28 
29 /// Kernel error codes
30 enum {
31  KernelError_Timeout=117,
32 };
33 
34 /// libnx error codes
35 enum {
36  LibnxError_BadReloc=1,
37  LibnxError_OutOfMemory,
38  LibnxError_AlreadyMapped,
39  LibnxError_BadGetInfo_Stack,
40  LibnxError_BadGetInfo_Heap,
41  LibnxError_BadQueryMemory,
42  LibnxError_AlreadyInitialized,
43  LibnxError_NotInitialized,
44  LibnxError_NotFound,
45  LibnxError_IoError,
46  LibnxError_BadInput,
47  LibnxError_BadReent,
48  LibnxError_BufferProducerError,
49  LibnxError_HandleTooEarly,
50  LibnxError_HeapAllocFailed,
51  LibnxError_TooManyOverrides,
52  LibnxError_ParcelError,
53  LibnxError_BadGfxInit,
54  LibnxError_BadGfxEventWait,
55  LibnxError_BadGfxQueueBuffer,
56  LibnxError_BadGfxDequeueBuffer,
57  LibnxError_AppletCmdidNotFound,
58  LibnxError_BadAppletReceiveMessage,
59  LibnxError_BadAppletNotifyRunning,
60  LibnxError_BadAppletGetCurrentFocusState,
61  LibnxError_BadAppletGetOperationMode,
62  LibnxError_BadAppletGetPerformanceMode,
63  LibnxError_BadUsbCommsRead,
64  LibnxError_BadUsbCommsWrite,
65  LibnxError_InitFail_SM,
66  LibnxError_InitFail_AM,
67  LibnxError_InitFail_HID,
68  LibnxError_InitFail_FS,
69  LibnxError_BadGetInfo_Rng,
70  LibnxError_JitUnavailable,
71  LibnxError_WeirdKernel,
72  LibnxError_IncompatSysVer,
73  LibnxError_InitFail_Time,
74  LibnxError_TooManyDevOpTabs,
75 };
76 
77 /// libnx nvidia error codes
78 enum {
79  LibnxNvidiaError_Unknown=1,
80  LibnxNvidiaError_NotImplemented, ///< Maps to Nvidia: 1
81  LibnxNvidiaError_NotSupported, ///< Maps to Nvidia: 2
82  LibnxNvidiaError_NotInitialized, ///< Maps to Nvidia: 3
83  LibnxNvidiaError_BadParameter, ///< Maps to Nvidia: 4
84  LibnxNvidiaError_Timeout, ///< Maps to Nvidia: 5
85  LibnxNvidiaError_InsufficientMemory, ///< Maps to Nvidia: 6
86  LibnxNvidiaError_ReadOnlyAttribute, ///< Maps to Nvidia: 7
87  LibnxNvidiaError_InvalidState, ///< Maps to Nvidia: 8
88  LibnxNvidiaError_InvalidAddress, ///< Maps to Nvidia: 9
89  LibnxNvidiaError_InvalidSize, ///< Maps to Nvidia: 10
90  LibnxNvidiaError_BadValue, ///< Maps to Nvidia: 11
91  LibnxNvidiaError_AlreadyAllocated, ///< Maps to Nvidia: 13
92  LibnxNvidiaError_Busy, ///< Maps to Nvidia: 14
93  LibnxNvidiaError_ResourceError, ///< Maps to Nvidia: 15
94  LibnxNvidiaError_CountMismatch, ///< Maps to Nvidia: 16
95  LibnxNvidiaError_SharedMemoryTooSmall, ///< Maps to Nvidia: 0x1000
96  LibnxNvidiaError_FileOperationFailed, ///< Maps to Nvidia: 0x30003
97  LibnxNvidiaError_IoctlFailed, ///< Maps to Nvidia: 0x3000F
98 };
Various system types.
Maps to Nvidia: 4.
Definition: result.h:83
Maps to Nvidia: 13.
Definition: result.h:91
Maps to Nvidia: 6.
Definition: result.h:85
Maps to Nvidia: 15.
Definition: result.h:93
Maps to Nvidia: 0x30003.
Definition: result.h:96
Maps to Nvidia: 16.
Definition: result.h:94
Maps to Nvidia: 1.
Definition: result.h:80
Maps to Nvidia: 2.
Definition: result.h:81
Maps to Nvidia: 8.
Definition: result.h:87
Maps to Nvidia: 0x3000F.
Definition: result.h:97
Maps to Nvidia: 14.
Definition: result.h:92
Maps to Nvidia: 9.
Definition: result.h:88
Maps to Nvidia: 0x1000.
Definition: result.h:95
Maps to Nvidia: 3.
Definition: result.h:82
Maps to Nvidia: 11.
Definition: result.h:90
Maps to Nvidia: 7.
Definition: result.h:86
Maps to Nvidia: 10.
Definition: result.h:89
Maps to Nvidia: 5.
Definition: result.h:84