00001
00002
00003
00004
00005
00006
00016 #ifndef _IOCHACHE_H_
00017 #define _IOCHACHE_H_
00018
00019
00023 typedef struct sIOCache tIOCache;
00029 typedef int (*tIOCache_WriteCallback)(Uint32 ID, Uint64 Sector, void *Buffer);
00030
00031
00035 enum eIOCache_Modess {
00042 IOCACHE_WRITEBACK,
00049 IOCACHE_DELAYWRITE,
00057 IOCACHE_VIRTUAL
00058 };
00059
00060
00068 tIOCache *IOCache_Create( tIOCache_WriteCallback Write, Uint32 ID, int SectorSize, int CacheSize );
00069
00077 int IOCache_Read( tIOCache *Cache, Uint64 Sector, void *Buffer );
00078
00086 int IOCache_Add( tIOCache *Cache, Uint64 Sector, void *Buffer );
00087
00099 int IOCache_Write( tIOCache *Cache, Uint64 Sector, void *Buffer );
00100
00108 void IOCache_Flush( tIOCache *Cache );
00109
00118 void IOCache_Destroy( tIOCache *Cache );
00119
00120 #endif