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