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 _CACHE_H_ 7#define _CACHE_H_ 8 9#include <BeBuild.h> 10 11#define ALLOW_WRITES 1 12#define NO_WRITES 0 13 14#ifdef __cplusplus 15extern "C" { 16#endif 17 18extern int init_block_cache(int max_blocks, int flags); 19extern void shutdown_block_cache(void); 20 21extern void force_cache_flush(int dev, int prefer_log_blocks); 22extern int flush_blocks(int dev, off_t bnum, int nblocks); 23extern int flush_device(int dev, int warn_locked); 24 25extern int init_cache_for_device(int fd, off_t max_blocks); 26extern int remove_cached_device_blocks(int dev, int allow_write); 27 28extern void *get_block(int dev, off_t bnum, int bsize); 29extern void *get_empty_block(int dev, off_t bnum, int bsize); 30extern int release_block(int dev, off_t bnum); 31extern int mark_blocks_dirty(int dev, off_t bnum, int nblocks); 32 33 34extern int cached_read(int dev, off_t bnum, void *data, off_t num_blocks, int bsize); 35extern int cached_write(int dev, off_t bnum, const void *data, 36 off_t num_blocks, int bsize); 37extern int cached_write_locked(int dev, off_t bnum, const void *data, 38 off_t num_blocks, int bsize); 39extern int set_blocks_info(int dev, off_t *blocks, int nblocks, 40 void (*func)(off_t bnum, size_t nblocks, void *arg), 41 void *arg); 42 43extern size_t read_phys_blocks (int fd, off_t bnum, void *data, uint num_blocks, int bsize); 44extern size_t write_phys_blocks(int fd, off_t bnum, void *data, uint num_blocks, int bsize); 45 46#ifdef __cplusplus 47} 48#endif 49 50#endif /* _CACHE_H_ */ 51