/* vfdbuf.h - VU buffered I/O decls
*
****************************************************************
* Copyright (C) 1998, 2000 Thomas Lord
*
* See the file "COPYING" for further information about
* the copyright and warranty status of this work.
*/
#ifndef INCLUDE__VU__VFDBUF_H
#define INCLUDE__VU__VFDBUF_H
#include "hackerlab/vu/vu.h"
extern struct vu_fs_discipline vfdbuf_vtable;
enum vfdbuf_buffer_flags
{
vfdbuf_add_zero_byte = 1,
vfdbuf_auto_shift = 2
};
/* automatically generated __STDC__ prototypes */
extern void vfdbuf_flush_all(void);
extern int vfdbuf_buffer_fd (int * errn, int fd, long bufsize, int flags, int buffer_flags);
extern int vfdbuf_set_buffer (int * errn,
int fd,
t_uchar * buffer,
long bufsize,
long read_write_pos,
long buffered,
int add_zero_byte,
void (*free_buffer)(t_uchar * buf, void * closure),
void * free_buffer_closure);
extern int vfdbuf_unbuffer_fd (int * errn, int fd);
extern int vfdbuf_is_buffered (int fd);
extern int vfdbuf_set_dont_flush (int * errn, int fd, int setting);
extern int vfdbuf_is_dont_flush (int * errn, int fd);
extern int vfdbuf_set_auto_shift (int * errn, int fd, int setting);
extern int vfdbuf_is_auto_shift (int * errn, int fd);
extern int vfdbuf_getbuf (int * errn,
t_uchar ** buffer,
long * bufsize,
t_uchar ** read_write_position,
long * buffered,
int * has_zero_byte,
int fd);
extern int vfdbuf_takebuf (int * errn,
t_uchar ** bufbase,
long * bufsize,
t_uchar ** read_write_pos,
long * buffered,
int * has_zero_byte,
int fd,
void (*free_buffer)(t_uchar * buf, void * closure),
void * free_buffer_closure);
extern int vfdbuf_shift (int * errn, int fd, long amt);
extern int vfdbuf_advance (int * errn, int fd, long amt);
extern int vfdbuf_flush (int * errn, int fd);
extern int vfdbuf_return (int * errn, int fd, t_uchar * str, long len);
extern ssize_t vfdbuf_more (int * errn,
t_uchar ** buffer,
long * bufsize,
t_uchar ** read_write_pos,
long * buffered,
int * has_zero_byte,
int fd,
long opt_amt);
extern int vfdbuf_is_eof (int * errn, int fd);
extern int vfdbuf_clear_eof (int * errn, int fd);
extern int vfdbuf_access (int * errn, char * path, int mode, void * closure);
extern int vfdbuf_chdir (int * errn, char * path, void * closure);
extern int vfdbuf_chmod (int * errn, char * path, int mode, void * closure);
extern int vfdbuf_chown (int * errn, char * path, int owner, int group, void * closure);
extern int vfdbuf_chroot (int * errn, char * path, void * closure);
extern int vfdbuf_closedir (int * errn, DIR * dir, void * closure);
extern int vfdbuf_fchdir (int * errn, int fd, void * closure);
extern int vfdbuf_fchmod (int * errn, int fd, int mode, void * closure);
extern int vfdbuf_fchown (int * errn, int fd, int owner, int group, void * closure);
extern int vfdbuf_fstat (int * errn, int fd, struct stat * buf, void * closure);
extern int vfdbuf_link (int * errn, char * from, char * to, void * closure);
extern int vfdbuf_lstat (int * errn, char * path, struct stat * buf, void * closure);
extern int vfdbuf_mkdir (int * errn, char * path, int mode, void * closure);
extern int vfdbuf_open (int * errn, char * path, int flags, int mode, void * closure);
extern int vfdbuf_opendir (int * errn, DIR ** retv, char * path, void * closure);
extern int vfdbuf_readdir (int * errn, struct alloc_limits * limits, char ** file_ret, DIR * dir, void * closure);
extern int vfdbuf_readlink (int * errn, char * path, char * buf, int bufsize, void * closure);
extern int vfdbuf_rename (int * errn, char * from, char * to, void * closure);
extern int vfdbuf_rmdir (int * errn, char * path, void * closure);
extern int vfdbuf_stat (int * errn, char * path, struct stat * buf, void * closure);
extern int vfdbuf_symlink (int * errn, char * from, char * to, void * closure);
extern int vfdbuf_truncate (int * errn, char * path, off_t where, void * closure);
extern int vfdbuf_unlink (int * errn, char * path, void * closure);
extern int vfdbuf_utime (int * errn, char * path, struct utimbuf * times, void * closure);
extern int vfdbuf_fcntl (int * errn, int fd, int cmd, long arg, void * closure);
extern int vfdbuf_dup (int * errn, int fd, void * closure);
extern int vfdbuf_dup2 (int * errn, int fd, int newfd, void * closure);
extern int vfdbuf_move_state (int * errn, int fd, int newfd, void * closure);
extern int vfdbuf_close (int * errn, int fd, void * closure);
extern int vfdbuf_fsync (int * errn, int fd, void * closure);
extern int vfdbuf_ftruncate (int * errn, int fd, off_t where, void * closure);
extern ssize_t vfdbuf_read (int * errn, int fd, char * buf, size_t count, void * closure);
extern ssize_t vfdbuf_write (int * errn, int fd, char const * buf, size_t count, void * closure);
extern off_t vfdbuf_lseek (int * errn, int fd, off_t offset, int whence, void * closure);
#endif /* INCLUDE__VU__VFDBUF_H */
syntax highlighted by Code2HTML, v. 0.9.1