bread, bwrite -- read and write blocks of a UFS filesystem
UFS File System Access Library (libufs, -lufs)
#include <sys/param.h>
#include <sys/mount.h>
#include <ufs/ufs/ufsmount.h>
#include <ufs/ufs/dinode.h>
#include <ufs/ffs/fs.h>
#include <libufs.h>
ssize_t
bread(struct uufsd *disk, ufs2_daddr_t blockno, void *data, size_t size);
ssize_t
bwrite(struct uufsd *disk, ufs2_daddr_t blockno, const void *data,
size_t size);
The bread() and bwrite() functions provide a block read and write API for
libufs(3) consumers. They operate on a userland UFS disk structure, and
perform the read and write at a given block address, which uses the current
d_bsize value of the structure.
The bread() and bwrite() functions return the amount read or written, or
-1 in case of any error, including short read.
The function bread() may fail and set errno for any of the errors specified
for the library functions ufs_disk_write(3) or pread(2). Additionally,
it may follow the libufs(3) error methodologies in situations where
the amount of data read is not equal to the amount requested, or in case
of device error.
The function bwrite() may fail and set errno for any of the errors specified
for the library function pwrite(2). Additionally, it may follow the
libufs(3) error methodologies in situations where the amount of data
written is not equal to the amount requested, or in case of a device
error.
libufs(3), ufs_disk_write(3)
These functions first appeared as part of libufs(3) in FreeBSD 5.0.
Juli Mallett <[email protected]>
FreeBSD 5.2.1 June 04, 2003 FreeBSD 5.2.1 [ Back ] |