xref: /freebsd/lib/libufs/bread.3 (revision 2b7af31cf5e70677f52214702a95d4225564c52d)
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