/***************************************************************************** FileSys.h *****************************************************************************/ #ifndef _FILE_SYS_H #define _FILE_SYS_H /*****************************************************************************/ #include #define STORAGE_MARK 0x8abcdef8 #define FILE_INDEX_ADDR 0x00000000 //4KB 000000~000FFF 保存文件索引信息 #define FILE_DATA_ADDR 0x00001000 //~2MB 001000~1FFFFF 所有文件数据存储的首地址 #define FILE_DATA_ADDR_END 0x001FFFFF #define FILE_COUNT_MAX 90 //文件最大个数 文件索引表所占空间:sizeof(SUT_FILE_INFO)*FILE_COUNT_MAX+8=44*90+8=3968B=3.9KB #define FILE_NAME_LEN_MAX 20 //文件名最长字节数 应预留结束符0 因此实际文件名长度应控制在FILE_NAME_LEN_MAX-1 #define FILE_ALL_DATA_LEN_MAX (FILE_DATA_ADDR_END-FILE_DATA_ADDR+1) //文件数据最大长度 typedef struct SUT_FILE_INFO { char FileName[FILE_NAME_LEN_MAX]; char FileMD5[16]; unsigned long FileLen; unsigned long FileAddr; }__attribute__((packed)) SUT_FILE_INFO;//20+16+4+4=44 typedef struct SUT_FILE_LIST { unsigned long Mark; unsigned long FileCount;//文件个数 SUT_FILE_INFO FileInfo[FILE_COUNT_MAX];//文件信息列表 }__attribute__((packed)) SUT_FILE_LIST; extern SUT_FILE_LIST g_sutFilesList; int FileSysInit(); void FileSysSaveIndex(void); void FileSysReadIndex(void); int FileCheckMD5(int FileIndex); /*****************************************************************************/ #endif /*****************************************************************************/