diff --git a/nx/include/switch.h b/nx/include/switch.h index d2da2914..36b0b2ce 100644 --- a/nx/include/switch.h +++ b/nx/include/switch.h @@ -9,6 +9,7 @@ extern "C" { #endif #include +#include #include #ifdef __cplusplus diff --git a/nx/include/switch/result.h b/nx/include/switch/result.h new file mode 100644 index 00000000..ef5a951f --- /dev/null +++ b/nx/include/switch/result.h @@ -0,0 +1,20 @@ +/** + * @file result.h + * @brief Switch result code tools + */ +#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) + +/// Builds a result code from its constituent components. +#define MAKERESULT(module,description) \ + ((((module)&0x1FF)) | ((description)&0x1FFF)<<9) +