3 #ifndef __HOS__fatvol_local_h__
4 #define __HOS__fatvol_local_h__
11 #define FATVOL_CLUSTER_FREE 0x00000000
12 #define FATVOL_CLUSTER_ENDMARKER 0xffffffff
16 #define FATVOL_TYPE_UNKNOWN 0
17 #define FATVOL_TYPE_FAT12 1
18 #define FATVOL_TYPE_FAT16 2
19 #define FATVOL_TYPE_FAT32 3
26 HANDLE FatVol_Open(C_DRVOBJ *pDrvObj, const char *pszPath, int iMode);
27 void FatVol_Close(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
28 FILE_ERR FatVol_IoControl(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, int iFunc, void *pInBuf, FILE_SIZE InSize, const void *pOutBuf, FILE_SIZE OutSize);
29 FILE_POS FatVol_Seek(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, FILE_POS Offset, int iOrign);
30 FILE_SIZE FatVol_Read(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, void *pBuf, FILE_SIZE Size);
31 FILE_SIZE FatVol_Write(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, const void *pData, FILE_SIZE Size);
32 FILE_ERR FatVol_Flush(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
34 FILE_ERR FatVol_MakeDir(C_VOLUMEOBJ *self, const char *pszPath); /* サブディレクトリを作成 */
35 FILE_ERR FatVol_Remove(C_VOLUMEOBJ *self, const char *pszPath); /* ファイルを削除 */
38 int FatVol_ClusterWrite(C_FATVOL *self, FATVOL_UINT uiCluster, const void *pBuf); /**< クラスタ書き込み */
39 int FatVol_ClusterRead(C_FATVOL *self, FATVOL_UINT uiCluster, void *pBuf); /**< クラスタ読み込み */
40 int FatVol_GetClusterBuf(C_FATVOL *self, FATVOL_UINT uiCluster, void **ppBuf, int iRead);
41 int FatVol_RelClusterBuf(C_FATVOL *self, void *ppBuf, int iDirty);
43 FATVOL_UINT FatVol_GetNextCluster(C_FATVOL *self, FATVOL_UINT uiCluster);
44 void FatVol_SetNextCluster(C_FATVOL *self, FATVOL_UINT uiCluster, FATVOL_UINT uiNextCluster);
52 #endif /* __HOS__fatvol_local_h__ */