wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
result.h
Go to the documentation of this file.
1#pragma once
2#include <wut.h>
3
11typedef struct NNResult NNResult;
12
20{
22 int32_t value;
23};
24
37static inline int NNResult_IsSuccess(NNResult result)
38{
39 return result.value >= 0;
40}
41
54static inline int NNResult_IsFailure(NNResult result)
55{
56 return result.value < 0;
57}
58
59#ifdef __cplusplus
60
61namespace nn
62{
63
67class Result
68{
69public:
78
87
120
122 {
207 };
208
224
229
230public:
232 mValue(0)
233 {
234 }
235
236 Result(Level level, Module module, unsigned description) :
237 mValue(((level & 0x7) << 29) | ((module & 0x1FF) << 20) | (description & 0xFFFFF))
238 {
239 }
240
241 Result(const NNResult &result) :
242 mValue(result.value)
243 {
244 }
245
255 bool IsFailure() const
256 {
257 return !IsSuccess();
258 }
259
269 bool IsSuccess() const
270 {
271 return mValue >= 0; // level >= 0
272 }
273
274 bool IsLegacy() const
275 {
276 return ((mValue >> 27) & 0x3) == SIGNATURE_IS_LEGACY;
277 }
278
279 unsigned GetDescription() const
280 {
281 return mValue & (IsLegacy() ? 0x3FF : 0xFFFFF);
282 }
283
284 int GetLevel() const
285 {
286 if (IsLegacy()) {
287 return (mValue << 14) >> 28; // cause arithmetic shift
288 }
289
290 return mValue >> 29;
291 }
292
293 unsigned GetModule() const
294 {
295 return (mValue >> 20) & (IsLegacy() ? 0x7F : 0x1FF);
296 }
297
298 unsigned GetSummary() const
299 {
300 if (IsLegacy()) {
301 return (mValue >> 10) & 0xF;
302 }
303
304 return 0;
305 }
306
307 operator bool() const
308 {
309 return IsSuccess();
310 }
311
312 operator NNResult() const
313 {
314 NNResult result;
315 result.value = mValue;
316 return result;
317 }
318
319 bool operator==(const Result &other) const
320 {
321 return mValue == other.mValue;
322 }
323
324 bool operator!=(const Result &other) const
325 {
326 return mValue != other.mValue;
327 }
328
329private:
330 int32_t mValue;
331};
332
333} // namespace nn
334
335#endif // ifdef __cplusplus
336
Result value type used by nn libraries.
Definition result.h:68
LegacySignature
Definition result.h:226
@ SIGNATURE_IS_LEGACY
Definition result.h:227
@ LEVEL_STATUS
Definition result.h:75
@ LEVEL_FATAL
Definition result.h:73
@ LEVEL_USAGE
Definition result.h:74
@ LEVEL_END
Definition result.h:76
@ LEVEL_SUCCESS
Definition result.h:72
@ SUMMARY_NOTHING_HAPPENED
Definition result.h:212
@ SUMMARY_NOT_SUPPORTED
Definition result.h:217
@ SUMMARY_SUCCESS
Definition result.h:211
@ SUMMARY_INVALID_ARGUMENT
Definition result.h:218
@ SUMMARY_INTERNAL
Definition result.h:222
@ SUMMARY_NOT_FOUND
Definition result.h:215
@ SUMMARY_STATUS_CHANGED
Definition result.h:221
@ SUMMARY_OUT_OF_RESOURCE
Definition result.h:214
@ SUMMARY_CANCELLED
Definition result.h:220
@ SUMMARY_WOULD_BLOCK
Definition result.h:213
@ SUMMARY_WRONG_ARGUMENT
Definition result.h:219
@ SUMMARY_INVALID_STATE
Definition result.h:216
bool IsSuccess() const
Determine if the Result instance represents a successful state.
Definition result.h:269
@ LEVEL_RESET
Definition result.h:82
@ LEVEL_INFO
Definition result.h:81
@ LEVEL_PERMANENT
Definition result.h:84
@ LEVEL_TEMPORARY
Definition result.h:85
@ LEVEL_REINIT
Definition result.h:83
unsigned GetDescription() const
Definition result.h:279
bool IsFailure() const
Determine if the Result instance represents a failure.
Definition result.h:255
int GetLevel() const
Definition result.h:284
@ RESULT_MODULE_NN_IPC
Definition result.h:91
@ RESULT_MODULE_NN_CONNTEST
Definition result.h:104
@ RESULT_MODULE_NN_EC
Definition result.h:112
@ RESULT_MODULE_NN_TEST
Definition result.h:118
@ RESULT_MODULE_NN_PDM
Definition result.h:96
@ RESULT_MODULE_NN_DRMAPP
Definition result.h:105
@ RESULT_MODULE_NN_SPM
Definition result.h:110
@ RESULT_MODULE_NN_ACP
Definition result.h:93
@ RESULT_MODULE_NN_EMD
Definition result.h:111
@ RESULT_MODULE_NN_SL
Definition result.h:114
@ RESULT_MODULE_NN_FP
Definition result.h:102
@ RESULT_MODULE_NN_NGC
Definition result.h:98
@ RESULT_MODULE_COMMON
Definition result.h:90
@ RESULT_MODULE_NN_NUP
Definition result.h:100
@ RESULT_MODULE_NN_NDM
Definition result.h:101
@ RESULT_MODULE_NN_BOSS
Definition result.h:92
@ RESULT_MODULE_NN_VCTL
Definition result.h:108
@ RESULT_MODULE_NN_NEIA
Definition result.h:109
@ RESULT_MODULE_NN_ECO
Definition result.h:115
@ RESULT_MODULE_NN_IOS
Definition result.h:94
@ RESULT_MODULE_NN_AC
Definition result.h:103
@ RESULT_MODULE_NN_TELNET
Definition result.h:106
@ RESULT_MODULE_NN_NFP
Definition result.h:117
@ RESULT_MODULE_NN_CIA
Definition result.h:113
@ RESULT_MODULE_NN_TRIAL
Definition result.h:116
@ RESULT_MODULE_NN_ACT
Definition result.h:97
@ RESULT_MODULE_NN_OLV
Definition result.h:107
@ RESULT_MODULE_NN_NIM
Definition result.h:95
@ RESULT_MODULE_NN_ECA
Definition result.h:99
unsigned GetModule() const
Definition result.h:293
Result(Level level, Module module, unsigned description)
Definition result.h:236
bool operator!=(const Result &other) const
Definition result.h:324
bool IsLegacy() const
Definition result.h:274
bool operator==(const Result &other) const
Definition result.h:319
Result(const NNResult &result)
Definition result.h:241
unsigned GetSummary() const
Definition result.h:298
@ MODULE_NN_TEST
Definition result.h:203
@ MODULE_NN_MCU
Definition result.h:195
@ MODULE_NN_CODEC
Definition result.h:137
@ MODULE_NN_SOCKET
Definition result.h:151
@ MODULE_NN_AMLOW
Definition result.h:170
@ MODULE_NN_HTTP
Definition result.h:163
@ MODULE_NN_CFG
Definition result.h:187
@ MODULE_NN_NIM
Definition result.h:175
@ MODULE_NN_SRV
Definition result.h:148
@ MODULE_NN_UPDATER
Definition result.h:157
@ MODULE_NN_SSL
Definition result.h:169
@ MODULE_NN_SND
Definition result.h:165
@ MODULE_NN_NEX
Definition result.h:171
@ MODULE_NN_EC
Definition result.h:201
@ MODULE_NN_UDS
Definition result.h:191
@ MODULE_NN_CAMERA
Definition result.h:143
@ MODULE_NN_DMNT
Definition result.h:131
@ MODULE_NN_HIO
Definition result.h:156
@ MODULE_NN_SPI
Definition result.h:138
@ MODULE_NN_DSP
Definition result.h:164
@ MODULE_NN_GYROSCOPE
Definition result.h:194
@ MODULE_NN_PXI
Definition result.h:139
@ MODULE_NN_DBM
Definition result.h:186
@ MODULE_NN_FS
Definition result.h:140
@ MODULE_NN_DI
Definition result.h:141
@ MODULE_NN_MC
Definition result.h:178
@ MODULE_NN_RO
Definition result.h:198
@ MODULE_NN_FND
Definition result.h:159
@ MODULE_NN_PL
Definition result.h:192
@ MODULE_NN_PIA
Definition result.h:205
@ MODULE_NN_DLP
Definition result.h:166
@ MODULE_NN_IR
Definition result.h:190
@ MODULE_NN_NEWS
Definition result.h:197
@ MODULE_NN_CARDSPI
Definition result.h:200
@ MODULE_NN_LOADER_SERVER
Definition result.h:127
@ MODULE_NN_FSI
Definition result.h:147
@ MODULE_NN_OS
Definition result.h:129
@ MODULE_NN_RDT
Definition result.h:173
@ MODULE_NN_ROMFS
Definition result.h:154
@ MODULE_NN_NDM
Definition result.h:149
@ MODULE_NN_NWM
Definition result.h:150
@ MODULE_NN_CEC
Definition result.h:189
@ MODULE_NN_DBG
Definition result.h:130
@ MODULE_NN_LDR
Definition result.h:152
@ MODULE_NN_NS
Definition result.h:196
@ MODULE_NN_CUP
Definition result.h:193
@ MODULE_NN_CARD
Definition result.h:182
@ MODULE_NN_NGC
Definition result.h:181
@ MODULE_NN_GX
Definition result.h:133
@ MODULE_NN_PMLOW
Definition result.h:146
@ MODULE_NN_PS
Definition result.h:188
@ MODULE_NN_FRIENDS
Definition result.h:172
@ MODULE_NN_UTIL
Definition result.h:125
@ MODULE_NN_ENC
Definition result.h:204
@ MODULE_NN_I2C
Definition result.h:134
@ MODULE_NN_MPWL
Definition result.h:161
@ MODULE_NN_ACC
Definition result.h:153
@ MODULE_NN_FATFS
Definition result.h:180
@ MODULE_NN_FILE_SERVER
Definition result.h:126
@ MODULE_NN_GD
Definition result.h:199
@ MODULE_NN_GPIO
Definition result.h:135
@ MODULE_NN_SDMC
Definition result.h:184
@ MODULE_NN_WEBBRS
Definition result.h:202
@ MODULE_NN_CSND
Definition result.h:168
@ MODULE_NN_MIC
Definition result.h:158
@ MODULE_NN_PDN
Definition result.h:132
@ MODULE_NN_HIOLOW
Definition result.h:167
@ MODULE_NN_CARDNOR
Definition result.h:183
@ MODULE_NN_MIDI
Definition result.h:177
@ MODULE_APPLICATION
Definition result.h:206
@ MODULE_NN_BOSS
Definition result.h:185
@ MODULE_NN_APPLET
Definition result.h:174
@ MODULE_NN_DD
Definition result.h:136
@ MODULE_NN_TCB
Definition result.h:128
@ MODULE_NN_PI
Definition result.h:144
@ MODULE_NN_PTM
Definition result.h:176
@ MODULE_NN_KERNEL
Definition result.h:124
@ MODULE_NN_AC
Definition result.h:162
@ MODULE_NN_PM
Definition result.h:145
@ MODULE_NN_MP
Definition result.h:160
@ MODULE_NN_HID
Definition result.h:142
@ MODULE_NN_SWC
Definition result.h:179
@ MODULE_COMMON
Definition result.h:123
@ MODULE_NN_AM
Definition result.h:155
int32_t value
Aggregate value of result bitfield.
Definition result.h:22
static int NNResult_IsFailure(NNResult result)
Determine if a NNResult represents a failure.
Definition result.h:54
static int NNResult_IsSuccess(NNResult result)
Determine if a NNResult represents a successful state.
Definition result.h:37
Result structure for nn libraries.
Definition result.h:20
Definition ac_cpp.h:16