FileSystem.h
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:7k
源码类别:

压缩解压

开发平台:

C++ Builder

  1. /*==========================================================================
  2. Copyright (c) 2004 ALi Corporation. All Rights Reserved
  3. File: FileSystem.h
  4. content: 
  5. History: Created by David Chiu 2004/3/30
  6. ==========================================================================*/
  7. #ifdef _FILE_SYSTEM_H_
  8. #define EXTERN
  9. #define _AT_(addr) _at_ addr
  10. #else
  11. #define EXTERN extern
  12. #define _AT_(addr)
  13. #endif
  14. //init file system struct "gstFsFileInf"
  15. #define INIT_FSFILEInf()
  16. {
  17. stFsFileInf.pbFileName=gxbFileName;
  18. stFsFileInf.pbLongFileName=gxbLongFileName;
  19. stFsFileInf.bPathDepth=0;
  20. stFsFileInf.dwDirStartSec=gxdwRoot;
  21. /*gpstFileIndex=&stFsFileInf;*/
  22. }
  23. //David 050318 , remodify file structure
  24. /*
  25. #if(_PM_INIT_|_PM_PLAY_|_PM_REC_|_PM_FM_|_PM_SYS_|_PM_MTP_)
  26. //add by tne 2005/01/19 #1
  27. EXTERN struct FILE_INF_DATA xdata stFsFileInf;
  28. EXTERN struct FILE_BRIEF xdata stPlayFileb,stLrcFileb; //Vicky050310
  29. //init file system struct
  30. #define FILE_SYSTEM_STRUCT_INIT() {
  31. stFsFileInf.pbFileName=gxbFileName;
  32. stFsFileInf.pbLongFileName=gxbLongFileName;
  33. stFsFileInf.bPathDepth=0;
  34. stFsFileInf.dwDirStartSec=gxdwRoot;
  35. }
  36. #endif
  37. #define gxdwDirSec stFsFileInf.dwDirSec
  38. #define gxwDirOffset stFsFileInf.wDirOffset
  39. #define gxbPathDepth stFsFileInf.bPathDepth
  40. #define gxdwFileSize stFsFileInf.dwFileSize
  41. #define gxdwFileTotalSector stFsFileInf.dwFileTotalSector
  42. #define gxdwFileStartClu stFsFileInf.dwFileStartClu
  43. #define gxdwDirStartSec stFsFileInf.dwDirStartSec
  44. */
  45. //add by tne 2005/05/11
  46. //Use Full Fomrat, the max capacity for FAT16
  47. //Storage sector less than this will use FAT16, otherwise use FAT32
  48. //#define FORMAT_FAT16_MAX_CAP 0x40000 //128 MB (include)
  49. //#define FORMAT_FAT16_MAX_CAP 0x80000 //256 MB (include)
  50. //#define FORMAT_FAT16_MAX_CAP 0x100000 //512 MB (include)
  51. #define FORMAT_FAT16_MAX_CAP 0x220000 //1024 MB (include)
  52. #define ATTR_NORMAL 0x00
  53. #define ATTR_READ_ONLY 0x01
  54. #define ATTR_HIDDEN 0x02
  55. #define ATTR_SYSTEM 0x04
  56. #define ATTR_LABEL 0x08
  57. #define ATTR_SUB_DIR 0x10
  58. #define ATTR_ARCHIVE 0x20
  59. #define ATTR_LONG_FILE_NAME 0x0f
  60. //move by tne 2005/01/07 #2
  61. #if(_PM_HST_|_PM_FM_|_PM_PHOTO_|_PM_MTP_) //Walace060918#1 
  62. EXTERN API bit FsRead(DWORD, BYTE, BYTE) large;
  63. #else
  64. EXTERN API bit FsRead(DWORD, BYTE, BYTE) ;
  65. #endif
  66. //modify by tne 2005/02/15
  67. #if(_PM_INIT_|_PM_SYS_|_PM_MTP_INIT_|_PM_SAVE_|SETTING_FOR_ICE_START|_PM_INIT_CHK_|_PM_VIDEO_)
  68. EXTERN API bit FsInit(void) large;
  69. #endif
  70. EXTERN API bit FsRecInit(void); //David051014  //Walace060503#1
  71. EXTERN API bit FsInfoCheck(void) large; //David051014  
  72. #if((_PM_INIT_|_PM_SYS_|_PM_REC_|_PM_MTP_|_PM_SAVE_|_PM_MTP_INIT_|_PM_INIT_CHK_))
  73. #if(_PM_MTP_|_PM_MTP_INIT_) //060728
  74. EXTERN API bit FsDirEntryInit(DWORD dwStartDirClu, DWORD dwParentDirClu, BYTE bDirAttr) large;
  75. EXTERN API bit FsFindDir(PBYTE pbDirName, BOOL fCreate, DWORD dwParentDirClu, BYTE bDirAttr) large; //allen050811
  76. #else
  77. EXTERN API bit FsFindDir(BYTE bDirIndex,PBYTE pbDirName, BOOL fCreate,BYTE bDirAttr) large;//vicky050118 remodify //tne 2006/12/07 #3
  78. #endif
  79. #endif
  80. //Chris add |_PM_PLAY_ for playcount 060721 #1
  81. //#if(_PM_MTP_|_PM_MTP_INIT_|_PM_SLS_|_PM_PHOTO_|_PM_VIDEO_|_PM_DIR_DEL_|_PM_PLAY_DEL_|_PM_SYS_|_PM_PLAY_)
  82. EXTERN API bit FsReadFileSectorNew(DWORD dwSector,BYTE bSrampath) large;
  83. //#endif
  84. //Chris061020 #3 add 
  85. #if(_PM_MTP_|_PM_MTP_INIT_)
  86. EXTERN API bit FsSetFileCluPointToEnd ( void ) large; //Chris add 061020 #3
  87. EXTERN API bit FsReadDBFileSector(DWORD dwSector, BYTE bSrampath, BOOL fQuickDb, BYTE bSetSectorOnly) large; //Chris Test 061014 #2
  88. #endif
  89. #if(_PM_SLS_|_PM_PHOTO_|_PM_VIDEO_|_PM_PLAY_|_PM_SYS_|_PM_MTP_|_PM_MTP_INIT_|_PM_INIT_CHK_|_PM_PLAY_DEL_|_PM_DIR_DEL_) 
  90. #if(!(_PM_MTP_|_PM_MTP_INIT_)) //060728
  91. EXTERN API bit FsReadFileSector(DWORD dwSector, BOOL  fLrcfile ,  BYTE bSrampath) ;   //Vicky050321
  92. #endif
  93. EXTERN API bit FsOpenFile(BYTE bOpenType) large;
  94. #if(!(_PM_SLS_|_PM_INIT_CHK_))
  95. EXTERN API BOOL FsChangeDir(BYTE bChangeType) ; //Walace060918#1
  96. #endif
  97. #endif
  98. #if(_PM_SYS_|_PM_MTP_|_PM_MTP_INIT_|_PM_REC_|_PM_PLAY_DEL_|_PM_DIR_DEL_)
  99. EXTERN API bit FsDeleteFile(void) large;
  100. EXTERN API bit FsDirSerachFile(void) large;
  101. #endif
  102. #if(_PM_SYS_|_PM_MTP_INIT_|(REC_TEST&_PM_REC_)) //Vicky
  103. EXTERN API bit FsQuickFormat(void) large;
  104. EXTERN API bit FsFATFormat(DWORD dwFAT,BYTE) large;
  105. EXTERN API bit FsFullFormat(void) large;
  106. #endif
  107. #if(_PM_INIT_|_PM_HST_|_PM_SYS_|_PM_REC_|_PM_MTP_|_PM_SAVE_|_PM_MTP_INIT_|_PM_INIT_CHK_|_PM_PLAY_DEL_|_PM_DIR_DEL_|(REC_TEST&_PM_REC_)) //Vicky Debug REC
  108. EXTERN DWORD FindEmptyClu(void);
  109. #if(!_PM_HST_)//allen050920
  110. EXTERN bit FatWrite(DWORD dwCluNumber, DWORD dwEntryValue);
  111. #endif
  112. EXTERN bit FsInfoUpdate(void); //tne 2005/05/10
  113. EXTERN API bit FsOpenNewFile(BYTE bDirIndex, bit fFindEmptyClu) large; //vicky050118 remodify
  114. #endif
  115. #if(_PM_REC_|_PM_INIT_CHK_)
  116. EXTERN API bit FsWriteFileHeader(void) large;
  117. EXTERN API bit FsWriteWmaHeader(void) large;
  118. #endif
  119. #if(_PM_REC_|_PM_MTP_|_PM_MTP_INIT_|_PM_INIT_|_PM_SYS_|_PM_SAVE_) //060728 060821
  120. EXTERN API bit FsWriteFileSector(DWORD dwSector, BOOL fSkipRW) large; //Chris061109#1
  121. EXTERN API bit FsWriteDirEntry(DWORD dwDirSec, WORD wDirOffset, DWORD dwFileSize, DWORD dwFileStartClu, BYTE bAttribute) large;
  122. //EXTERN API bit FsCloseFile(BYTE bDirIndex) large; //vicky050118 remodify //Chris061024 #5 modify 
  123. #endif
  124. //Chris061024 #5 modify 
  125. #if(_PM_REC_|_PM_INIT_|_PM_SYS_|_PM_SAVE_) //060728 060821
  126. EXTERN API bit FsCloseFile(BYTE bDirIndex) large; //vicky050118 remodify
  127. #endif
  128. //Walace060501#1
  129. #if(!_PM_HST_)
  130. EXTERN API bit FsWrite(DWORD, BYTE, BYTE) large;
  131. EXTERN DWORD FatRead(DWORD dwCluNumber) large;
  132. #endif
  133. //End
  134. //add by tne 2005/02/15
  135. #if(_PM_MTP_|_PM_MTP_INIT_)
  136. EXTERN API bit FOpenFile(IN PBYTE wpDirNameBuffer) large;
  137. EXTERN API bit FsMTPCloseFile(BYTE bDirIndex) large; //Chris061020 #1 add 
  138. //EXTERN API bit FsForwardRead(DWORD, BOOL) large;//modify by tne 2005/04/13
  139. EXTERN XDWORD gxdwFileRecSector;
  140. EXTERN API BYTE SaveLongFileEntry(IN PBYTE pbUnicodeName, IN DWORD dwParentClu, IN PBYTE pbGeneralName) large;
  141. #define MTP_ROOT_CLUSTER 0 //add by tne 2005/03/28
  142. EXTERN bit fOpenWithLongName;
  143. EXTERN bit fForwardReadFileSec; //add by tne 2005/04/13
  144. EXTERN bit fDeleteContinuous; //060721
  145. #endif
  146. //EXTERN XDWORD  gxdwLfnSector;
  147. //EXTERN XWORD gxwLfnOffset;
  148. #if(_PM_MTP_) //Allen060908: for MTP more code size
  149. API void FsWriteEndOfFatEntry(DWORD dwFatNum) large;
  150. #endif
  151. #if(_PM_INIT_CHK_)
  152. API BOOL FsEndOfFatEntry(DWORD dwFatNum) large;
  153. API void FsWriteEndOfFatEntry(DWORD dwFatNum) large;
  154. #endif
  155. #if(_PM_PHOTO_|_PM_VIDEO_|_PM_PLAY_|_PM_SYS_|_PM_PLAY_DEL_|_PM_HST_|_PM_DIR_DEL_|_PM_MTP_INIT_) //050803 host
  156. EXTERN BYTE FsGetAnEntryLongFileName(PBYTE pbLongFileName,PBYTE pbEntryPoint,BYTE bEnterArea) ; //Walace061228#CodeSize
  157. #endif
  158. //Walace060809#2 remove to common.c for the sake of open source code
  159. //EXTERN API bit StorageRead(void);
  160. //EXTERN API bit StorageWrite(void);
  161. #if(_PM_HST_) //allen050627: for HOST only 050714: to UsbHostFat
  162. EXTERN API bit FsCacheFree(BYTE bCacheIndex) large; //allen050629: from UsbHostFa
  163. EXTERN API bit FsCacheFreeAll(void) large;
  164. #endif
  165. API void FsWriteLabelName(void) large; //tne 2005/12/19  //Walace060725#1
  166. #undef EXTERN
  167. #undef _AT_