1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: boss_Const.h 4 5 Copyright (C)2009-2012 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: 46347 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NN_BOSS_BOSS_CONST_H_ 17 #define NN_BOSS_BOSS_CONST_H_ 18 19 #include <nn/types.h> 20 #include <nn/Result.h> 21 22 #ifdef __cplusplus 23 24 namespace nn { 25 namespace boss { 26 27 // NSD data types 28 static const bit32 DATA_TYPE_ALL = 0xffffffff; // 29 static const bit32 DATA_TYPE_APPDATA = 0x00010000; // 30 static const bit32 DATA_TYPE_NEWS = 0x00020000; // 31 static const bit32 DATA_TYPE_EXBANNER = 0x00040000; // 32 static const bit32 DATA_TYPE_DATASTORE = 0x00080000; // 33 34 // BOSS system constants 35 static const u32 MAX_FILEPATH_LENGTH = 256; // 36 static const u32 MAX_URL_LENGTH = 512; // 37 static const u32 MAX_HTTP_HEADER_LABEL = 32; // 38 static const u32 MAX_HTTP_HEADER_VALUE = 256; // 39 static const u32 MAX_HTTP_HEADER = 3; // 40 static const u32 MAX_HTTP_QUERY_NAME = 15; // 41 static const u32 MAX_HTTP_QUERY_VALUE = 16; // 42 static const u32 MAX_HTTP_QUERY = 3; // 43 static const u32 MAX_ROOT_CA = 3; // 44 static const u32 MAX_CLIENT_CERT = 1; // 45 static const u32 TASK_ID_LENGTH = 8; // 46 static const u32 MAX_ERROR_MESSAGE = 256; // 47 static const u32 MAX_APPLICATION_ID = 128; // 48 static const u32 MAX_TASK_ID = 128; // 49 static const u32 MAX_STEP_ID = 128; // 50 static const u32 CURRENT_STEP_ID = MAX_STEP_ID; // 51 static const u32 DEFAULT_STEP_ID = 0; // 52 static const u32 U32_CANNOT_GET_DATA = 0xFFFFFFFF; // 53 static const u32 MAX_LASTMODIFIED_LENGTH = 64; // 54 static const u32 UNLIMITED_COUNT = 0xFFFFFFFF; // 55 static const u32 MAX_STORAGE_ENTRY_COUNT = 2000; // 56 static const u32 DEFAULT_STORAGE_ENTRY_COUNT = 0; // 57 static const u32 MAX_STORAGE_RECYCLE_COUNT = 32; // 58 static const u32 MAX_ACCESS_KEY_LENGTH = 9; // 59 static const u32 MAX_DST_PRINCIPAL_ID = 100; // 60 static const u32 MAX_NEWS_SUBJECT_LENGTH = 32; // 61 static const u32 MAX_NEWS_MESSAGE_LENGTH = 150; // 62 static const u32 MAX_NEWS_JUMP_PARAM = 8; // 63 static const u32 MAX_TASK_FILE_PARAM = 512; // 64 static const char FG_ONLY_TASK_ID[] ="FGONLYT"; // 65 66 /* Please see man pages for details 67 68 69 */ 70 enum PositionBase 71 { 72 /* Please see man pages for details 73 74 */ 75 POSITION_BASE_BEGIN, 76 77 /* Please see man pages for details 78 79 */ 80 POSITION_BASE_CURRENT, 81 82 /* Please see man pages for details 83 84 */ 85 POSITION_BASE_END 86 }; 87 88 /* Please see man pages for details 89 90 91 */ 92 enum PropertyType 93 { 94 // Constants for referencing TaskPolicy attributes 95 TASK_PRIORITY, // 96 TASK_SCHEDULING_POLICY, // 97 TASK_TARGET_DURATION, // 98 TASK_EXEC_INTERVAL, // 99 TASK_EXEC_COUNT, // 100 TASK_PERMISSION, // 101 102 // Constants for referencing TaskAction attributes 103 ACTION_CODE, // 104 ACTION_URL, // 105 ACTION_OFFSET, // 106 ACTION_FILEDESC, // 107 ACTION_FILEPATH, // 108 ACTION_FILEPATH_W, // 109 ACTION_FILE_HANDLE, // 110 ACTION_HTTP_HEADER, // 111 ACTION_CLIENT_CERT, // 112 ACTION_ROOT_CA, // 113 ACTION_PRIVATE_CLIENT_CERT, // 114 ACTION_PRIVATE_ROOT_CA, // 115 ACTION_AP_INFO, // 116 ACTION_CLIENT_CERT_NUM, // 117 ACTION_ROOT_CA_NUM, // 118 ACTION_LAST_MODIFIED_TIME, // 119 ACTION_SERIAL_ID, // 120 SIGNAL_TASK_EVENT, // 121 122 // Constants for referencing TaskOption attributes 123 TASK_EXEC_OPTION, // 124 TASK_STEP, // 125 TASK_OPTION_TARGET_STEP, // 126 TASK_OPTION_PARAM1, // 127 TASK_OPTION_PARAM2, // 128 129 // Constants for referencing TaskStatus attributes 130 TASK_STATE_CODE, // 131 TASK_STATE_TASK, // 132 TASK_STATE_RESUME, // 133 TASK_RESULT_CODE, // 134 TASK_SERVICE_STATUS, // 135 TASK_SERVICE_TERMINATED, // 136 TASK_COMM_ERROR_CODE, // 137 TASK_CURRENT_PRIORITY, // 138 TASK_EXECUTE_COUNT, // 139 TASK_PENDING_TIME, // 140 TASK_REMAIN_TIME, // 141 TASK_START_TIME, // 142 TASK_STEP_START_TIME, // 143 TASK_PROGRESS, // 144 TASK_DATA_SIZE, // 145 TASK_CURRENT_STEP, // 146 TASK_ACTIVE_RATE, // 147 TASK_REQUEST_RATE, // 148 TASK_LAST_MODIFIED_TIME, // 149 150 // Constants for referencing TaskError attributes 151 TASK_ERROR_RESULT_CODE, // 152 TASK_ERROR_CODE, // 153 TASK_ERROR_MESSAGE, // 154 155 // Constants for referencing ApplicationIdList attributes. (Enumerator used during internal processing.) 156 TASK_APPID_LIST_SIZE, // 157 TASK_APPID_LIST, // 158 159 // Constants for referencing TaskIdList attributes. (Enumerator used during internal processing.) 160 TASK_TASKID_LIST_SIZE, // 161 TASK_TASKID_LIST, // 162 163 // Constants for referencing StepIdList attributes. (Enumerator used during internal processing.) 164 TASK_STEPID_LIST_SIZE, // 165 TASK_STEPID_LIST, // 166 167 // Constants for referencing NsDataIdList attributes. (Enumerator used during internal processing.) 168 TASK_NSDATA_LIST_SIZE, // 169 TASK_NSDATA_LIST, // 170 171 // Constants used during internal processing. 172 ACTION_SIGNAL_TASK_EVENT, // 173 ACTION_HTTP_HEADER_VALUE, // 174 TASK_ID, // 175 176 // Constants for referencing attributes added anew in SDK version x.x and onward. 177 ACTION_FILE_PARAM, // 178 ACTION_CFG_INFO, // 179 180 ACTION_DATASTORE_GAME_ID, // 181 ACTION_DATASTORE_ACCESS_KEY, // 182 183 ACTION_DATASTORE_DOWNLOAD_NEWS_SUBJECT, // 184 ACTION_DATASTORE_DOWNLOAD_NEWS_MESSAGE, // 185 ACTION_DATASTORE_DOWNLOAD_NEWS_JUMP_PARAM, // 186 ACTION_DATASTORE_DOWNLOAD_NEWS_MODE, // 187 ACTION_DATASTORE_DOWNLOAD_NEWS_SERIAL_ID, // 188 189 ACTION_DATASTORE_UPLOAD_PERIOD, // 190 ACTION_DATASTORE_UPLOAD_DATA_TYPE, // 191 ACTION_DATASTORE_UPLOAD_DST_PRINCIPAL_ID_NUM, // 192 ACTION_DATASTORE_UPLOAD_DST_KIND, // 193 ACTION_DATASTORE_UPLOAD_DST_PRINCIPAL_ID, // 194 195 PROPERTY_TYPE_MAX_VALUE = (0x1u << 15) // 196 }; 197 198 /* Please see man pages for details 199 200 201 */ 202 enum SchedulingPolicy 203 { 204 ENUM_POLICY_START, // 205 STANDARD_POLICY, // 206 ENUM_POLICY_END, // 207 SCHEDULING_POLICY_MAX_VALUE = (0x1u << 7) // 208 }; 209 210 /* Please see man pages for details 211 212 213 */ 214 enum TaskPermission 215 { 216 TASK_PERMISSION_IN_NONE = 0, // 217 TASK_PERMISSION_IN_EULA_DISAGREEMENT, // 218 TASK_PERMISSION_IN_PARENTAL_CONTROL, // 219 TASK_PERMISSION_IN_BOTH, // 220 TASK_PERMISSION_MAX_VALUE = (0x1u << 7) // 221 }; 222 223 /* Please see man pages for details 224 225 226 */ 227 enum TaskPriority 228 { 229 PRIORITY_EXPEDITE1 = 21, // 230 PRIORITY_EXPEDITE2 = 22, // 231 PRIORITY_EXPEDITE3 = 23, // 232 PRIORITY_EXPEDITE4 = 24, // 233 PRIORITY_EXPEDITE5 = 25, // 234 PRIORITY_EXPEDITE6 = 26, // 235 PRIORITY_EXPEDITE7 = 27, // 236 PRIORITY_EXPEDITE8 = 28, // 237 PRIORITY_EXPEDITE = 35, // 238 PRIORITY_HIGH = 80, // 239 PRIORITY_MEDIUM = 125, // 240 PRIORITY_LOW = 170, // 241 PRIORITY_LOWEST = 215, // 242 PRIORITY_LOWEST1 = 221, // 243 PRIORITY_LOWEST2 = 222, // 244 PRIORITY_LOWEST3 = 223, // 245 PRIORITY_LOWEST4 = 224, // 246 PRIORITY_LOWEST5 = 225, // 247 PRIORITY_LOWEST6 = 226, // 248 PRIORITY_LOWEST7 = 227, // 249 PRIORITY_LOWEST8 = 228, // 250 PRIORITY_STOPPED = 255, // 251 PRIORITY_MAX_VALUE = (0x1u << 7) // 252 }; 253 254 /* Please see man pages for details 255 256 257 */ 258 enum Action 259 { 260 ENUM_ACTION_START, // 261 DOWNLOAD_TASK, // 262 NSA_DOWNLOAD_TASK, // 263 UPLOAD_TASK, // 264 SIGNAL_TASK, // 265 CONFIG_UPLOAD_TASK, // 266 PLAYHISTORY_UPLOAD_TASK, // 267 PEDOMETER_UPLOAD_TASK, // 268 TASKINFO_UPLOAD_TASK, // 269 STREETPASSLOG_UPLOAD_TASK, // 270 DATASTORE_DOWNLOAD_TASK, // 271 DATASTORE_UPLOAD_TASK, // 272 ENUM_ACTION_END, // 273 ACTION_MAX_VALUE = (0x1u << 7) // 274 }; 275 276 /* Please see man pages for details 277 278 279 */ 280 enum ExecOption 281 { 282 ENUM_EXECOPTION_START, // 283 NORMAL_EXEC, // 284 ENUM_EXECOPTION_END, // 285 OPTION_MAX_VALUE = (0x1u << 7) // 286 }; 287 288 /* Please see man pages for details 289 290 291 */ 292 enum TaskStateCode 293 { 294 TASK_STOPPED, // 295 TASK_WAITING_TIMER, // 296 TASK_WAITING, // 297 TASK_RUNNING, // 298 TASK_PAUSED, // 299 TASK_REGISTERED, // 300 TASK_DONE, // 301 TASK_ERROR, // 302 TASK_RETRY, // 303 GET_TASK_STATE_ERROR, // 304 STATUS_MAX_VALUE = (0x1u << 7) // 305 }; 306 307 /* Please see man pages for details 308 309 310 */ 311 enum TaskResultCode 312 { 313 TASK_SUCCESS, // 314 BOSS_ERROR_NOMEM, // 315 316 GET_TASK_RESULT_ERROR, // 317 TASK_NOT_EXIST, // 318 TASK_CANCELED, // 319 320 // HTTP communication errors 321 HTTP_ERROR_NOMEM, // 322 HTTP_ERROR_CREATE_EVENT, // 323 HTTP_ERROR_CREATE_MUTEX, // 324 HTTP_ERROR_CREATE_QUEUE, // 325 HTTP_ERROR_CREATE_THREAD, // 326 HTTP_ERROR_IPC_SESSION, // 327 HTTP_ERROR_CLIENT_PROCESS_MAX, // 328 HTTP_ERROR_IPC_SESSION_MAX, // 329 HTTP_ERROR_MSGQ_SEND_LSN, // 330 HTTP_ERROR_MSGQ_RECV_LSN, // 331 HTTP_ERROR_MSGQ_SEND_COMM, // 332 HTTP_ERROR_CONN_NOMORE, // 333 HTTP_ERROR_CONN_STATUS, // 334 HTTP_ERROR_CONN_ADD, // 335 HTTP_ERROR_CONN_HOST_MAX, // 336 HTTP_ERROR_INVALID_URL, // 337 HTTP_ERROR_RESPONSE_HEADER, // 338 HTTP_ERROR_NO_NEWLINE, // 339 HTTP_ERROR_SSL, // 340 HTTP_ERROR_CERT_EXIST, // 341 HTTP_ERROR_NO_CA_CERT_STORE, // 342 HTTP_ERROR_NO_CLIENT_CERT, // 343 HTTP_ERROR_CA_CERT_STORE_MAX, // 344 HTTP_ERROR_CLIENT_CERT_MAX, // 345 HTTP_ERROR_FAIL_TO_CREATE_CERT_STORE, // 346 HTTP_ERROR_FAIL_TO_CREATE_CLIENT_STORE, // 347 HTTP_ERROR_DNS, // 348 HTTP_ERROR_SEND, // 349 HTTP_ERROR_RECV, // 350 HTTP_ERROR_CONNECT, // 351 HTTP_ERROR_GET_PROXY_SETTING, // 352 HTTP_ERROR_TIMEOUT, // 353 HTTP_ERROR_401_UNAUTHORIZED, // 354 HTTP_ERROR_403_FORBIDDEN, // 355 HTTP_ERROR_404_NOT_FOUND, // 356 HTTP_ERROR_408_REQUEST_TIMEOUT, // 357 HTTP_ERROR_416_REQUESTED_RANGE_NOT_SATISFABLE, // 358 HTTP_ERROR_500_INTERNAL_SERVER_ERROR, // 359 HTTP_ERROR_502_BAD_GATEWAY, // 360 HTTP_ERROR_503_SERVICE_UNAVAILABLE, // 361 HTTP_ERROR_504_GATEWAY_TIMEOUT, // 362 HTTP_ERROR_505_VERSION_NOT_SUPPORTED, // 363 HTTP_ERROR_UNSUPPORTED_STATUS, // 364 365 // SSL error 366 SSL_ERROR_FAILED, // 367 SSL_ERROR_WANT_READ, // 368 SSL_ERROR_WANT_WRITE, // 369 SSL_ERROR_SYSCALL, // 370 SSL_ERROR_ZERO_RETURN, // 371 SSL_ERROR_WANT_CONNECT, // 372 SSL_ERROR_SSLID, // 373 SSL_ERROR_VERIFY_CERT, // 374 SSL_ERROR_VERIFY_COMMON_NAME, // 375 SSL_ERROR_VERIFY_ROOT_CA, // 376 SSL_ERROR_VERIFY_CHAIN, // 377 SSL_ERROR_VERIFY_DATE, // 378 SSL_ERROR_GET_SERVER_CERT, // 379 SSL_ERROR_VERIFY_REVOKED_CERT, // 380 SSL_ERROR_OUT_OF_MEMORY, // 381 SSL_ERROR_SESSION, // 382 SSL_ERROR_FAIL_TO_CREATE_CERT_STROE, // 383 SSL_ERROR_FAIL_TO_CREATE_CRL_STORE, // 384 SSL_ERROR_FAIL_TO_CREATE_CLIENT_CERT, // 385 SSL_ERROR_CLIENT_PROCESS_MAX, // 386 SSL_ERROR_IPC_SESSION, // 387 SSL_ERROR_INTERNAL_CERT, // 388 SSL_ERROR_INTERNAL_CRL, // 389 390 // File system access errors 391 FS_ERROR_INVALID_POSITION_BASE, // 392 FS_ERROR_ARCHIVE_NOT_FOUND, // 393 FS_ERROR_FAILED_OPEN_FILE, // 394 FS_ERROR_UNSUPPORTED_OPERATION, // 395 FS_ERROR_INVALID_PATH_FORMAT, // 396 FS_ERROR_ACCESS_DENIED, // 397 FS_ERROR_LIBRARY_NOT_INITIALIZED, // 398 FS_ERROR_INVALID_POSITION, // 399 FS_ERROR_TOO_LONG_PATH, // 400 FS_ERROR_NOT_DEVELOPMENT_ID, // 401 FS_ERROR_HASH_MISMATCH, // 402 FS_ERROR_NO_SUCH_PROCESS_REGISTERED, // 403 FS_ERROR_INVALID_CXI_FORMAT, // 404 FS_ERROR_UNSUPPORTED_ALIGNMENT, // 405 FS_ERROR_INVALID_HANDLE, // 406 FS_ERROR_NOT_FOUND, // 407 408 // NSA Errors 409 NSA_ERROR_STORAGE_INSUFFICIENCY, // 410 NSA_ERROR_NUMBER_OF_NSD_MAX, // 411 NSA_ERROR_VERIFY_HASH, // 412 NSA_ERROR_VERIFY_SIGNATURE, // 413 NSA_NSD_ERROR_VERIFY_HASH, // 414 NSA_NSD_ERROR_VERIFY_SIGNATURE, // 415 NSA_NSD_ERROR_INVALID_FORMAT, // 416 NSA_ERROR_INVALID_FORMAT, // 417 418 // Unexpected errors 419 SEVERE_ERROR, // 420 UNKNOWN_ERROR, // 421 FS_UNKNOWN_ERROR = (UNKNOWN_ERROR + nn::Result::MODULE_NN_FS), // 422 ERROR_MAX_VALUE = (0x1u << 7) // 423 }; 424 425 /* Please see man pages for details 426 427 428 */ 429 enum TaskServiceStatus 430 { 431 SERVICE_TERMINATED, // 432 SERVICE_AVAILABLE, // 433 SERVICE_UNKNOWN, // 434 GET_SERVICE_STATUS_ERROR, // 435 SERVICE_MAX_VALUE = (0x1u << 7) // 436 }; 437 438 /* Please see man pages for details 439 440 441 */ 442 enum HeaderInfoType 443 { 444 NSD_TITLEID, // 445 NSD_FLAGS, // 446 NSD_DATATYPE, // 447 NSD_LENGTH, // 448 NSD_SERIALID, // 449 NSD_VERSION, // 450 NSD_ALL, // 451 NSD_HEADER_MAX_VALUE = (0x1u << 7) // 452 }; 453 454 /* Please see man pages for details 455 456 457 */ 458 enum FileDescriptor 459 { 460 CHAR_TYPE, // 461 WCHAR_TYPE, // 462 HANDLE_TYPE, // 463 BOSSDB_TYPE, // 464 BOSSSTORAGE_TYPE, // 465 DATASTORE_DOWNLOAD_TYPE, // 466 DATASTORE_UPLOAD_TYPE, // 467 FILE_TYPE_MAX_VALUE = (0x1u << 7) // 468 }; 469 470 /* Please see man pages for details 471 472 473 */ 474 enum ApInfoType 475 { 476 APINFOTYPE_NONE = 0x00, // 477 APINFOTYPE_APGROUP = 0x01, // 478 APINFOTYPE_APAREA = 0x02, // 479 APINFOTYPE_AP = 0x04, // 480 APINFOTYPE_MAX_VALUE = (0x1u << 7) // 481 }; 482 483 /* Please see man pages for details 484 485 486 */ 487 enum CfgInfoType 488 { 489 CFGINFOTYPE_NONE = 0x00, // 490 CFGINFOTYPE_COUNTRY = 0x01, // 491 CFGINFOTYPE_LANGUAGE = 0x02, // 492 CFGINFOTYPE_MAX_VALUE = (0x1u << 7) // 493 }; 494 495 /* Please see man pages for details 496 497 498 */ 499 enum StorageType 500 { 501 USER_EXT_SAVEDATA_STORAGE, // 502 SHARED_EXT_SAVEDATA_STORAGE, // 503 BOSSSTORAGETYPE_MAX_VALUE = (0x1u << 7) // 504 }; 505 506 /* Please see man pages for details 507 508 509 */ 510 enum NewsMode 511 { 512 NEWSMODE_NONE, // 513 NEWSMODE_PUBLISH, // 514 NEWSMODE_MAX_VALUE = (0x1u << 7) // 515 }; 516 517 /* Please see man pages for details 518 519 520 521 */ 522 enum DstKind 523 { 524 DSTKIND_FRIEND = 1, // 525 DSTKIND_SPECIFIED = 2, // 526 DSTKIND_SPECIFIED_FRIEND = 4, // 527 DSTKIND_MAX_VALUE = (0x1u << 31) // 528 }; 529 530 /* Please see man pages for details 531 532 533 */ 534 enum QueryType 535 { 536 QUERYTYPE_NONE, // 537 538 QUERYTYPE_ASCII, // 539 QUERYTYPE_S32, // 540 QUERYTYPE_U32, // 541 QUERYTYPE_S64, // 542 QUERYTYPE_U64, // 543 544 QUERYTYPE_HEX_S32 = QUERYTYPE_S32 | (0x1u << 4), // 545 QUERYTYPE_HEX_U32 = QUERYTYPE_U32 | (0x1u << 4), // 546 QUERYTYPE_HEX_S64 = QUERYTYPE_S64 | (0x1u << 4), // 547 QUERYTYPE_HEX_U64 = QUERYTYPE_U64 | (0x1u << 4), // 548 549 QUERYTYPE_MAX_VALUE = (0x1u << 7) // 550 }; 551 552 } // end of namespace boss 553 } // end of namespace nn 554 555 556 #endif /*__cplusplus*/ 557 558 #endif /* NN_BOSS_BOSS_CONST_H_ */ 559