1 2 #ifndef __SYS_BUFCACHE_H__ 3 #define __SYS_BUFCACHE_H__ 4 5 #include <sys/queue.h> 6 7 typedef struct BufCacheEntry { 8 Disk *disk; 9 uint64_t diskOffset; 10 uint64_t refCount; 11 void *buffer; 12 TAILQ_ENTRY(BufCacheEntry) htEntry; 13 TAILQ_ENTRY(BufCacheEntry) lruEntry; 14 } BufCacheEntry; 15 16 void BufCache_Init(); 17 int BufCache_Alloc(Disk *disk, uint64_t diskOffset, BufCacheEntry **entry); 18 void BufCache_Release(BufCacheEntry *entry); 19 int BufCache_Read(Disk *disk, uint64_t diskOffset, BufCacheEntry **entry); 20 int BufCache_Write(BufCacheEntry *entry); 21 22 #endif /* __SYS_BUFCACHE_H__ */ 23 24