1/*
2	Copyright 1999-2001, Be Incorporated.   All Rights Reserved.
3	This file may be used under the terms of the Be Sample Code License.
4*/
5
6#ifndef USERLAND_FS_BEOS_FS_CACHE_H
7#define USERLAND_FS_BEOS_FS_CACHE_H
8
9#include <BeBuild.h>
10
11#ifndef _IMPEXP_KERNEL
12#define _IMPEXP_KERNEL
13#endif
14
15#ifdef __cplusplus
16	extern "C" {
17#endif
18
19extern _IMPEXP_KERNEL int   beos_init_block_cache(int max_blocks, int flags);
20extern _IMPEXP_KERNEL void  beos_shutdown_block_cache(void);
21
22extern _IMPEXP_KERNEL void  beos_force_cache_flush(int dev,
23								int prefer_log_blocks);
24extern _IMPEXP_KERNEL int   beos_flush_blocks(int dev, off_t bnum, int nblocks);
25extern _IMPEXP_KERNEL int   beos_flush_device(int dev, int warn_locked);
26
27extern _IMPEXP_KERNEL int   beos_init_cache_for_device(int fd,
28								off_t max_blocks);
29extern _IMPEXP_KERNEL int   beos_remove_cached_device_blocks(int dev,
30								int allow_write);
31
32extern _IMPEXP_KERNEL void *beos_get_block(int dev, off_t bnum, int bsize);
33extern _IMPEXP_KERNEL void *beos_get_empty_block(int dev, off_t bnum,
34								int bsize);
35extern _IMPEXP_KERNEL int   beos_release_block(int dev, off_t bnum);
36extern _IMPEXP_KERNEL int   beos_mark_blocks_dirty(int dev, off_t bnum,
37								int nblocks);
38
39
40extern _IMPEXP_KERNEL int  beos_cached_read(int dev, off_t bnum, void *data,
41								off_t num_blocks, int bsize);
42extern _IMPEXP_KERNEL int  beos_cached_write(int dev, off_t bnum,
43								const void *data, off_t num_blocks, int bsize);
44extern _IMPEXP_KERNEL int  beos_cached_write_locked(int dev, off_t bnum,
45								const void *data, off_t num_blocks, int bsize);
46extern _IMPEXP_KERNEL int  beos_set_blocks_info(int dev, off_t *blocks,
47								int nblocks, void (*func)(off_t bnum,
48									size_t nblocks, void *arg), void *arg);
49
50
51extern _IMPEXP_KERNEL size_t beos_read_phys_blocks (int fd, off_t bnum,
52								void *data, uint num_blocks, int bsize);
53extern _IMPEXP_KERNEL size_t beos_write_phys_blocks(int fd, off_t bnum,
54								void *data, uint num_blocks, int bsize);
55
56#ifdef __cplusplus
57	}	// extern "C"
58#endif
59
60#endif /* USERLAND_FS_BEOS_FS_CACHE_H */
61