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