/* * mt.h * */ #ifndef MT_H_ #define MT_H_ #define WRITEITEMTOFILE 1 #define LINEMAX 256 #define TABLENAMELEN 12 #define MODELNAMELEN 16 #define ITEMNAMELEN 16 #define MODELNUMMAX 2 #define SUBTABLEITEMMAX 3 #define MAXBINSIZE 8*1024 #define MAXMULTITABLEBINSIZE 8*1024 typedef struct _Item_t { char name[ITEMNAMELEN+1]; char *filepath; unsigned int offset; unsigned int size; unsigned char *pData; unsigned int dummyByteNums; //for 4 bytes data alignment; }Item_t; typedef struct _SubTable_t { char modelName[MODELNAMELEN+1]; unsigned int subTableSize; unsigned int currTableStartOffset; unsigned int itemNum; unsigned int subTableNo; Item_t *itemList[SUBTABLEITEMMAX]; unsigned int checksum; unsigned char *pData; }SubTable_t; typedef struct _MultiTable_t { char name[TABLENAMELEN+1]; char defaultModelName[MODELNAMELEN+1]; unsigned int totalSize; unsigned int tableChecksum; unsigned int subTableOffset[MODELNUMMAX]; int modelNum; SubTable_t *modelList[MODELNUMMAX]; unsigned char *pData; }MultiTable_t; int parseItem(Item_t *pItem); int parseSubTable(SubTable_t *pSubTable); MultiTable_t *ParseMultiTableINI(char *filename); int writeOutputBuf(void *pData, unsigned int size, unsigned char **pOutBuf, FILE *fp); int writeTempBuf(void *pData, unsigned int size, unsigned char **pOutBuf); int writeMultiTable(MultiTable_t *pMTab, char *outputFilename); int writeMultiTableFlag(MultiTable_t *pMTab, char *outputFilename); void ReleaseSubTableItem(Item_t *pItem); void ReleaseSubTable(SubTable_t *pSubTable); void ReleaseMultiTable(MultiTable_t *pMT); unsigned int CalCulate_XOR_CheckSum(void *pBuffer, unsigned int size); #endif /* MT_H_ */