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