1 /*---------------------------------------------------------------------------*
2 
3   Copyright (C) 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