mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 20:42:44 +02:00
174 lines
5.9 KiB
C
174 lines
5.9 KiB
C
/**
|
|
* @file result.h
|
|
* @brief Switch result code tools.
|
|
* @copyright libnx Authors
|
|
*/
|
|
#pragma once
|
|
#include "types.h"
|
|
|
|
/// Checks whether a result code indicates success.
|
|
#define R_SUCCEEDED(res) ((res)==0)
|
|
/// Checks whether a result code indicates failure.
|
|
#define R_FAILED(res) ((res)!=0)
|
|
/// Returns the module ID of a result code.
|
|
#define R_MODULE(res) ((res)&0x1FF)
|
|
/// Returns the description of a result code.
|
|
#define R_DESCRIPTION(res) (((res)>>9)&0x1FFF)
|
|
/// Masks out unused bits in a result code, retrieving the actual value for use in comparisons.
|
|
#define R_VALUE(res) ((res)&0x3FFFFF)
|
|
|
|
/// Builds a result code from its constituent components.
|
|
#define MAKERESULT(module,description) \
|
|
((((module)&0x1FF)) | ((description)&0x1FFF)<<9)
|
|
|
|
/// Builds a kernel error result code.
|
|
#define KERNELRESULT(description) \
|
|
MAKERESULT(Module_Kernel, KernelError_##description)
|
|
|
|
/// Module values
|
|
enum {
|
|
Module_Kernel=1,
|
|
Module_Libnx=345,
|
|
Module_HomebrewAbi=346,
|
|
Module_HomebrewLoader=347,
|
|
Module_LibnxNvidia=348,
|
|
Module_LibnxBinder=349,
|
|
};
|
|
|
|
/// Kernel error codes
|
|
enum {
|
|
KernelError_OutOfSessions=7,
|
|
KernelError_InvalidCapabilityDescriptor=14,
|
|
KernelError_NotImplemented=33,
|
|
KernelError_ThreadTerminating=59,
|
|
KernelError_OutOfDebugEvents=70,
|
|
KernelError_InvalidSize=101,
|
|
KernelError_InvalidAddress=102,
|
|
KernelError_ResourceExhausted=103,
|
|
KernelError_OutOfMemory=104,
|
|
KernelError_OutOfHandles=105,
|
|
KernelError_InvalidMemoryState=106,
|
|
KernelError_InvalidMemoryPermissions=108,
|
|
KernelError_InvalidMemoryRange=110,
|
|
KernelError_InvalidPriority=112,
|
|
KernelError_InvalidCoreId=113,
|
|
KernelError_InvalidHandle=114,
|
|
KernelError_InvalidUserBuffer=115,
|
|
KernelError_InvalidCombination=116,
|
|
KernelError_TimedOut=117,
|
|
KernelError_Cancelled=118,
|
|
KernelError_OutOfRange=119,
|
|
KernelError_InvalidEnumValue=120,
|
|
KernelError_NotFound=121,
|
|
KernelError_AlreadyExists=122,
|
|
KernelError_ConnectionClosed=123,
|
|
KernelError_UnhandledUserInterrupt=124,
|
|
KernelError_InvalidState=125,
|
|
KernelError_ReservedValue=126,
|
|
KernelError_InvalidHwBreakpoint=127,
|
|
KernelError_FatalUserException=128,
|
|
KernelError_OwnedByAnotherProcess=129,
|
|
KernelError_ConnectionRefused=131,
|
|
KernelError_OutOfResource=132,
|
|
KernelError_IpcMapFailed=259,
|
|
KernelError_IpcCmdbufTooSmall=260,
|
|
KernelError_NotDebugged=520,
|
|
};
|
|
|
|
/// libnx error codes
|
|
enum {
|
|
LibnxError_BadReloc=1,
|
|
LibnxError_OutOfMemory,
|
|
LibnxError_AlreadyMapped,
|
|
LibnxError_BadGetInfo_Stack,
|
|
LibnxError_BadGetInfo_Heap,
|
|
LibnxError_BadQueryMemory,
|
|
LibnxError_AlreadyInitialized,
|
|
LibnxError_NotInitialized,
|
|
LibnxError_NotFound,
|
|
LibnxError_IoError,
|
|
LibnxError_BadInput,
|
|
LibnxError_BadReent,
|
|
LibnxError_BufferProducerError,
|
|
LibnxError_HandleTooEarly,
|
|
LibnxError_HeapAllocFailed,
|
|
LibnxError_TooManyOverrides,
|
|
LibnxError_ParcelError,
|
|
LibnxError_BadGfxInit,
|
|
LibnxError_BadGfxEventWait,
|
|
LibnxError_BadGfxQueueBuffer,
|
|
LibnxError_BadGfxDequeueBuffer,
|
|
LibnxError_AppletCmdidNotFound,
|
|
LibnxError_BadAppletReceiveMessage,
|
|
LibnxError_BadAppletNotifyRunning,
|
|
LibnxError_BadAppletGetCurrentFocusState,
|
|
LibnxError_BadAppletGetOperationMode,
|
|
LibnxError_BadAppletGetPerformanceMode,
|
|
LibnxError_BadUsbCommsRead,
|
|
LibnxError_BadUsbCommsWrite,
|
|
LibnxError_InitFail_SM,
|
|
LibnxError_InitFail_AM,
|
|
LibnxError_InitFail_HID,
|
|
LibnxError_InitFail_FS,
|
|
LibnxError_BadGetInfo_Rng,
|
|
LibnxError_JitUnavailable,
|
|
LibnxError_WeirdKernel,
|
|
LibnxError_IncompatSysVer,
|
|
LibnxError_InitFail_Time,
|
|
LibnxError_TooManyDevOpTabs,
|
|
LibnxError_DomainMessageUnknownType,
|
|
LibnxError_DomainMessageTooManyObjectIds,
|
|
LibnxError_AppletFailedToInitialize,
|
|
LibnxError_ApmFailedToInitialize,
|
|
LibnxError_NvinfoFailedToInitialize,
|
|
LibnxError_NvbufFailedToInitialize,
|
|
LibnxError_LibAppletBadExit,
|
|
LibnxError_InvalidCmifOutHeader,
|
|
LibnxError_ShouldNotHappen,
|
|
LibnxError_Timeout,
|
|
};
|
|
|
|
/// libnx binder error codes
|
|
enum {
|
|
LibnxBinderError_Unknown=1,
|
|
LibnxBinderError_NoMemory,
|
|
LibnxBinderError_InvalidOperation,
|
|
LibnxBinderError_BadValue,
|
|
LibnxBinderError_BadType,
|
|
LibnxBinderError_NameNotFound,
|
|
LibnxBinderError_PermissionDenied,
|
|
LibnxBinderError_NoInit,
|
|
LibnxBinderError_AlreadyExists,
|
|
LibnxBinderError_DeadObject,
|
|
LibnxBinderError_FailedTransaction,
|
|
LibnxBinderError_BadIndex,
|
|
LibnxBinderError_NotEnoughData,
|
|
LibnxBinderError_WouldBlock,
|
|
LibnxBinderError_TimedOut,
|
|
LibnxBinderError_UnknownTransaction,
|
|
LibnxBinderError_FdsNotAllowed,
|
|
};
|
|
|
|
/// libnx nvidia error codes
|
|
enum {
|
|
LibnxNvidiaError_Unknown=1,
|
|
LibnxNvidiaError_NotImplemented, ///< Maps to Nvidia: 1
|
|
LibnxNvidiaError_NotSupported, ///< Maps to Nvidia: 2
|
|
LibnxNvidiaError_NotInitialized, ///< Maps to Nvidia: 3
|
|
LibnxNvidiaError_BadParameter, ///< Maps to Nvidia: 4
|
|
LibnxNvidiaError_Timeout, ///< Maps to Nvidia: 5
|
|
LibnxNvidiaError_InsufficientMemory, ///< Maps to Nvidia: 6
|
|
LibnxNvidiaError_ReadOnlyAttribute, ///< Maps to Nvidia: 7
|
|
LibnxNvidiaError_InvalidState, ///< Maps to Nvidia: 8
|
|
LibnxNvidiaError_InvalidAddress, ///< Maps to Nvidia: 9
|
|
LibnxNvidiaError_InvalidSize, ///< Maps to Nvidia: 10
|
|
LibnxNvidiaError_BadValue, ///< Maps to Nvidia: 11
|
|
LibnxNvidiaError_AlreadyAllocated, ///< Maps to Nvidia: 13
|
|
LibnxNvidiaError_Busy, ///< Maps to Nvidia: 14
|
|
LibnxNvidiaError_ResourceError, ///< Maps to Nvidia: 15
|
|
LibnxNvidiaError_CountMismatch, ///< Maps to Nvidia: 16
|
|
LibnxNvidiaError_SharedMemoryTooSmall, ///< Maps to Nvidia: 0x1000
|
|
LibnxNvidiaError_FileOperationFailed, ///< Maps to Nvidia: 0x30003
|
|
LibnxNvidiaError_IoctlFailed, ///< Maps to Nvidia: 0x3000F
|
|
};
|