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