diff --git a/headers/os/drivers/fs_cache.h b/headers/os/drivers/fs_cache.h index 5d1a2f7723..c55fce4afc 100644 --- a/headers/os/drivers/fs_cache.h +++ b/headers/os/drivers/fs_cache.h @@ -9,10 +9,30 @@ #include +typedef void (*transaction_notification_hook)(int32); + #ifdef __cplusplus extern "C" { #endif +/* transactions */ +extern int32 cache_transaction_start(void *_cache, transaction_notification_hook hook); +extern status_t cache_transaction_sync(void *_cache, int32 id); +extern status_t cache_transaction_end(void *_cache, int32 id); +extern status_t cache_transaction_abort(void *_cache, int32 id); + +/* block cache */ +extern void block_cache_delete(void *_cache, bool allowWrites); +extern void *block_cache_create(int fd, off_t numBlocks, size_t blockSize); +extern status_t block_cache_sync(void *_cache); + +extern void *block_cache_get_writable_etc(void *_cache, off_t blockNumber, off_t base, off_t length, int32 transaction); +extern void *block_cache_get_writable(void *_cache, off_t blockNumber, int32 transaction); +extern void *block_cache_get_empty(void *_cache, off_t blockNumber, int32 transaction); +extern const void *block_cache_get_etc(void *_cache, off_t blockNumber, off_t base, off_t length); +extern const void *block_cache_get(void *_cache, off_t blockNumber); +extern void block_cache_put(void *_cache, off_t blockNumber); + /* file cache */ extern void *file_cache_create(mount_id mountID, vnode_id vnodeID, off_t size, int fd); extern void file_cache_delete(void *_cacheRef);