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