uffs_blockInfo.h

Go to the documentation of this file.
00001 
00007 #ifndef _UFFS_BLOCKINFO_H_
00008 #define _UFFS_BLOCKINFO_H_
00009 
00010 #include "uffs/uffs_types.h"
00011 #include "uffs/uffs_public.h"
00012 
00013 #ifdef __cplusplus
00014 extern "C"{
00015 #endif
00016 
00020 struct uffs_pageSpareSt {
00021     u8 expired:1;           
00022     u8 checkOk:1;           
00023     u8 blockStatus:1;       
00024     uffs_Tags tag;          
00025 };
00026 
00032 struct uffs_blockInfoSt {
00033     struct uffs_blockInfoSt *next;
00034     struct uffs_blockInfoSt *prev;
00035     u16 blockNum;                   
00036     struct uffs_pageSpareSt *spares;
00037     int expiredCount;       
00038     int refCount;           
00039 };
00040 
00041 
00042 URET uffs_InitBlockInfoCache(uffs_Device *dev, int maxCachedBlocks);
00043 URET uffs_ReleaseBlockInfoCache(uffs_Device *dev);
00044 void uffs_CheckPageSpare(uffs_Device *dev, uffs_pageSpare *spare);
00045 URET uffs_LoadBlockInfo(uffs_Device *dev, uffs_blockInfo *work, int page);
00046 uffs_blockInfo * uffs_FindBlockInfoInCache(uffs_Device *dev, int block);
00047 uffs_blockInfo * uffs_GetBlockInfo(uffs_Device *dev, int block);
00048 void uffs_PutBlockInfo(uffs_Device *dev, uffs_blockInfo *p);
00049 void uffs_ExpireBlockInfo(uffs_Device *dev, uffs_blockInfo *p, int page);
00050 //uffs_blockInfo * uffs_CloneBlockInfo(uffs_Device *dev, uffs_blockInfo *p);
00051 //void uffs_ReleaseCloneBlockInfo(uffs_blockInfo *p);
00052 UBOOL uffs_IsAllBlockInfoFree(uffs_Device *dev);
00053 void uffs_ExpireAllBlockInfo(uffs_Device *dev);
00054 
00055 #ifdef __cplusplus
00056 }
00057 #endif
00058 
00059 
00060 #endif

Generated on Sat Mar 17 15:45:44 2007 for uffs-doc by  doxygen 1.5.0