1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: os_Result.h 4 Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. 5 These coded instructions, statements, and computer programs contain 6 proprietary information of Nintendo of America Inc. and/or Nintendo 7 Company Ltd., and are protected by Federal copyright law. They may 8 not be disclosed to third parties or copied or duplicated in any form, 9 in whole or in part, without the prior written consent of Nintendo. 10 $Rev: 32444 $ 11 *--------------------------------------------------------------------------- 12 13 14 */ 15 /* Please see man pages for details 16 17 18 19 */ 20 21 #ifndef NN_OS_OS_RESULT_H_ 22 #define NN_OS_OS_RESULT_H_ 23 24 #ifdef __cplusplus 25 26 #include <nn/Result.h> 27 28 namespace nn { namespace os { 29 30 /* Please see man pages for details 31 32 33 34 */ 35 enum Description 36 { 37 DESCRIPTION_FAILED_TO_ALLOCATE_MEMORY = 1, // 38 DESCRIPTION_FAILED_TO_ALLOCATE_SHARED_MEMORY = 2, // 39 DESCRIPTION_FAILED_TO_ALLOCATE_THREAD = 3, // 40 DESCRIPTION_FAILED_TO_ALLOCATE_MUTEX = 4, // 41 DESCRIPTION_FAILED_TO_ALLOCATE_SEMAPHORE = 5, // 42 DESCRIPTION_FAILED_TO_ALLOCATE_EVENT = 6, // 43 DESCRIPTION_FAILED_TO_ALLOCATE_TIMER = 7, // 44 DESCRIPTION_FAILED_TO_ALLOCATE_PORT = 8, // 45 DESCRIPTION_FAILED_TO_ALLOCATE_SESSION = 9, // 46 DESCRIPTION_EXCEED_MEMORY_LIMIT = 10, // 47 DESCRIPTION_EXCEED_SHARED_MEMORY_LIMIT = 11, // 48 DESCRIPTION_EXCEED_THREAD_LIMIT = 12, // 49 DESCRIPTION_EXCEED_MUTEX_LIMIT = 13, // 50 DESCRIPTION_EXCEED_SEMAPHORE_LIMIT = 14, // 51 DESCRIPTION_EXCEED_EVENT_LIMIT = 15, // 52 DESCRIPTION_EXCEED_TIMER_LIMIT = 16, // 53 DESCRIPTION_EXCEED_PORT_LIMIT = 17, // 54 DESCRIPTION_EXCEED_SESSION_LIMIT = 18, // 55 DESCRIPTION_MAX_HANDLE = 19, // 56 DESCRIPTION_INACCESSIBLE_PAGE = 20, // 57 DESCRIPTION_ABANDONED = 21, // 58 // 22 Eliminated 59 // 23 Eliminated 60 DESCRIPTION_INVALID_PROCESS_ID = 24, // 61 DESCRIPTION_INVALID_THREAD_ID = 25, // 62 DESCRIPTION_SESSION_CLOSED = 26, // 63 DESCRIPTION_INVALID_MESSAGE = 28, // 64 DESCRIPTION_MANUAL_RESET_EVENT_REQUIRED = 29, // 65 DESCRIPTION_TOO_LONG_NAME = 30, // 66 DESCRIPTION_NOT_OWNED = 31, // 67 DESCRIPTION_PROCESS_TERMINATED = 32, // 68 DESCRIPTION_INVALID_TLS_INDEX = 33, // 69 DESCRIPTION_NO_RUNNABLE_PROCESSOR = 34, // 70 DESCRIPTION_NO_SESSION = 35, // 71 DESCRIPTION_USING_REGION = 36, // 72 DESCRIPTION_ALREADY_RECEIVED = 37, // 73 DESCRIPTION_CANCEL_REQUESTD = 38, // 74 DESCRIPTION_NOT_RECEIVED = 39, // 75 // 40 Eliminated 76 DESCRIPTION_DELIVER_ARG_NOT_READY = 41, // 77 DESCRIPTION_DELIVER_ARG_OVER_SIZE = 42, // 78 DESCRIPTION_INVALID_DELIVER_ARG = 43, // 79 DESCRIPTION_I_AM_OWNER = 44, // 80 DESCRIPTION_EXCEEDS_SHARED_LIMIT = 45, 81 DESCRIPTION_UNEXPECTED_PERMISSION = 46, 82 DESCRIPTION_INVALID_TAG = 47, 83 DESCRIPTION_INVALID_FORMAT = 48, 84 DESCRIPTION_OTHER_HANDLE = 49, 85 DESCRIPTION_FAILED_TO_ALLOCATE_ADDRESS_ARBITER = 50, 86 DESCRIPTION_EXCEED_ADDRESS_ARBITER_LIMIT = 51, 87 DESCRIPTION_OVER_PORT_CAPACITY = 52, 88 DESCRIPTION_NOT_MAPPED = 53, 89 90 DESCRIPTION_OBSOLETE_RESULT = 1023 // 91 }; 92 93 NN_DEFINE_RESULT_FUNC_LM( 94 MakePermanentResult, 95 Result::LEVEL_PERMANENT, Result::MODULE_NN_FND 96 ); 97 98 NN_DEFINE_RESULT_CONST( 99 ResultNoRunnableProcessor, 100 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_NO_RUNNABLE_PROCESSOR 101 ); 102 103 NN_DEFINE_RESULT_CONST( 104 ResultNoSession, 105 Result::LEVEL_PERMANENT, Result::SUMMARY_WOULD_BLOCK, Result::MODULE_NN_OS, DESCRIPTION_NO_SESSION 106 ); 107 108 NN_DEFINE_RESULT_CONST( 109 ResultAlreadyInitialized, 110 Result::LEVEL_INFO, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_ALREADY_INITIALIZED 111 ); 112 113 NN_DEFINE_RESULT_CONST_LM( 114 ResultInvalidTLSIndex, 115 MakePermanentResult, Result::SUMMARY_INVALID_ARGUMENT, DESCRIPTION_INVALID_TLS_INDEX 116 ); 117 118 NN_DEFINE_RESULT_CONST_LM( 119 ResultOutOfMemory, 120 MakePermanentResult, Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::DESCRIPTION_OUT_OF_MEMORY 121 ); 122 123 NN_DEFINE_RESULT_FUNC_LSM( 124 MakeResultInvalidArgument, 125 Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_OS 126 ); 127 128 NN_DEFINE_RESULT_FUNC_LSM( 129 MakeResultWrongArgument, 130 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS 131 ); 132 133 NN_DEFINE_RESULT_CONST( 134 ResultNotImplemented, 135 Result::LEVEL_USAGE, Result::SUMMARY_NOT_SUPPORTED, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_NOT_IMPLEMENTED 136 ); 137 138 NN_DEFINE_RESULT_CONST_LM( 139 ResultResourceLimitAlreadyAttached, 140 MakePermanentResult, Result::SUMMARY_INVALID_STATE, nn::Result::DESCRIPTION_ALREADY_INITIALIZED 141 ); 142 143 NN_DEFINE_RESULT_CONST_LM( 144 ResultMaxHandle, 145 MakePermanentResult, Result::SUMMARY_OUT_OF_RESOURCE, DESCRIPTION_MAX_HANDLE 146 ); 147 148 NN_DEFINE_RESULT_CONST_LM( 149 ResultResourceLimitNotAttached, 150 MakePermanentResult, Result::SUMMARY_INVALID_STATE, nn::Result::DESCRIPTION_NOT_INITIALIZED 151 ); 152 153 NN_DEFINE_RESULT_CONST( 154 ResultMisalignedAddress, 155 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_MISALIGNED_ADDRESS 156 ); 157 158 NN_DEFINE_RESULT_CONST( 159 ResultMisalignedSize, 160 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_MISALIGNED_SIZE 161 ); 162 163 NN_DEFINE_RESULT_CONST( 164 ResultInvalidAddress, 165 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_INVALID_ADDRESS 166 ); 167 168 NN_DEFINE_RESULT_CONST( 169 ResultInvalidCombination, 170 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_INVALID_COMBINATION 171 ); 172 173 NN_DEFINE_RESULT_CONST( 174 ResultBusy, 175 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_BUSY 176 ); 177 178 NN_DEFINE_RESULT_CONST( 179 ResultTooLongName, 180 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_TOO_LONG_NAME 181 ); 182 183 NN_DEFINE_RESULT_CONST( 184 ResultInaccessiblePage, 185 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_INACCESSIBLE_PAGE 186 ); 187 188 NN_DEFINE_RESULT_CONST( 189 ResultNotFound, 190 Result::LEVEL_PERMANENT, Result::SUMMARY_NOT_FOUND, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_NOT_FOUND 191 ); 192 193 NN_DEFINE_RESULT_CONST( 194 ResultInvalidHandle, 195 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_INVALID_HANDLE 196 ); 197 198 NN_DEFINE_RESULT_CONST( 199 ResultInvalidThreadId, 200 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_INVALID_THREAD_ID 201 ); 202 203 NN_DEFINE_RESULT_CONST( 204 ResultNoData, 205 Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_NO_DATA 206 ); 207 208 NN_DEFINE_RESULT_CONST( 209 ResultOutOfRange, 210 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_OUT_OF_RANGE 211 ); 212 213 NN_DEFINE_RESULT_CONST( 214 ResultInvalidProcessId, 215 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_INVALID_PROCESS_ID 216 ); 217 218 NN_DEFINE_RESULT_CONST( 219 ResultAlreadyExists, 220 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_ALREADY_EXISTS 221 ); 222 223 NN_DEFINE_RESULT_CONST( 224 ResultSessionClosed, 225 Result::LEVEL_STATUS, Result::SUMMARY_CANCELLED, Result::MODULE_NN_OS, DESCRIPTION_SESSION_CLOSED 226 ); 227 228 NN_DEFINE_RESULT_CONST( 229 ResultNotAuthorized, 230 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_NOT_AUTHORIZED 231 ); 232 233 NN_DEFINE_RESULT_CONST( 234 ResultDeliverArgNotReady, 235 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_OS, DESCRIPTION_DELIVER_ARG_NOT_READY 236 ); 237 238 NN_DEFINE_RESULT_CONST( 239 ResultDeliverArgOverSize, 240 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_OS, DESCRIPTION_DELIVER_ARG_OVER_SIZE 241 ); 242 243 NN_DEFINE_RESULT_CONST( 244 ResultInvalidDeliverArg, 245 Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_OS, DESCRIPTION_INVALID_DELIVER_ARG 246 ); 247 248 NN_DEFINE_RESULT_CONST( 249 ResultIAmOwner, 250 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_I_AM_OWNER 251 ); 252 253 NN_DEFINE_RESULT_CONST( 254 ResultExceedsSharedLimit, 255 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_EXCEEDS_SHARED_LIMIT 256 ); 257 258 NN_DEFINE_RESULT_CONST( 259 ResultUnexpectedPermission, 260 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_UNEXPECTED_PERMISSION 261 ); 262 263 NN_DEFINE_RESULT_CONST( 264 ResultInvalidTag, 265 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_INVALID_TAG 266 ); 267 268 NN_DEFINE_RESULT_CONST( 269 ResultInvalidFormat, 270 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_INVALID_FORMAT 271 ); 272 273 NN_DEFINE_RESULT_CONST( 274 ResultOtherHandle, 275 Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_OS, DESCRIPTION_OTHER_HANDLE 276 ); 277 278 279 280 281 NN_DEFINE_RESULT_CONST( 282 ResultFailedToAllocateMemory, 283 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_MEMORY 284 ); 285 286 NN_DEFINE_RESULT_CONST( 287 ResultFailedToAllocateSharedMemory, 288 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_SHARED_MEMORY 289 ); 290 291 NN_DEFINE_RESULT_CONST( 292 ResultFailedToAllocateThread, 293 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_THREAD 294 ); 295 296 NN_DEFINE_RESULT_CONST( 297 ResultFailedToAllocateMutex, 298 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_MUTEX 299 ); 300 301 NN_DEFINE_RESULT_CONST( 302 ResultFailedToAllocateSemaphore, 303 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_SEMAPHORE 304 ); 305 306 NN_DEFINE_RESULT_CONST( 307 ResultFailedToAllocateEvent, 308 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_EVENT 309 ); 310 311 NN_DEFINE_RESULT_CONST( 312 ResultFailedToAllocateTimer, 313 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_TIMER 314 ); 315 316 NN_DEFINE_RESULT_CONST( 317 ResultFailedToAllocatePort, 318 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_PORT 319 ); 320 321 NN_DEFINE_RESULT_CONST( 322 ResultFailedToAllocateSession, 323 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_SESSION 324 ); 325 326 NN_DEFINE_RESULT_CONST( 327 ResultExceedMemoryLimit, 328 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_MEMORY_LIMIT 329 ); 330 331 NN_DEFINE_RESULT_CONST( 332 ResultExceedSharedMemoryLimit, 333 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_SHARED_MEMORY_LIMIT 334 ); 335 336 NN_DEFINE_RESULT_CONST( 337 ResultExceedThreadLimit, 338 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_THREAD_LIMIT 339 ); 340 341 NN_DEFINE_RESULT_CONST( 342 ResultExceedMutexLimit, 343 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_MUTEX_LIMIT 344 ); 345 346 NN_DEFINE_RESULT_CONST( 347 ResultExceedSemaphoreLimit, 348 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_SEMAPHORE_LIMIT 349 ); 350 351 NN_DEFINE_RESULT_CONST( 352 ResultExceedEventLimit, 353 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_EVENT_LIMIT 354 ); 355 356 NN_DEFINE_RESULT_CONST( 357 ResultExceedTimerLimit, 358 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_TIMER_LIMIT 359 ); 360 361 NN_DEFINE_RESULT_CONST( 362 ResultExceedPortLimit, 363 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_PORT_LIMIT 364 ); 365 366 NN_DEFINE_RESULT_CONST( 367 ResultExceedSessionLimit, 368 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_SESSION_LIMIT 369 ); 370 371 NN_DEFINE_RESULT_CONST( 372 ResultFailedToAllocateAddressArbiter, 373 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_FAILED_TO_ALLOCATE_ADDRESS_ARBITER 374 ); 375 376 NN_DEFINE_RESULT_CONST( 377 ResultExceedAddressArbiterLimit, 378 Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_OS, DESCRIPTION_EXCEED_ADDRESS_ARBITER_LIMIT 379 ); 380 381 NN_DEFINE_RESULT_CONST( 382 ResultOverPortCapacity, 383 Result::LEVEL_TEMPORARY, Result::SUMMARY_WOULD_BLOCK, Result::MODULE_NN_OS, DESCRIPTION_OVER_PORT_CAPACITY 384 ); 385 386 NN_DEFINE_RESULT_CONST( 387 ResultInvalidAddressState, 388 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_OS, nn::Result::DESCRIPTION_INVALID_ADDRESS 389 ); 390 391 NN_DEFINE_RESULT_CONST( 392 ResultNotMapped, 393 Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_OS, DESCRIPTION_NOT_MAPPED 394 ); 395 }} 396 397 #endif // __cplusplus 398 399 #endif /* NN_OS_OS_RESULT_H_ */ 400