xref: /haiku/headers/os/drivers/fs_cache.h (revision a1978b5cef2b28d04a9d021b8861d25465711345)
1*a1978b5cSAxel Dörfler /* File System File and Block Caches
2*a1978b5cSAxel Dörfler **
3*a1978b5cSAxel Dörfler ** Distributed under the terms of the Haiku License.
4*a1978b5cSAxel Dörfler */
5*a1978b5cSAxel Dörfler #ifndef _FS_CACHE_H
6*a1978b5cSAxel Dörfler #define _FS_CACHE_H
7*a1978b5cSAxel Dörfler 
8*a1978b5cSAxel Dörfler 
9*a1978b5cSAxel Dörfler #include <fs_interface.h>
10*a1978b5cSAxel Dörfler 
11*a1978b5cSAxel Dörfler 
12*a1978b5cSAxel Dörfler #ifdef __cplusplus
13*a1978b5cSAxel Dörfler extern "C" {
14*a1978b5cSAxel Dörfler #endif
15*a1978b5cSAxel Dörfler 
16*a1978b5cSAxel Dörfler /* file cache */
17*a1978b5cSAxel Dörfler extern void *file_cache_create(mount_id mountID, vnode_id vnodeID, off_t size, int openMode);
18*a1978b5cSAxel Dörfler extern void file_cache_delete(void *_cacheRef);
19*a1978b5cSAxel Dörfler extern status_t file_cache_set_size(void *_cacheRef, off_t size);
20*a1978b5cSAxel Dörfler 
21*a1978b5cSAxel Dörfler extern status_t file_cache_read_pages(void *_cacheRef, off_t offset,
22*a1978b5cSAxel Dörfler 					const iovec *vecs, size_t count, size_t *_numBytes);
23*a1978b5cSAxel Dörfler extern status_t file_cache_write_pages(void *_cacheRef, off_t offset,
24*a1978b5cSAxel Dörfler 					const iovec *vecs, size_t count, size_t *_numBytes);
25*a1978b5cSAxel Dörfler extern status_t file_cache_read(void *_cacheRef, off_t offset, void *bufferBase, size_t *_size);
26*a1978b5cSAxel Dörfler extern status_t file_cache_write(void *_cacheRef, off_t offset, const void *buffer, size_t *_size);
27*a1978b5cSAxel Dörfler 
28*a1978b5cSAxel Dörfler #ifdef __cplusplus
29*a1978b5cSAxel Dörfler }
30*a1978b5cSAxel Dörfler #endif
31*a1978b5cSAxel Dörfler 
32*a1978b5cSAxel Dörfler #endif	/* _FS_CACHE_H */
33