cri_le_file_system.h
説明を見る。
    1 /****************************************************************************
    2  *
    3  * CRI Middleware SDK
    4  *
    5  * Copyright (c) 2006-2016 CRI Middleware Co., Ltd.
    6  *
    7  * Library  : CRI File System
    8  * Module   : Library User's Header
    9  * File     : cri_le_file_system.h
   10  *
   11  ****************************************************************************/
   16 /* 多重定義防止                   */
   17 /* Prevention of redefinition   */
   18 #ifndef CRI_FILE_SYSTEM_H_INCLUDED
   19 #define CRI_FILE_SYSTEM_H_INCLUDED
   20 
   21 /***************************************************************************
   22  *      インクルードファイル
   23  *      Include files
   24  ***************************************************************************/
   25 #include <cri_le_xpt.h>
   26 #include <cri_le_error.h>
   27 
   28 /***************************************************************************
   29  *      定数マクロ
   30  *      Macro Constants
   31  ***************************************************************************/
   32 /* バージョン情報 */
   33 /* Version Number */
   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  *      Macro Functions
   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  *      Data Type Declarations
   85  ***************************************************************************/
   86 /*==========================================================================
   87  *      CRI File System API
   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     /* enum be 4bytes */
  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  *      CriFsIo API
  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     /* enum be 4bytes */
  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     /* enum be 4bytes */
  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     /* enum be 4bytes */
  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     /* enum be 4bytes */
  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  *      CriFsBinder API
  849  *=========================================================================*/
  850 struct CriFsBinderHnObjTag;
  857 typedef struct CriFsBinderHnObjTag *CriFsBinderHn;
  858 
  859 /*==========================================================================
  860  *      CriFsLoader API
  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     /* enum be 4bytes */
  874     CRIFSLOADER_PRIORITY_ENUM_BE_SINT32 = 0x7FFFFFFF
  875 } CriFsLoaderPriority;
  876 
  877 /***************************************************************************
  878 *      関数宣言
  879 *      Prototype Functions
  880 ***************************************************************************/
  881 #ifdef __cplusplus
  882 extern "C" {
  883 #endif
  884 
  885 /*==========================================================================
  886  *      CRI File System API
  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  /* CRI_FILE_SYSTEM_H_INCLUDED */
 1090 
 1091 /* --- end of file --- */-stdin

CRI Middleware logo Copyright (c) 2012-2018 CRI Middleware Co., Ltd. CRI ADX2 LE マニュアル (for Cocos2d-x) SDKVer.2.10版