説明を見る。 1
2
3
4
5
6
7
8
9
10
11
16
17
18 #ifndef CRI_FILE_SYSTEM_H_INCLUDED
19 #define CRI_FILE_SYSTEM_H_INCLUDED
20
21
22
23
24
25 #include <cri_le_xpt.h>
26 #include <cri_le_error.h>
27
28
29
30
31
32
33
34 #define CRI_FS_VERSION (0x02770300)
35 #define CRI_FS_VER_NUM "2.77.03"
36 #define CRI_FS_VER_NAME "CRI File System(LE)"
37
38 #define CRIFS_CONFIG_DEFAULT_THREAD_MODEL CRIFS_THREAD_MODEL_MULTI
39 #define CRIFS_CONFIG_DEFAULT_NUM_BINDERS (16)
40 #define CRIFS_CONFIG_DEFAULT_NUM_LOADERS (16)
41 #define CRIFS_CONFIG_DEFAULT_NUM_GROUP_LOADERS (2)
42 #define CRIFS_CONFIG_DEFAULT_NUM_STDIO_HANDLES (16)
43 #define CRIFS_CONFIG_DEFAULT_NUM_INSTALLERS (0)
44 #define CRIFS_CONFIG_DEFAULT_MAX_BINDS (16)
45 #define CRIFS_CONFIG_DEFAULT_MAX_FILES (16)
46 #define CRIFS_CONFIG_DEFAULT_MAX_PATH (256)
47
51 #define CRIFS_DEVICE_DEFAULT (CRIFS_DEVICE_00)
52
59 #define CRIFS_DEFAULT_DEVICE (CRIFS_DEVICE_DEFAULT)
60
61
62
63
64
76 #define criFs_SetUserAllocator(p_malloc_func, p_free_func, p_obj) \
77 {\
78 criFs_SetUserMallocFunction(p_malloc_func, p_obj);\
79 criFs_SetUserFreeFunction(p_free_func, p_obj);\
80 }
81
82
83
84
85
86
87
88
97 typedef enum CriFsThreadModelTag {
105 CRIFS_THREAD_MODEL_MULTI = 0,
106
117 CRIFS_THREAD_MODEL_MULTI_USER_DRIVEN = 3,
118
125 CRIFS_THREAD_MODEL_USER_MULTI = 1,
126
134 CRIFS_THREAD_MODEL_SINGLE = 2,
135
136
137 CRIFS_THREAD_MODEL_ENUM_BE_SINT32 = 0x7FFFFFFF
138 } CriFsThreadModel;
139
155 typedef struct CriFsConfigTag {
162 CriFsThreadModel thread_model;
163
181 CriSint32 num_binders;
182
200 CriSint32 num_loaders;
201
219 CriSint32 num_group_loaders;
220
243 CriSint32 num_stdio_handles;
244
265 CriSint32 num_installers;
266
284 CriSint32 max_binds;
285
337 CriSint32 max_files;
338
355 CriSint32 max_path;
356
365 CriUint32 version;
366 } CriFsConfig;
367
393 typedef void *(CRIAPI *CriFsMallocFunc)(void *obj, CriUint32 size);
394
416 typedef void (CRIAPI *CriFsFreeFunc)(void *obj, void *mem);
417
418
419
420
425 typedef enum CriFsDeviceIdTag {
426 CRIFS_DEVICE_00 = 0,
427 CRIFS_DEVICE_01,
428 CRIFS_DEVICE_02,
429 CRIFS_DEVICE_03,
430 CRIFS_DEVICE_04,
431 CRIFS_DEVICE_05,
432 CRIFS_DEVICE_06,
433 CRIFS_DEVICE_07,
434 CRIFS_DEVICE_MAX,
435
436 CRIFS_DEVICE_INVALID = -1,
438
439 CRIFS_DEVICE_ENUM_BE_SINT32 = 0x7fffffff
440 } CriFsDeviceId;
441
442
447 typedef enum {
448 CRIFS_FILE_MODE_APPEND = 0,
449 CRIFS_FILE_MODE_CREATE = 1,
450 CRIFS_FILE_MODE_CREATE_NEW = 2,
451 CRIFS_FILE_MODE_OPEN = 3,
452 CRIFS_FILE_MODE_OPEN_OR_CREATE = 4,
453 CRIFS_FILE_MODE_TRUNCATE = 5,
455 CRIFS_FILE_MODE_OPEN_WITHOUT_TEST = 10,
456
457
458 CRIFS_FILE_MODE_ENUM_BE_SINT32 = 0x7FFFFFFF
459 } CriFsFileMode;
460
465 typedef enum {
466 CRIFS_FILE_ACCESS_READ = 0,
467 CRIFS_FILE_ACCESS_WRITE = 1,
468 CRIFS_FILE_ACCESS_READ_WRITE = 2,
470
471 CRIFS_FILE_ACCESS_ENUM_BE_SINT32 = 0x7FFFFFFF
472 } CriFsFileAccess;
473
480 typedef enum {
481 CRIFS_IO_ERROR_OK = 0,
482 CRIFS_IO_ERROR_NG = -1,
483 CRIFS_IO_ERROR_TRY_AGAIN = -2,
485
486 CRIFS_IO_ERROR_NG_NO_ENTRY = -11,
487 CRIFS_IO_ERROR_NG_INVALID_DATA = -12,
489
490 CRIFS_IO_ERROR_ENUM_BE_SINT32 = 0x7FFFFFFF
491 } CriFsIoError;
492
497 typedef void *CriFsFileHn;
498
503 typedef struct CriFsIoInterfaceTag {
514 CriFsIoError (CRIAPI *Exists)(const CriChar8 *path, CriBool *result);
515
526 CriFsIoError (CRIAPI *Remove)(const CriChar8 *path);
527
540 CriFsIoError (CRIAPI *Rename)(const CriChar8 *old_path, const CriChar8 *new_path);
541
566 CriFsIoError (CRIAPI *Open)(
567 const CriChar8 *path, CriFsFileMode mode, CriFsFileAccess access, CriFsFileHn *filehn);
568
577 CriFsIoError (CRIAPI *Close)(CriFsFileHn filehn);
578
593 CriFsIoError (CRIAPI *GetFileSize)(CriFsFileHn filehn, CriSint64 *file_size);
594
616 CriFsIoError (CRIAPI *Read)(CriFsFileHn filehn, CriSint64 offset, CriSint64 read_size, void *buffer, CriSint64 buffer_size);
617
639 CriFsIoError (CRIAPI *IsReadComplete)(CriFsFileHn filehn, CriBool *result);
640
651 CriFsIoError (CRIAPI *CancelRead)(CriFsFileHn filehn);
652
665 CriFsIoError (CRIAPI *GetReadSize)(CriFsFileHn filehn, CriSint64 *read_size);
666
691 CriFsIoError (CRIAPI *Write)(CriFsFileHn filehn, CriSint64 offset, CriSint64 write_size, void *buffer, CriSint64 buffer_size);
692
720 CriFsIoError (CRIAPI *IsWriteComplete)(CriFsFileHn filehn, CriBool *result);
721
732 CriFsIoError (CRIAPI *CancelWrite)(CriFsFileHn filehn);
733
748 CriFsIoError (CRIAPI *GetWriteSize)(CriFsFileHn filehn, CriSint64 *write_size);
749
762 CriFsIoError (CRIAPI *Flush)(CriFsFileHn filehn);
763
780 CriFsIoError (CRIAPI *Resize)(CriFsFileHn filehn, CriSint64 size);
781
794 CriFsIoError (CRIAPI *GetNativeFileHandle)(CriFsFileHn filehn, void **native_filehn);
795
819 CriFsIoError (CRIAPI *SetAddReadProgressCallback)(CriFsFileHn filehn, void(*callback)(void*, CriSint32), void* obj);
820 } CriFsIoInterface, *CriFsIoInterfacePtr;
821
844 typedef CriError (CRIAPI *CriFsSelectIoCbFunc)(
845 const CriChar8 *path, CriFsDeviceId *device_id, CriFsIoInterfacePtr *ioif);
846
847
848
849
850 struct CriFsBinderHnObjTag;
857 typedef struct CriFsBinderHnObjTag *CriFsBinderHn;
858
859
860
861
862
867 typedef enum {
868 CRIFSLOADER_PRIORITY_HIGHEST = 2,
869 CRIFSLOADER_PRIORITY_ABOVE_NORMAL = 1,
870 CRIFSLOADER_PRIORITY_NORMAL = 0,
871 CRIFSLOADER_PRIORITY_BELOW_NORMAL = -1,
872 CRIFSLOADER_PRIORITY_LOWEST = -2,
873
874 CRIFSLOADER_PRIORITY_ENUM_BE_SINT32 = 0x7FFFFFFF
875 } CriFsLoaderPriority;
876
877
878
879
880
881 #ifdef __cplusplus
882 extern "C" {
883 #endif
884
885
886
887
906 #define criFs_SetDefaultConfig(p_config) \
907 {\
908 (p_config)->thread_model = CRIFS_CONFIG_DEFAULT_THREAD_MODEL;\
909 (p_config)->num_binders = CRIFS_CONFIG_DEFAULT_NUM_BINDERS;\
910 (p_config)->num_loaders = CRIFS_CONFIG_DEFAULT_NUM_LOADERS;\
911 (p_config)->num_group_loaders = CRIFS_CONFIG_DEFAULT_NUM_GROUP_LOADERS;\
912 (p_config)->num_stdio_handles = CRIFS_CONFIG_DEFAULT_NUM_STDIO_HANDLES;\
913 (p_config)->num_installers = CRIFS_CONFIG_DEFAULT_NUM_INSTALLERS;\
914 (p_config)->max_binds = CRIFS_CONFIG_DEFAULT_MAX_BINDS;\
915 (p_config)->max_files = CRIFS_CONFIG_DEFAULT_MAX_FILES;\
916 (p_config)->max_path = CRIFS_CONFIG_DEFAULT_MAX_PATH;\
917 (p_config)->version = CRI_FS_VERSION;\
918 }
919
920
968 void CRIAPI criFs_SetUserMallocFunction(CriFsMallocFunc func, void *obj);
969
1015 void CRIAPI criFs_SetUserFreeFunction(CriFsFreeFunc func, void *obj);
1016
1083 CriError CRIAPI criFs_SetSelectIoCallback(CriFsSelectIoCbFunc func);
1084
1085 #ifdef __cplusplus
1086 }
1087 #endif
1088
1089 #endif
1090
1091 -stdin