⛏️ index : haiku.git

/*
	Copyright 1999-2001, Be Incorporated.   All Rights Reserved.
	This file may be used under the terms of the Be Sample Code License.
*/

#ifndef USERLAND_FS_BEOS_FS_CACHE_H
#define USERLAND_FS_BEOS_FS_CACHE_H

#include <BeBuild.h>

#ifndef _IMPEXP_KERNEL
#define _IMPEXP_KERNEL
#endif

#ifdef __cplusplus
	extern "C" {
#endif

extern _IMPEXP_KERNEL int   beos_init_block_cache(int max_blocks, int flags);
extern _IMPEXP_KERNEL void  beos_shutdown_block_cache(void);

extern _IMPEXP_KERNEL void  beos_force_cache_flush(int dev,
								int prefer_log_blocks);
extern _IMPEXP_KERNEL int   beos_flush_blocks(int dev, off_t bnum, int nblocks);
extern _IMPEXP_KERNEL int   beos_flush_device(int dev, int warn_locked);

extern _IMPEXP_KERNEL int   beos_init_cache_for_device(int fd,
								off_t max_blocks);
extern _IMPEXP_KERNEL int   beos_remove_cached_device_blocks(int dev,
								int allow_write);

extern _IMPEXP_KERNEL void *beos_get_block(int dev, off_t bnum, int bsize);
extern _IMPEXP_KERNEL void *beos_get_empty_block(int dev, off_t bnum,
								int bsize);
extern _IMPEXP_KERNEL int   beos_release_block(int dev, off_t bnum);
extern _IMPEXP_KERNEL int   beos_mark_blocks_dirty(int dev, off_t bnum,
								int nblocks);


extern _IMPEXP_KERNEL int  beos_cached_read(int dev, off_t bnum, void *data,
								off_t num_blocks, int bsize);
extern _IMPEXP_KERNEL int  beos_cached_write(int dev, off_t bnum,
								const void *data, off_t num_blocks, int bsize);
extern _IMPEXP_KERNEL int  beos_cached_write_locked(int dev, off_t bnum,
								const void *data, off_t num_blocks, int bsize);
extern _IMPEXP_KERNEL int  beos_set_blocks_info(int dev, off_t *blocks,
								int nblocks, void (*func)(off_t bnum,
									size_t nblocks, void *arg), void *arg);


extern _IMPEXP_KERNEL size_t beos_read_phys_blocks (int fd, off_t bnum,
								void *data, uint num_blocks, int bsize);
extern _IMPEXP_KERNEL size_t beos_write_phys_blocks(int fd, off_t bnum,
								void *data, uint num_blocks, int bsize);

#ifdef __cplusplus
	}	// extern "C"
#endif

#endif /* USERLAND_FS_BEOS_FS_CACHE_H */