1 /*---------------------------------------------------------------------------* 2 3 Copyright (C)2012 Nintendo. All rights reserved. 4 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 11 *---------------------------------------------------------------------------*/ 12 13 #ifndef NN_SAVE_SAVE_API_H_ 14 #define NN_SAVE_SAVE_API_H_ 15 16 #include <cafe/fs.h> 17 #include <nn/save/save_Types.h> 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 /*---------------------------------------------------------------------------* 24 Name: SAVEInit 25 26 Description: Init SAVE lib 27 This function calls FSInit inside. 28 Therefore, please call it following FSInit. 29 30 Returns: Result code : 31 32 SAVE_STATUS_OK 33 SAVE_STATUS_FATAL_ERROR 34 *---------------------------------------------------------------------------*/ 35 SAVEStatus SAVEInit(void); 36 37 /*---------------------------------------------------------------------------* 38 Name: SAVEShutdown 39 40 Description: Shutdown SAVE lib 41 This function calls FSShutdown inside. 42 Therefore, please call FSShutdown following this function. 43 44 *---------------------------------------------------------------------------*/ 45 void SAVEShutdown(void); 46 47 /*---------------------------------------------------------------------------* 48 Name: SAVEInitSaveDir 49 50 Description: Set up save directory 51 52 Arguments: accountSlotNo user account slot number 53 54 Returns: Result code : 55 SAVE_STATUS_OK 56 SAVE_STATUS_NOT_FOUND 57 SAVE_STATUS_STORAGE_FULL (SAVE_STATUS_DEVICE_FULL) 58 SAVE_STATUS_FATAL_ERROR 59 *---------------------------------------------------------------------------*/ 60 SAVEStatus SAVEInitSaveDir(u8 accountSlotNo); 61 62 /*---------------------------------------------------------------------------* 63 Name: SAVEChangeDir(Async) 64 65 Description: Change directory 66 67 Arguments: client Pointer to client buffer 68 block Command block 69 accountSlotNo user account slot number 70 path Directory path relative to save directory of the specified user account. 71 Length must be less than SAVE_MAX_ARGPATH_SIZE. 72 73 Returns: Result code : 74 FS_STATUS_OK 75 FS_STATUS_NOT_FOUND 76 FS_STATUS_CANCELED 77 78 (Async API: Immediate return values) 79 FS_STATUS_OK 80 FS_STATUS_NOT_FOUND 81 FS_STATUS_FATAL_ERROR 82 *---------------------------------------------------------------------------*/ 83 FSStatus SAVEChangeDir( 84 FSClient *client, 85 FSCmdBlock *block, 86 u8 accountSlotNo, 87 const char *path, 88 FSRetFlag errHandling 89 ); 90 FSStatus SAVEChangeDirAsync( 91 FSClient *client, 92 FSCmdBlock *block, 93 u8 accountSlotNo, 94 const char *path, 95 FSRetFlag errHandling, 96 const FSAsyncParams *asyncParams 97 ); 98 99 /*---------------------------------------------------------------------------* 100 Name: SAVEOpenFile(Async) 101 102 Description: Open file 103 104 Arguments: client Pointer to client buffer 105 block Command block 106 accountSlotNo user account slot number 107 path File path relative to save directory of the specified user account. 108 Length must be less than SAVE_MAX_ARGPATH_SIZE. 109 mode Access mode 110 fileHandle Pointer to the handle of file stream 111 112 Returns: Result code : 113 FS_STATUS_OK 114 FS_STATUS_CANCELED 115 FS_STATUS_MAX 116 FS_STATUS_ALREADY_OPEN 117 FS_STATUS_NOT_FOUND 118 FS_STATUS_NOT_FILE 119 FS_STATUS_ACCESS_ERROR 120 FS_STATUS_PERMISSION_ERROR 121 FS_STATUS_JOURNAL_FULL 122 FS_STATUS_STORAGE_FULL 123 FS_STATUS_MEDIA_NOT_READY 124 FS_STATUS_MEDIA_ERROR 125 FS_STATUS_DATA_CORRUPTED 126 FS_STATUS_WRITE_PROTECTED 127 128 (Async API: Immediate return values) 129 FS_STATUS_OK 130 FS_STATUS_NOT_FOUND 131 FS_STATUS_FATAL_ERROR 132 *---------------------------------------------------------------------------*/ 133 FSStatus SAVEOpenFile( 134 FSClient *client, 135 FSCmdBlock *block, 136 u8 accountSlotNo, 137 const char *path, 138 const char *mode, 139 FSFileHandle *fileHandle, 140 FSRetFlag errHandling 141 ); 142 FSStatus SAVEOpenFileAsync( 143 FSClient *client, 144 FSCmdBlock *block, 145 u8 accountSlotNo, 146 const char *path, 147 const char *mode, 148 FSFileHandle *fileHandle, 149 FSRetFlag errHandling, 150 const FSAsyncParams *asyncParams 151 ); 152 153 /*---------------------------------------------------------------------------* 154 Name: SAVEOpenFileOtherApplication(Async) 155 156 Description: Open file of other application. 157 158 Arguments: client Pointer to client buffer 159 block Command block 160 titleId target titleId. 161 accountSlotNo user account slot number 162 path File path relative to save directory of the specified user account. 163 Length must be less than SAVE_MAX_ARGPATH_SIZE. 164 mode Access mode.(only "r") 165 fileHandle Pointer to the handle of file stream 166 167 Returns: Result code : 168 FS_STATUS_OK 169 FS_STATUS_CANCELED 170 FS_STATUS_MAX 171 FS_STATUS_ALREADY_OPEN 172 FS_STATUS_NOT_FOUND 173 FS_STATUS_NOT_FILE 174 FS_STATUS_ACCESS_ERROR 175 FS_STATUS_PERMISSION_ERROR 176 FS_STATUS_JOURNAL_FULL 177 FS_STATUS_STORAGE_FULL 178 FS_STATUS_MEDIA_NOT_READY 179 FS_STATUS_MEDIA_ERROR 180 FS_STATUS_DATA_CORRUPTED 181 FS_STATUS_WRITE_PROTECTED 182 183 184 (Async API: Immediate return values) 185 FS_STATUS_OK 186 FS_STATUS_NOT_FOUND 187 FS_STATUS_PERMISSION_ERROR 188 FS_STATUS_FATAL_ERROR 189 *---------------------------------------------------------------------------*/ 190 FSStatus SAVEOpenFileOtherApplication( 191 FSClient *client, 192 FSCmdBlock *block, 193 u64 titleId, 194 u8 accountSlotNo, 195 const char *path, 196 const char *mode, 197 FSFileHandle *fileHandle, 198 FSRetFlag errHandling 199 ); 200 FSStatus SAVEOpenFileOtherApplicationAsync( 201 FSClient *client, 202 FSCmdBlock *block, 203 u64 titleId, 204 u8 accountSlotNo, 205 const char *path, 206 const char *mode, 207 FSFileHandle *fileHandle, 208 FSRetFlag errHandling, 209 const FSAsyncParams *asyncParams 210 ); 211 212 /*---------------------------------------------------------------------------* 213 Name: SAVEOpenFileOtherNormalApplication(Async) 214 215 Description: Open file of other normal application. 216 Target title variation is 0x00. 217 218 Arguments: client Pointer to client buffer 219 block Command block 220 uniqueId target uniqueId. 221 accountSlotNo user account slot number 222 path File path relative to save directory of the specified user account. 223 Length must be less than SAVE_MAX_ARGPATH_SIZE. 224 mode Access mode.(only "r") 225 fileHandle Pointer to the handle of file stream 226 227 Returns: Result code : 228 FS_STATUS_OK 229 FS_STATUS_CANCELED 230 FS_STATUS_MAX 231 FS_STATUS_ALREADY_OPEN 232 FS_STATUS_NOT_FOUND 233 FS_STATUS_NOT_FILE 234 FS_STATUS_ACCESS_ERROR 235 FS_STATUS_PERMISSION_ERROR 236 FS_STATUS_JOURNAL_FULL 237 FS_STATUS_STORAGE_FULL 238 FS_STATUS_MEDIA_NOT_READY 239 FS_STATUS_MEDIA_ERROR 240 FS_STATUS_DATA_CORRUPTED 241 FS_STATUS_WRITE_PROTECTED 242 243 (Async API: Immediate return values) 244 FS_STATUS_OK 245 FS_STATUS_NOT_FOUND 246 FS_STATUS_PERMISSION_ERROR 247 FS_STATUS_FATAL_ERROR 248 *---------------------------------------------------------------------------*/ 249 FSStatus SAVEOpenFileOtherNormalApplication( 250 FSClient *client, 251 FSCmdBlock *block, 252 u32 uniqueId, 253 u8 accountSlotNo, 254 const char *path, 255 const char *mode, 256 FSFileHandle *fileHandle, 257 FSRetFlag errHandling 258 ); 259 FSStatus SAVEOpenFileOtherNormalApplicationAsync( 260 FSClient *client, 261 FSCmdBlock *block, 262 u32 uniqueId, 263 u8 accountSlotNo, 264 const char *path, 265 const char *mode, 266 FSFileHandle *fileHandle, 267 FSRetFlag errHandling, 268 const FSAsyncParams *asyncParams 269 ); 270 271 /*---------------------------------------------------------------------------* 272 Name: SAVEOpenFileOtherNormalApplicationVariation(Async) 273 274 Description: Open file of other normal application. 275 276 Arguments: client Pointer to client buffer 277 block Command block 278 uniqueId target uniqueId. 279 variation target title variation. 280 accountSlotNo user account slot number 281 path File path relative to save directory of the specified user account. 282 Length must be less than SAVE_MAX_ARGPATH_SIZE. 283 mode Access mode.(only "r") 284 fileHandle Pointer to the handle of file stream 285 286 Returns: Result code : 287 FS_STATUS_OK 288 FS_STATUS_CANCELED 289 FS_STATUS_MAX 290 FS_STATUS_ALREADY_OPEN 291 FS_STATUS_NOT_FOUND 292 FS_STATUS_NOT_FILE 293 FS_STATUS_ACCESS_ERROR 294 FS_STATUS_PERMISSION_ERROR 295 FS_STATUS_JOURNAL_FULL 296 FS_STATUS_STORAGE_FULL 297 FS_STATUS_MEDIA_NOT_READY 298 FS_STATUS_MEDIA_ERROR 299 FS_STATUS_DATA_CORRUPTED 300 FS_STATUS_WRITE_PROTECTED 301 302 (Async API: Immediate return values) 303 FS_STATUS_OK 304 FS_STATUS_NOT_FOUND 305 FS_STATUS_PERMISSION_ERROR 306 FS_STATUS_FATAL_ERROR 307 *---------------------------------------------------------------------------*/ 308 FSStatus SAVEOpenFileOtherNormalApplicationVariation( 309 FSClient *client, 310 FSCmdBlock *block, 311 u32 uniqueId, 312 u8 variation, 313 u8 accountSlotNo, 314 const char *path, 315 const char *mode, 316 FSFileHandle *fileHandle, 317 FSRetFlag errHandling 318 ); 319 FSStatus SAVEOpenFileOtherNormalApplicationVariationAsync( 320 FSClient *client, 321 FSCmdBlock *block, 322 u32 uniqueId, 323 u8 variation, 324 u8 accountSlotNo, 325 const char *path, 326 const char *mode, 327 FSFileHandle *fileHandle, 328 FSRetFlag errHandling, 329 const FSAsyncParams *asyncParams 330 ); 331 332 /*---------------------------------------------------------------------------* 333 Name: SAVEOpenFileOtherDemoApplication(Async) 334 335 Description: Open file of other demo application. 336 Target title variation is 0x00. 337 338 Arguments: client Pointer to client buffer 339 block Command block 340 uniqueId target uniqueId. 341 accountSlotNo user account slot number 342 path File path relative to save directory of the specified user account. 343 Length must be less than SAVE_MAX_ARGPATH_SIZE. 344 mode Access mode.(only "r") 345 fileHandle Pointer to the handle of file stream 346 347 Returns: Result code : 348 FS_STATUS_OK 349 FS_STATUS_CANCELED 350 FS_STATUS_MAX 351 FS_STATUS_ALREADY_OPEN 352 FS_STATUS_NOT_FOUND 353 FS_STATUS_NOT_FILE 354 FS_STATUS_ACCESS_ERROR 355 FS_STATUS_PERMISSION_ERROR 356 FS_STATUS_JOURNAL_FULL 357 FS_STATUS_STORAGE_FULL 358 FS_STATUS_MEDIA_NOT_READY 359 FS_STATUS_MEDIA_ERROR 360 FS_STATUS_DATA_CORRUPTED 361 FS_STATUS_WRITE_PROTECTED 362 363 (Async API: Immediate return values) 364 FS_STATUS_OK 365 FS_STATUS_NOT_FOUND 366 FS_STATUS_PERMISSION_ERROR 367 FS_STATUS_FATAL_ERROR 368 *---------------------------------------------------------------------------*/ 369 FSStatus SAVEOpenFileOtherDemoApplication( 370 FSClient *client, 371 FSCmdBlock *block, 372 u32 uniqueId, 373 u8 accountSlotNo, 374 const char *path, 375 const char *mode, 376 FSFileHandle *fileHandle, 377 FSRetFlag errHandling 378 ); 379 FSStatus SAVEOpenFileOtherDemoApplicationAsync( 380 FSClient *client, 381 FSCmdBlock *block, 382 u32 uniqueId, 383 u8 accountSlotNo, 384 const char *path, 385 const char *mode, 386 FSFileHandle *fileHandle, 387 FSRetFlag errHandling, 388 const FSAsyncParams *asyncParams 389 ); 390 391 /*---------------------------------------------------------------------------* 392 Name: SAVEOpenFileOtherDemoApplicationVariation(Async) 393 394 Description: Open file of other demo application. 395 396 Arguments: client Pointer to client buffer 397 block Command block 398 uniqueId target uniqueId. 399 variation target title variation. 400 accountSlotNo user account slot number 401 path File path relative to save directory of the specified user account. 402 Length must be less than SAVE_MAX_ARGPATH_SIZE. 403 mode Access mode.(only "r") 404 fileHandle Pointer to the handle of file stream 405 406 Returns: Result code : 407 FS_STATUS_OK 408 FS_STATUS_CANCELED 409 FS_STATUS_MAX 410 FS_STATUS_ALREADY_OPEN 411 FS_STATUS_NOT_FOUND 412 FS_STATUS_NOT_FILE 413 FS_STATUS_ACCESS_ERROR 414 FS_STATUS_PERMISSION_ERROR 415 FS_STATUS_JOURNAL_FULL 416 FS_STATUS_STORAGE_FULL 417 FS_STATUS_MEDIA_NOT_READY 418 FS_STATUS_MEDIA_ERROR 419 FS_STATUS_DATA_CORRUPTED 420 FS_STATUS_WRITE_PROTECTED 421 422 (Async API: Immediate return values) 423 FS_STATUS_OK 424 FS_STATUS_NOT_FOUND 425 FS_STATUS_PERMISSION_ERROR 426 FS_STATUS_FATAL_ERROR 427 *---------------------------------------------------------------------------*/ 428 FSStatus SAVEOpenFileOtherDemoApplicationVariation( 429 FSClient *client, 430 FSCmdBlock *block, 431 u32 uniqueId, 432 u8 variation, 433 u8 accountSlotNo, 434 const char *path, 435 const char *mode, 436 FSFileHandle *fileHandle, 437 FSRetFlag errHandling 438 ); 439 FSStatus SAVEOpenFileOtherDemoApplicationVariationAsync( 440 FSClient *client, 441 FSCmdBlock *block, 442 u32 uniqueId, 443 u8 variation, 444 u8 accountSlotNo, 445 const char *path, 446 const char *mode, 447 FSFileHandle *fileHandle, 448 FSRetFlag errHandling, 449 const FSAsyncParams *asyncParams 450 ); 451 452 /*---------------------------------------------------------------------------* 453 Name: SAVEOpenDir(Async) 454 455 Description: Open save directory and creates directory stream 456 457 Arguments: client Pointer to client buffer 458 block Command block 459 path Directory path. 460 Length must be less than SAVE_MAX_ARGPATH_SIZE. 461 pDirHandle Pointer to the handle of directory stream 462 463 Returns: Result code : 464 FS_STATUS_OK 465 FS_STATUS_CANCELED 466 FS_STATUS_MAX 467 FS_STATUS_NOT_FOUND 468 FS_STATUS_NOT_DIR 469 FS_STATUS_PERMISSION_ERROR 470 FS_STATUS_MEDIA_NOT_READY 471 FS_STATUS_MEDIA_ERROR 472 FS_STATUS_DATA_CORRUPTED 473 474 (Async API: Immediate return values) 475 FS_STATUS_OK 476 FS_STATUS_NOT_FOUND 477 FS_STATUS_FATAL_ERROR 478 *---------------------------------------------------------------------------*/ 479 FSStatus SAVEOpenDir( 480 FSClient *client, 481 FSCmdBlock *block, 482 u8 accountSlotNo, 483 const char *path, 484 FSDirHandle *dirHandle, 485 FSRetFlag errHandling 486 ); 487 FSStatus SAVEOpenDirAsync( 488 FSClient *client, 489 FSCmdBlock *block, 490 u8 accountSlotNo, 491 const char *path, 492 FSDirHandle *dirHandle, 493 FSRetFlag errHandling, 494 const FSAsyncParams *asyncParams 495 ); 496 497 /*---------------------------------------------------------------------------* 498 Name: SAVEOpenDirOtherApplication(Async) 499 500 Description: Open save directory of other application and creates directory stream 501 502 Arguments: client Pointer to client buffer 503 block Command block 504 titleId target titleId. 505 path Directory path relative to save directory of the specified user account. 506 Length must be less than SAVE_MAX_ARGPATH_SIZE. 507 pDirHandle Pointer to the handle of directory stream 508 509 Returns: Result code : 510 FS_STATUS_OK 511 FS_STATUS_CANCELED 512 FS_STATUS_MAX 513 FS_STATUS_NOT_FOUND 514 FS_STATUS_NOT_DIR 515 FS_STATUS_PERMISSION_ERROR 516 FS_STATUS_MEDIA_NOT_READY 517 FS_STATUS_MEDIA_ERROR 518 FS_STATUS_DATA_CORRUPTED 519 520 521 (Async API: Immediate return values) 522 FS_STATUS_OK 523 FS_STATUS_NOT_FOUND 524 FS_STATUS_FATAL_ERROR 525 *---------------------------------------------------------------------------*/ 526 FSStatus SAVEOpenDirOtherApplication( 527 FSClient *client, 528 FSCmdBlock *block, 529 u64 titleId, 530 u8 accountSlotNo, 531 const char *path, 532 FSDirHandle *dirHandle, 533 FSRetFlag errHandling 534 ); 535 FSStatus SAVEOpenDirOtherApplicationAsync( 536 FSClient *client, 537 FSCmdBlock *block, 538 u64 titleId, 539 u8 accountSlotNo, 540 const char *path, 541 FSDirHandle *dirHandle, 542 FSRetFlag errHandling, 543 const FSAsyncParams *asyncParams 544 ); 545 546 /*---------------------------------------------------------------------------* 547 Name: SAVEOpenDirOtherNormalApplication(Async) 548 549 Description: Open save directory of other normal application and creates directory stream. 550 Target title variation is 0x00. 551 552 Arguments: client Pointer to client buffer 553 block Command block 554 uniqueId target uniqueId. 555 path Directory path relative to save directory of the specified user account. 556 Length must be less than SAVE_MAX_ARGPATH_SIZE. 557 pDirHandle Pointer to the handle of directory stream 558 559 Returns: Result code : 560 FS_STATUS_OK 561 FS_STATUS_CANCELED 562 FS_STATUS_MAX 563 FS_STATUS_NOT_FOUND 564 FS_STATUS_NOT_DIR 565 FS_STATUS_PERMISSION_ERROR 566 FS_STATUS_MEDIA_NOT_READY 567 FS_STATUS_MEDIA_ERROR 568 FS_STATUS_DATA_CORRUPTED 569 570 571 (Async API: Immediate return values) 572 FS_STATUS_OK 573 FS_STATUS_NOT_FOUND 574 FS_STATUS_FATAL_ERROR 575 *---------------------------------------------------------------------------*/ 576 FSStatus SAVEOpenDirOtherNormalApplication( 577 FSClient *client, 578 FSCmdBlock *block, 579 u32 uniqueId, 580 u8 accountSlotNo, 581 const char *path, 582 FSDirHandle *dirHandle, 583 FSRetFlag errHandling 584 ); 585 FSStatus SAVEOpenDirOtherNormalApplicationAsync( 586 FSClient *client, 587 FSCmdBlock *block, 588 u32 uniqueId, 589 u8 accountSlotNo, 590 const char *path, 591 FSDirHandle *dirHandle, 592 FSRetFlag errHandling, 593 const FSAsyncParams *asyncParams 594 ); 595 596 /*---------------------------------------------------------------------------* 597 Name: SAVEOpenDirOtherNormalApplicationVariation(Async) 598 599 Description: Open save directory of other normal application and creates directory stream. 600 601 Arguments: client Pointer to client buffer 602 block Command block 603 uniqueId target uniqueId. 604 variation target title variation. 605 path Directory path relative to save directory of the specified user account. 606 Length must be less than SAVE_MAX_ARGPATH_SIZE. 607 pDirHandle Pointer to the handle of directory stream 608 609 Returns: Result code : 610 FS_STATUS_OK 611 FS_STATUS_CANCELED 612 FS_STATUS_MAX 613 FS_STATUS_NOT_FOUND 614 FS_STATUS_NOT_DIR 615 FS_STATUS_PERMISSION_ERROR 616 FS_STATUS_MEDIA_NOT_READY 617 FS_STATUS_MEDIA_ERROR 618 FS_STATUS_DATA_CORRUPTED 619 620 621 (Async API: Immediate return values) 622 FS_STATUS_OK 623 FS_STATUS_NOT_FOUND 624 FS_STATUS_FATAL_ERROR 625 *---------------------------------------------------------------------------*/ 626 FSStatus SAVEOpenDirOtherNormalApplicationVariation( 627 FSClient *client, 628 FSCmdBlock *block, 629 u32 uniqueId, 630 u8 variation, 631 u8 accountSlotNo, 632 const char *path, 633 FSDirHandle *dirHandle, 634 FSRetFlag errHandling 635 ); 636 FSStatus SAVEOpenDirOtherNormalApplicationVariationAsync( 637 FSClient *client, 638 FSCmdBlock *block, 639 u32 uniqueId, 640 u8 variation, 641 u8 accountSlotNo, 642 const char *path, 643 FSDirHandle *dirHandle, 644 FSRetFlag errHandling, 645 const FSAsyncParams *asyncParams 646 ); 647 648 /*---------------------------------------------------------------------------* 649 Name: SAVEOpenDirOtherDemoApplication(Async) 650 651 Description: Open save directory of other demo application and creates directory stream. 652 Target title variation is 0x00. 653 654 Arguments: client Pointer to client buffer 655 block Command block 656 uniqueId target uniqueId. 657 path Directory path relative to save directory of the specified user account. 658 Length must be less than SAVE_MAX_ARGPATH_SIZE. 659 pDirHandle Pointer to the handle of directory stream 660 661 Returns: Result code : 662 FS_STATUS_OK 663 FS_STATUS_CANCELED 664 FS_STATUS_MAX 665 FS_STATUS_NOT_FOUND 666 FS_STATUS_NOT_DIR 667 FS_STATUS_PERMISSION_ERROR 668 FS_STATUS_MEDIA_NOT_READY 669 FS_STATUS_MEDIA_ERROR 670 FS_STATUS_DATA_CORRUPTED 671 672 673 (Async API: Immediate return values) 674 FS_STATUS_OK 675 FS_STATUS_NOT_FOUND 676 FS_STATUS_FATAL_ERROR 677 *---------------------------------------------------------------------------*/ 678 FSStatus SAVEOpenDirOtherDemoApplication( 679 FSClient *client, 680 FSCmdBlock *block, 681 u32 uniqueId, 682 u8 accountSlotNo, 683 const char *path, 684 FSDirHandle *dirHandle, 685 FSRetFlag errHandling 686 ); 687 FSStatus SAVEOpenDirOtherDemoApplicationAsync( 688 FSClient *client, 689 FSCmdBlock *block, 690 u32 uniqueId, 691 u8 accountSlotNo, 692 const char *path, 693 FSDirHandle *dirHandle, 694 FSRetFlag errHandling, 695 const FSAsyncParams *asyncParams 696 ); 697 698 /*---------------------------------------------------------------------------* 699 Name: SAVEOpenDirOtherDemoApplicationVariation(Async) 700 701 Description: Open save directory of other demo application and creates directory stream. 702 703 Arguments: client Pointer to client buffer 704 block Command block 705 uniqueId target uniqueId. 706 variation target title variation. 707 path Directory path relative to save directory of the specified user account. 708 Length must be less than SAVE_MAX_ARGPATH_SIZE. 709 pDirHandle Pointer to the handle of directory stream 710 711 Returns: Result code : 712 FS_STATUS_OK 713 FS_STATUS_CANCELED 714 FS_STATUS_MAX 715 FS_STATUS_NOT_FOUND 716 FS_STATUS_NOT_DIR 717 FS_STATUS_PERMISSION_ERROR 718 FS_STATUS_MEDIA_NOT_READY 719 FS_STATUS_MEDIA_ERROR 720 FS_STATUS_DATA_CORRUPTED 721 722 723 (Async API: Immediate return values) 724 FS_STATUS_OK 725 FS_STATUS_NOT_FOUND 726 FS_STATUS_FATAL_ERROR 727 *---------------------------------------------------------------------------*/ 728 FSStatus SAVEOpenDirOtherDemoApplicationVariation( 729 FSClient *client, 730 FSCmdBlock *block, 731 u32 uniqueId, 732 u8 variation, 733 u8 accountSlotNo, 734 const char *path, 735 FSDirHandle *dirHandle, 736 FSRetFlag errHandling 737 ); 738 FSStatus SAVEOpenDirOtherDemoApplicationVariationAsync( 739 FSClient *client, 740 FSCmdBlock *block, 741 u32 uniqueId, 742 u8 variation, 743 u8 accountSlotNo, 744 const char *path, 745 FSDirHandle *dirHandle, 746 FSRetFlag errHandling, 747 const FSAsyncParams *asyncParams 748 ); 749 750 /*---------------------------------------------------------------------------* 751 Name: SAVEMakeDir(Async) 752 753 Description: Create directory. 754 755 Arguments: client Pointer to client buffer 756 block Command block 757 path Directory path relative to save directory of the specified user account. 758 759 Returns: Result code : 760 FS_STATUS_OK 761 FS_STATUS_CANCELED 762 FS_STATUS_NOT_FOUND 763 FS_STATUS_NOT_DIR 764 FS_STATUS_PERMISSION_ERROR 765 FS_STATUS_ALREADY_OPEN 766 FS_STATUS_EXISTS 767 FS_STATUS_UNSUPPORTED_CMD 768 FS_STATUS_STORAGE_FULL 769 FS_STATUS_JOURNAL_FULL 770 FS_STATUS_MEDIA_NOT_READY 771 FS_STATUS_MEDIA_ERROR 772 FS_STATUS_DATA_CORRUPTED 773 FS_STATUS_WRITE_PROTECTED 774 775 (Async API: Immediate return values) 776 FS_STATUS_OK 777 FS_STATUS_NOT_FOUND 778 FS_STATUS_FATAL_ERROR 779 *---------------------------------------------------------------------------*/ 780 FSStatus SAVEMakeDir( 781 FSClient *client, 782 FSCmdBlock *block, 783 u8 accountSlotNo, 784 const char *path, 785 FSRetFlag errHandling 786 ); 787 FSStatus SAVEMakeDirAsync( 788 FSClient *client, 789 FSCmdBlock *block, 790 u8 accountSlotNo, 791 const char *path, 792 FSRetFlag errHandling, 793 const FSAsyncParams *asyncParams 794 ); 795 /*---------------------------------------------------------------------------* 796 Name: SAVERemove(Async) 797 798 Description: Remove entry. 799 800 Arguments: client Pointer to client buffer 801 block Command block 802 path Entry path relative to save directory of the specified user account. 803 804 Returns: Result code : 805 FS_STATUS_OK 806 FS_STATUS_CANCELED 807 FS_STATUS_EXISTS 808 FS_STATUS_NOT_FOUND 809 FS_STATUS_ACCESS_ERROR 810 FS_STATUS_PERMISSION_ERROR 811 FS_STATUS_ALREADY_OPEN 812 FS_STATUS_UNSUPPORTED_CMD 813 FS_STATUS_STORAGE_FULL 814 FS_STATUS_JOURNAL_FULL 815 FS_STATUS_MEDIA_NOT_READY 816 FS_STATUS_MEDIA_ERROR 817 FS_STATUS_DATA_CORRUPTED 818 FS_STATUS_WRITE_PROTECTED 819 820 (Async API: Immediate return values) 821 FS_STATUS_OK 822 FS_STATUS_NOT_FOUND 823 FS_STATUS_FATAL_ERROR 824 *---------------------------------------------------------------------------*/ 825 FSStatus SAVERemove( 826 FSClient *client, 827 FSCmdBlock *block, 828 u8 accountSlotNo, 829 const char *path, 830 FSRetFlag errHandling 831 ); 832 FSStatus SAVERemoveAsync( 833 FSClient *client, 834 FSCmdBlock *block, 835 u8 accountSlotNo, 836 const char *path, 837 FSRetFlag errHandling, 838 const FSAsyncParams *asyncParams 839 ); 840 841 /*---------------------------------------------------------------------------* 842 Name: SAVERename(Async) 843 844 Description: Rename entry. 845 846 Arguments: client Pointer to client buffer 847 block Command block 848 oldPath Old entry path, relative to save directory of the specified user account. 849 newPath New entry path, relative to save directory of the specified user account. 850 851 Returns: Result code : 852 FS_STATUS_OK 853 FS_STATUS_CANCELED 854 FS_STATUS_NOT_FOUND 855 FS_STATUS_PERMISSION_ERROR 856 FS_STATUS_EXISTS 857 FS_STATUS_ALREADY_OPEN 858 FS_STATUS_UNSUPPORTED_CMD 859 FS_STATUS_STORAGE_FULL 860 FS_STATUS_JOURNAL_FULL 861 FS_STATUS_MEDIA_NOT_READY 862 FS_STATUS_MEDIA_ERROR 863 FS_STATUS_DATA_CORRUPTED 864 FS_STATUS_WRITE_PROTECTED 865 866 (Async API: Immediate return values) 867 FS_STATUS_OK 868 FS_STATUS_NOT_FOUND 869 FS_STATUS_FATAL_ERROR 870 *---------------------------------------------------------------------------*/ 871 FSStatus SAVERename( 872 FSClient *client, 873 FSCmdBlock *block, 874 u8 accountSlotNo, 875 const char *oldPath, 876 const char *newPath, 877 FSRetFlag errHandling 878 ); 879 FSStatus SAVERenameAsync( 880 FSClient *client, 881 FSCmdBlock *block, 882 u8 accountSlotNo, 883 const char *oldPath, 884 const char *newPath, 885 FSRetFlag errHandling, 886 const FSAsyncParams *asyncParams 887 ); 888 889 /*---------------------------------------------------------------------------* 890 Name: SAVEFlushQuota(Async) 891 892 Description: Flush quota 893 It is for only for file systems supporting journaling feature. 894 The other file systems are return FS_STATUS_OK. 895 896 Arguments: client Pointer to client buffer 897 block Command block 898 899 Returns: Result code : 900 FS_STATUS_OK 901 FS_STATUS_CANCELED 902 FS_STATUS_NOT_FOUND 903 FS_STATUS_UNSUPPORTED_CMD 904 FS_STATUS_MEDIA_NOT_READY 905 FS_STATUS_MEDIA_ERROR 906 FS_STATUS_DATA_CORRUPTED 907 FS_STATUS_WRITE_PROTECTED 908 909 (Async API: Immediate return values) 910 FS_STATUS_OK 911 FS_STATUS_NOT_FOUND 912 FS_STATUS_FATAL_ERROR 913 *---------------------------------------------------------------------------*/ 914 FSStatus SAVEFlushQuota( 915 FSClient *client, 916 FSCmdBlock *block, 917 u8 accountSlotNo, 918 FSRetFlag errHandling 919 ); 920 FSStatus SAVEFlushQuotaAsync( 921 FSClient *client, 922 FSCmdBlock *block, 923 u8 accountSlotNo, 924 FSRetFlag errHandling, 925 const FSAsyncParams *asyncParams 926 ); 927 /*---------------------------------------------------------------------------* 928 Name: SAVERollbackQuota(Async) 929 930 Description: Rollback quota 931 It is for only for file systems supporting journaling feature. 932 The other file systems are return FS_STATUS_UNSUPPORTED_CMD. 933 934 Arguments: client Pointer to client buffer 935 block Command block 936 path Rollback quota path 937 938 Returns: Result code : 939 FS_STATUS_OK 940 FS_STATUS_CANCELED 941 FS_STATUS_NOT_FOUND 942 FS_STATUS_ALREADY_OPEN 943 FS_STATUS_UNSUPPORTED_CMD 944 FS_STATUS_MEDIA_NOT_READY 945 FS_STATUS_MEDIA_ERROR 946 FS_STATUS_DATA_CORRUPTED 947 FS_STATUS_WRITE_PROTECTED 948 949 (Async API: Immediate return values) 950 FS_STATUS_OK 951 FS_STATUS_NOT_FOUND 952 FS_STATUS_FATAL_ERROR 953 *---------------------------------------------------------------------------*/ 954 FSStatus SAVERollbackQuota( 955 FSClient *client, 956 FSCmdBlock *block, 957 u8 accountSlotNo, 958 FSRetFlag errHandling 959 ); 960 FSStatus SAVERollbackQuotaAsync( 961 FSClient *client, 962 FSCmdBlock *block, 963 u8 accountSlotNo, 964 FSRetFlag errHandling, 965 const FSAsyncParams *asyncParams 966 ); 967 /*---------------------------------------------------------------------------* 968 Name: SAVEGetStat(Async) 969 970 Description: Get entry status 971 972 Arguments: client Pointer to client buffer 973 block Command block 974 path Entry path, relative to save directory of the specified user account 975 returnedStat Entry status 976 977 Returns: Result code : 978 FS_STATUS_OK 979 FS_STATUS_CANCELED 980 FS_STATUS_NOT_FOUND 981 FS_STATUS_PERMISSION_ERROR 982 FS_STATUS_MEDIA_NOT_READY 983 FS_STATUS_MEDIA_ERROR 984 FS_STATUS_DATA_CORRUPTED 985 FS_STATUS_FATAL_ERROR 986 987 (Async API: Immediate return values) 988 FS_STATUS_OK 989 FS_STATUS_NOT_FOUND 990 FS_STATUS_FATAL_ERROR 991 *---------------------------------------------------------------------------*/ 992 FSStatus SAVEGetStat( 993 FSClient *client, 994 FSCmdBlock *block, 995 u8 accountSlotNo, 996 const char *path, 997 FSStat *returnedStat, 998 FSRetFlag errHandling 999 ); 1000 FSStatus SAVEGetStatAsync( 1001 FSClient *client, 1002 FSCmdBlock *block, 1003 u8 accountSlotNo, 1004 const char *path, 1005 FSStat *returnedStat, 1006 FSRetFlag errHandling, 1007 const FSAsyncParams *asyncParams 1008 ); 1009 1010 /*---------------------------------------------------------------------------* 1011 Name: SAVEGetStatOtherApplication(Async) 1012 1013 Description: Get entry status of other application. 1014 1015 Arguments: client Pointer to client buffer 1016 block Command block 1017 titleId target titleId. 1018 path Entry path, relative to save directory of the specified user account 1019 returnedStat Entry status 1020 1021 Returns: Result code : 1022 FS_STATUS_OK 1023 FS_STATUS_CANCELED 1024 FS_STATUS_NOT_FOUND 1025 FS_STATUS_PERMISSION_ERROR 1026 FS_STATUS_MEDIA_NOT_READY 1027 FS_STATUS_MEDIA_ERROR 1028 FS_STATUS_DATA_CORRUPTED 1029 FS_STATUS_FATAL_ERROR 1030 1031 (Async API: Immediate return values) 1032 FS_STATUS_OK 1033 FS_STATUS_NOT_FOUND 1034 FS_STATUS_FATAL_ERROR 1035 *---------------------------------------------------------------------------*/ 1036 FSStatus SAVEGetStatOtherApplication( 1037 FSClient *client, 1038 FSCmdBlock *block, 1039 u64 titleId, 1040 u8 accountSlotNo, 1041 const char *path, 1042 FSStat *returnedStat, 1043 FSRetFlag errHandling 1044 ); 1045 FSStatus SAVEGetStatOtherApplicationAsync( 1046 FSClient *client, 1047 FSCmdBlock *block, 1048 u64 titleId, 1049 u8 accountSlotNo, 1050 const char *path, 1051 FSStat *returnedStat, 1052 FSRetFlag errHandling, 1053 const FSAsyncParams *asyncParams 1054 ); 1055 1056 /*---------------------------------------------------------------------------* 1057 Name: SAVEGetStatOtherNormalApplication(Async) 1058 1059 Description: Get entry status of other normal application. 1060 Target title variation is 0x00. 1061 1062 Arguments: client Pointer to client buffer 1063 block Command block 1064 uniqueId target uniqueId. 1065 path Entry path, relative to save directory of the specified user account 1066 returnedStat Entry status 1067 1068 Returns: Result code : 1069 FS_STATUS_OK 1070 FS_STATUS_CANCELED 1071 FS_STATUS_NOT_FOUND 1072 FS_STATUS_PERMISSION_ERROR 1073 FS_STATUS_MEDIA_NOT_READY 1074 FS_STATUS_MEDIA_ERROR 1075 FS_STATUS_DATA_CORRUPTED 1076 FS_STATUS_FATAL_ERROR 1077 1078 (Async API: Immediate return values) 1079 FS_STATUS_OK 1080 FS_STATUS_NOT_FOUND 1081 FS_STATUS_FATAL_ERROR 1082 *---------------------------------------------------------------------------*/ 1083 FSStatus SAVEGetStatOtherNormalApplication( 1084 FSClient *client, 1085 FSCmdBlock *block, 1086 u32 uniqueId, 1087 u8 accountSlotNo, 1088 const char *path, 1089 FSStat *returnedStat, 1090 FSRetFlag errHandling 1091 ); 1092 FSStatus SAVEGetStatOtherNormalApplicationAsync( 1093 FSClient *client, 1094 FSCmdBlock *block, 1095 u32 uniqueId, 1096 u8 accountSlotNo, 1097 const char *path, 1098 FSStat *returnedStat, 1099 FSRetFlag errHandling, 1100 const FSAsyncParams *asyncParams 1101 ); 1102 1103 /*---------------------------------------------------------------------------* 1104 Name: SAVEGetStatOtherNormalApplication(Async) 1105 1106 Description: Get entry status of other normal application. 1107 1108 Arguments: client Pointer to client buffer 1109 block Command block 1110 uniqueId target uniqueId. 1111 variation target title variation. 1112 path Entry path, relative to save directory of the specified user account 1113 returnedStat Entry status 1114 1115 Returns: Result code : 1116 FS_STATUS_OK 1117 FS_STATUS_CANCELED 1118 FS_STATUS_NOT_FOUND 1119 FS_STATUS_PERMISSION_ERROR 1120 FS_STATUS_MEDIA_NOT_READY 1121 FS_STATUS_MEDIA_ERROR 1122 FS_STATUS_DATA_CORRUPTED 1123 FS_STATUS_FATAL_ERROR 1124 1125 (Async API: Immediate return values) 1126 FS_STATUS_OK 1127 FS_STATUS_NOT_FOUND 1128 FS_STATUS_FATAL_ERROR 1129 *---------------------------------------------------------------------------*/ 1130 FSStatus SAVEGetStatOtherNormalApplicationVariation( 1131 FSClient *client, 1132 FSCmdBlock *block, 1133 u32 uniqueId, 1134 u8 variation, 1135 u8 accountSlotNo, 1136 const char *path, 1137 FSStat *returnedStat, 1138 FSRetFlag errHandling 1139 ); 1140 FSStatus SAVEGetStatOtherNormalApplicationVariationAsync( 1141 FSClient *client, 1142 FSCmdBlock *block, 1143 u32 uniqueId, 1144 u8 variation, 1145 u8 accountSlotNo, 1146 const char *path, 1147 FSStat *returnedStat, 1148 FSRetFlag errHandling, 1149 const FSAsyncParams *asyncParams 1150 ); 1151 1152 /*---------------------------------------------------------------------------* 1153 Name: SAVEGetStatOtherDemoApplication(Async) 1154 1155 Description: Get entry status of other demo application. 1156 Target title variation is 0x00. 1157 1158 Arguments: client Pointer to client buffer 1159 block Command block 1160 uniqueId target uniqueId. 1161 path Entry path, relative to save directory of the specified user account 1162 returnedStat Entry status 1163 1164 Returns: Result code : 1165 FS_STATUS_OK 1166 FS_STATUS_CANCELED 1167 FS_STATUS_NOT_FOUND 1168 FS_STATUS_PERMISSION_ERROR 1169 FS_STATUS_MEDIA_NOT_READY 1170 FS_STATUS_MEDIA_ERROR 1171 FS_STATUS_DATA_CORRUPTED 1172 FS_STATUS_FATAL_ERROR 1173 1174 (Async API: Immediate return values) 1175 FS_STATUS_OK 1176 FS_STATUS_NOT_FOUND 1177 FS_STATUS_FATAL_ERROR 1178 *---------------------------------------------------------------------------*/ 1179 FSStatus SAVEGetStatOtherDemoApplication( 1180 FSClient *client, 1181 FSCmdBlock *block, 1182 u32 uniqueId, 1183 u8 accountSlotNo, 1184 const char *path, 1185 FSStat *returnedStat, 1186 FSRetFlag errHandling 1187 ); 1188 FSStatus SAVEGetStatOtherDemoApplicationAsync( 1189 FSClient *client, 1190 FSCmdBlock *block, 1191 u32 uniqueId, 1192 u8 accountSlotNo, 1193 const char *path, 1194 FSStat *returnedStat, 1195 FSRetFlag errHandling, 1196 const FSAsyncParams *asyncParams 1197 ); 1198 1199 /*---------------------------------------------------------------------------* 1200 Name: SAVEGetStatOtherDemoApplication(Async) 1201 1202 Description: Get entry status of other demo application. 1203 1204 Arguments: client Pointer to client buffer 1205 block Command block 1206 uniqueId target uniqueId. 1207 variation target title variation. 1208 path Entry path, relative to save directory of the specified user account 1209 returnedStat Entry status 1210 1211 Returns: Result code : 1212 FS_STATUS_OK 1213 FS_STATUS_CANCELED 1214 FS_STATUS_NOT_FOUND 1215 FS_STATUS_PERMISSION_ERROR 1216 FS_STATUS_MEDIA_NOT_READY 1217 FS_STATUS_MEDIA_ERROR 1218 FS_STATUS_DATA_CORRUPTED 1219 FS_STATUS_FATAL_ERROR 1220 1221 (Async API: Immediate return values) 1222 FS_STATUS_OK 1223 FS_STATUS_NOT_FOUND 1224 FS_STATUS_FATAL_ERROR 1225 *---------------------------------------------------------------------------*/ 1226 FSStatus SAVEGetStatOtherDemoApplicationVariation( 1227 FSClient *client, 1228 FSCmdBlock *block, 1229 u32 uniqueId, 1230 u8 variation, 1231 u8 accountSlotNo, 1232 const char *path, 1233 FSStat *returnedStat, 1234 FSRetFlag errHandling 1235 ); 1236 FSStatus SAVEGetStatOtherDemoApplicationVariationAsync( 1237 FSClient *client, 1238 FSCmdBlock *block, 1239 u32 uniqueId, 1240 u8 variation, 1241 u8 accountSlotNo, 1242 const char *path, 1243 FSStat *returnedStat, 1244 FSRetFlag errHandling, 1245 const FSAsyncParams *asyncParams 1246 ); 1247 1248 /*---------------------------------------------------------------------------* 1249 Name: SAVEGetFreeSpaceSize(Async) 1250 1251 Description: Get free space size in quota 1252 1253 Arguments: client Pointer to client buffer 1254 block Command block 1255 returnedFreeSize Pointer to free size in quota 1256 1257 Returns: Result code : 1258 FS_STATUS_OK 1259 FS_STATUS_CANCELED 1260 FS_STATUS_NOT_FOUND 1261 FS_STATUS_PERMISSION_ERROR 1262 FS_STATUS_MEDIA_NOT_READY 1263 FS_STATUS_MEDIA_ERROR 1264 FS_STATUS_DATA_CORRUPTED 1265 FS_STATUS_FATAL_ERROR 1266 1267 (Async API: Immediate return values) 1268 FS_STATUS_OK 1269 FS_STATUS_NOT_FOUND 1270 FS_STATUS_FATAL_ERROR 1271 *---------------------------------------------------------------------------*/ 1272 FSStatus SAVEGetFreeSpaceSize( 1273 FSClient *client, 1274 FSCmdBlock *block, 1275 u8 accountSlotNo, 1276 FSFreeSpaceSize *returnedFreeSize, 1277 FSRetFlag errHandling 1278 ); 1279 FSStatus SAVEGetFreeSpaceSizeAsync( 1280 FSClient *client, 1281 FSCmdBlock *block, 1282 u8 accountSlotNo, 1283 FSFreeSpaceSize *returnedFreeSize, 1284 FSRetFlag errHandling, 1285 const FSAsyncParams *asyncParams 1286 ); 1287 1288 /*---------------------------------------------------------------------------* 1289 Name: SAVEChangeGroupMode(Async) 1290 1291 Description: Change permission mode of entry. This function change only 1292 group permission (read/write). 1293 If User ID is corresponded between process and entry and 1294 owner has write permission, mode can be changed. 1295 In the other case, FS_STATUS_PERMISSION is returned. 1296 1297 Arguments: client Pointer to client buffer 1298 block Command block 1299 accountSlotNo slot number of account slot. 1300 path entry relative path from account save directory 1301 mode permission mode 1302 1303 Returns: Result code : 1304 FS_STATUS_OK 1305 FS_STATUS_CANCELLED 1306 FS_STATUS_NOT_FOUND 1307 FS_STATUS_PERMISSION_ERROR 1308 FS_STATUS_UNSUPPORTED_CMD 1309 FS_STATUS_JOURNAL_FULL 1310 FS_STATUS_MEDIA_NOT_READY 1311 FS_STATUS_MEDIA_ERROR 1312 FS_STATUS_DATA_CORRUPTED 1313 FS_STATUS_FATAL_ERROR 1314 1315 (Async API: Immediate return values) 1316 FS_STATUS_OK 1317 FS_STATUS_NOT_FOUND 1318 FS_STATUS_FATAL_ERROR 1319 *---------------------------------------------------------------------------*/ 1320 FSStatus SAVEChangeGroupMode( 1321 FSClient *client, 1322 FSCmdBlock *block, 1323 u8 accountSlotNo, 1324 const char *path, 1325 FSMode mode, 1326 FSRetFlag errHandling 1327 ); 1328 1329 FSStatus SAVEChangeGroupModeAsync( 1330 FSClient *client, 1331 FSCmdBlock *block, 1332 u8 accountSlotNo, 1333 const char *path, 1334 FSMode mode, 1335 FSRetFlag errHandling, 1336 const FSAsyncParams *asyncParams 1337 ); 1338 1339 #ifdef __cplusplus 1340 } 1341 #endif 1342 1343 #endif // NN_SAVE_SAVE_API_H_ 1344