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.\" 124b6c8c64SRuslan Ermilov.Dd June 4, 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 file system 18e78ea9f7SJuli Mallett.Sh LIBRARY 19e78ea9f7SJuli Mallett.Lb libufs 20e78ea9f7SJuli Mallett.Sh SYNOPSIS 21e78ea9f7SJuli Mallett.In sys/param.h 22e78ea9f7SJuli Mallett.In sys/mount.h 23e78ea9f7SJuli Mallett.In ufs/ufs/ufsmount.h 24e78ea9f7SJuli Mallett.In ufs/ufs/dinode.h 25e78ea9f7SJuli Mallett.In ufs/ffs/fs.h 26e78ea9f7SJuli Mallett.In libufs.h 27e78ea9f7SJuli Mallett.Ft ssize_t 28e78ea9f7SJuli Mallett.Fn bread "struct uufsd *disk" "ufs2_daddr_t blockno" "void *data" "size_t size" 29e78ea9f7SJuli Mallett.Ft ssize_t 30c81fcafdSRuslan Ermilov.Fo bwrite 31c81fcafdSRuslan Ermilov.Fa "struct uufsd *disk" "ufs2_daddr_t blockno" 32c81fcafdSRuslan Ermilov.Fa "const void *data" "size_t size" 33c81fcafdSRuslan Ermilov.Fc 3420a0f65bSPoul-Henning Kamp.Ft int 3520a0f65bSPoul-Henning Kamp.Fo berase 3620a0f65bSPoul-Henning Kamp.Fa "struct uufsd *disk" "ufs2_daddr_t blockno" "ufs2_daddr_t size" 3720a0f65bSPoul-Henning Kamp.Fc 38e78ea9f7SJuli Mallett.Sh DESCRIPTION 39e78ea9f7SJuli MallettThe 4020a0f65bSPoul-Henning Kamp.Fn bread , 41e78ea9f7SJuli Mallett.Fn bwrite 4220a0f65bSPoul-Henning Kampand 4320a0f65bSPoul-Henning Kamp.Fn berase 4420a0f65bSPoul-Henning Kampfunctions provide a block read, write and erase API for 45e78ea9f7SJuli Mallett.Xr libufs 3 46e78ea9f7SJuli Mallettconsumers. 47e78ea9f7SJuli MallettThey operate on a userland UFS disk structure, and perform the read 48e78ea9f7SJuli Mallettand write at a given block address, which uses the current 49c81fcafdSRuslan Ermilov.Va d_bsize 50e78ea9f7SJuli Mallettvalue of the structure. 51c81fcafdSRuslan Ermilov.Sh RETURN VALUES 52e78ea9f7SJuli MallettThe 53e78ea9f7SJuli Mallett.Fn bread 54e78ea9f7SJuli Mallettand 55e78ea9f7SJuli Mallett.Fn bwrite 56c81fcafdSRuslan Ermilovfunctions return the amount read or written, or \-1 in case of any error, 57e78ea9f7SJuli Mallettincluding short read. 5820a0f65bSPoul-Henning Kamp.Pp 5920a0f65bSPoul-Henning KampThe 6020a0f65bSPoul-Henning Kamp.Fn berase 6120a0f65bSPoul-Henning Kampfunction returns non-zero on error. 62e78ea9f7SJuli Mallett.Sh ERRORS 63e78ea9f7SJuli MallettThe function 64e78ea9f7SJuli Mallett.Fn bread 65e78ea9f7SJuli Mallettmay fail and set 66e78ea9f7SJuli Mallett.Va errno 67e78ea9f7SJuli Mallettfor any of the errors specified for the library functions 68dfa13bbfSJuli Mallett.Xr ufs_disk_write 3 69e78ea9f7SJuli Mallettor 70e78ea9f7SJuli Mallett.Xr pread 2 . 71e78ea9f7SJuli Mallett.Pp 72e78ea9f7SJuli MallettThe function 73e78ea9f7SJuli Mallett.Fn bwrite 74e78ea9f7SJuli Mallettmay fail and set 75e78ea9f7SJuli Mallett.Va errno 76e78ea9f7SJuli Mallettfor any of the errors specified for the library function 77e78ea9f7SJuli Mallett.Xr pwrite 2 . 7820a0f65bSPoul-Henning Kamp.Pp 7920a0f65bSPoul-Henning KampThe function 8020a0f65bSPoul-Henning Kamp.Fn berase 8120a0f65bSPoul-Henning Kampmay fail and set 8220a0f65bSPoul-Henning Kamp.Va errno 8320a0f65bSPoul-Henning Kampfor any of the errors specified for the library function 8420a0f65bSPoul-Henning Kamp.Xr ioctl 2 . 8520a0f65bSPoul-Henning Kamp.Pp 8620a0f65bSPoul-Henning KampAdditionally all three functions may follow the 87e78ea9f7SJuli Mallett.Xr libufs 3 88e78ea9f7SJuli Malletterror methodologies in situations where the amount of data written 89e78ea9f7SJuli Mallettis not equal to the amount requested, or in case of a device error. 90e78ea9f7SJuli Mallett.Sh SEE ALSO 91e78ea9f7SJuli Mallett.Xr libufs 3 , 92e78ea9f7SJuli Mallett.Xr ufs_disk_write 3 93e78ea9f7SJuli Mallett.Sh HISTORY 94e78ea9f7SJuli MallettThese functions first appeared as part of 95e78ea9f7SJuli Mallett.Xr libufs 3 96e78ea9f7SJuli Mallettin 97e78ea9f7SJuli Mallett.Fx 5.0 . 98e78ea9f7SJuli Mallett.Sh AUTHORS 99*2b7af31cSBaptiste Daroussin.An Juli Mallett Aq Mt jmallett@FreeBSD.org 100