1e78ea9f7SJuli Mallett.\" Author: Juli Mallett <jmallett@FreeBSD.org> 2e78ea9f7SJuli Mallett.\" Date: June 04, 2003 3e78ea9f7SJuli Mallett.\" Description: 4e78ea9f7SJuli Mallett.\" Manual page for libufs functions: 5e78ea9f7SJuli Mallett.\" bread(3) 6e78ea9f7SJuli Mallett.\" bwrite(3) 7e78ea9f7SJuli Mallett.\" 827fd7478SJuli Mallett.\" This file is in the public domain. 927fd7478SJuli Mallett.\" 10e78ea9f7SJuli Mallett.\" $FreeBSD$ 11e78ea9f7SJuli Mallett.\" 12e78ea9f7SJuli Mallett.Dd June 04, 2003 13e78ea9f7SJuli Mallett.Dt BREAD 3 14e78ea9f7SJuli Mallett.Os 15e78ea9f7SJuli Mallett.Sh NAME 16e78ea9f7SJuli Mallett.Nm bread , bwrite 17e78ea9f7SJuli Mallett.Nd read and write blocks of a UFS filesystem 18e78ea9f7SJuli Mallett.Sh LIBRARY 19e78ea9f7SJuli Mallett.Lb libufs 20e78ea9f7SJuli Mallett.Sh SYNOPSIS 21e78ea9f7SJuli Mallett.In sys/types.h 22e78ea9f7SJuli Mallett.In sys/param.h 23e78ea9f7SJuli Mallett.In sys/mount.h 24e78ea9f7SJuli Mallett.In ufs/ufs/ufsmount.h 25e78ea9f7SJuli Mallett.In ufs/ufs/dinode.h 26e78ea9f7SJuli Mallett.In ufs/ffs/fs.h 27e78ea9f7SJuli Mallett.In libufs.h 28e78ea9f7SJuli Mallett.Ft ssize_t 29e78ea9f7SJuli Mallett.Fn bread "struct uufsd *disk" "ufs2_daddr_t blockno" "void *data" "size_t size" 30e78ea9f7SJuli Mallett.Ft ssize_t 31e78ea9f7SJuli Mallett.Fn bwrite "struct uufsd *disk" "ufs2_daddr_t blockno" "const void *data" "size_t size" 32e78ea9f7SJuli Mallett.Sh DESCRIPTION 33e78ea9f7SJuli MallettThe 34e78ea9f7SJuli Mallett.Fn bread 35e78ea9f7SJuli Mallettand 36e78ea9f7SJuli Mallett.Fn bwrite 37dfa13bbfSJuli Mallettfunctions provide a block read and write API for 38e78ea9f7SJuli Mallett.Xr libufs 3 39e78ea9f7SJuli Mallettconsumers. 40e78ea9f7SJuli MallettThey operate on a userland UFS disk structure, and perform the read 41e78ea9f7SJuli Mallettand write at a given block address, which uses the current 42e78ea9f7SJuli Mallett.Fa d_bsize 43e78ea9f7SJuli Mallettvalue of the structure. 44e78ea9f7SJuli Mallett.Pp 45e78ea9f7SJuli MallettThe 46e78ea9f7SJuli Mallett.Fn bread 47e78ea9f7SJuli Mallettand 48e78ea9f7SJuli Mallett.Fn bwrite 49dfa13bbfSJuli Mallettfunctions return the amount read or written, or -1 in case of any error, 50e78ea9f7SJuli Mallettincluding short read. 51e78ea9f7SJuli Mallett.Sh ERRORS 52e78ea9f7SJuli MallettThe function 53e78ea9f7SJuli Mallett.Fn bread 54e78ea9f7SJuli Mallettmay fail and set 55e78ea9f7SJuli Mallett.Va errno 56e78ea9f7SJuli Mallettfor any of the errors specified for the library functions 57dfa13bbfSJuli Mallett.Xr ufs_disk_write 3 58e78ea9f7SJuli Mallettor 59e78ea9f7SJuli Mallett.Xr pread 2 . 60e78ea9f7SJuli MallettAdditionally, it may follow the 61e78ea9f7SJuli Mallett.Xr libufs 3 62e78ea9f7SJuli Malletterror methodologies in situations where the amount of data read 63e78ea9f7SJuli Mallettis not equal to the amount requested, or in case of device error. 64e78ea9f7SJuli Mallett.Pp 65e78ea9f7SJuli MallettThe function 66e78ea9f7SJuli Mallett.Fn bwrite 67e78ea9f7SJuli Mallettmay fail and set 68e78ea9f7SJuli Mallett.Va errno 69e78ea9f7SJuli Mallettfor any of the errors specified for the library function 70e78ea9f7SJuli Mallett.Xr pwrite 2 . 71e78ea9f7SJuli MallettAdditionally, it may follow the 72e78ea9f7SJuli Mallett.Xr libufs 3 73e78ea9f7SJuli Malletterror methodologies in situations where the amount of data written 74e78ea9f7SJuli Mallettis not equal to the amount requested, or in case of a device error. 75e78ea9f7SJuli Mallett.Sh SEE ALSO 76e78ea9f7SJuli Mallett.Xr libufs 3 , 77e78ea9f7SJuli Mallett.Xr ufs_disk_write 3 78e78ea9f7SJuli Mallett.Sh HISTORY 79e78ea9f7SJuli MallettThese functions first appeared as part of 80e78ea9f7SJuli Mallett.Xr libufs 3 81e78ea9f7SJuli Mallettin 82e78ea9f7SJuli Mallett.Fx 5.0 . 83e78ea9f7SJuli Mallett.Sh AUTHORS 84e78ea9f7SJuli Mallett.An Juli Mallett Aq jmallett@FreeBSD.org 85