xref: /freebsd/lib/libufs/cgread.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:
572f854ceSKirk McKusick.\"		cgget(3)
672f854ceSKirk McKusick.\"		cgput(3)
7e78ea9f7SJuli Mallett.\"		cgread(3)
8e78ea9f7SJuli Mallett.\"		cgread1(3)
972f854ceSKirk McKusick.\"		cgwrite(3)
10cf4652e7SPawel Jakub Dawidek.\"		cgwrite1(3)
11e78ea9f7SJuli Mallett.\"
1227fd7478SJuli Mallett.\" This file is in the public domain.
1327fd7478SJuli Mallett.\"
14*85ee267aSKirk McKusick.Dd September 2, 2020
15e78ea9f7SJuli Mallett.Dt CGREAD 3
16e78ea9f7SJuli Mallett.Os
17e78ea9f7SJuli Mallett.Sh NAME
1872f854ceSKirk McKusick.Nm cgget , cgput , cgread , cgread1 , cgwrite , cgwrite1
19cf4652e7SPawel Jakub Dawidek.Nd read/write cylinder groups of UFS disks
20e78ea9f7SJuli Mallett.Sh LIBRARY
21e78ea9f7SJuli Mallett.Lb libufs
22e78ea9f7SJuli Mallett.Sh SYNOPSIS
23e78ea9f7SJuli Mallett.In sys/param.h
24e78ea9f7SJuli Mallett.In sys/mount.h
25e78ea9f7SJuli Mallett.In ufs/ufs/ufsmount.h
26e78ea9f7SJuli Mallett.In ufs/ufs/dinode.h
27e78ea9f7SJuli Mallett.In ufs/ffs/fs.h
28e78ea9f7SJuli Mallett.In libufs.h
29e78ea9f7SJuli Mallett.Ft int
30*85ee267aSKirk McKusick.Fn cgget "int devfd" "struct fs *fs" "int cg" "struct cg *cgp"
3172f854ceSKirk McKusick.Ft int
32*85ee267aSKirk McKusick.Fn cgput "int devfd" "struct fs *fs" "struct cg *cgp"
3372f854ceSKirk McKusick.Ft int
34e78ea9f7SJuli Mallett.Fn cgread "struct uufsd *disk"
35e78ea9f7SJuli Mallett.Ft int
3672f854ceSKirk McKusick.Fn cgread1 "struct uufsd *disk" "int cg"
37cf4652e7SPawel Jakub Dawidek.Ft int
3872f854ceSKirk McKusick.Fn cgwrite "struct uufsd *disk"
3972f854ceSKirk McKusick.Ft int
4072f854ceSKirk McKusick.Fn cgwrite1 "struct uufsd *disk" "int cg"
41e78ea9f7SJuli Mallett.Sh DESCRIPTION
42e78ea9f7SJuli MallettThe
4372f854ceSKirk McKusick.Fn cgget ,
4472f854ceSKirk McKusick.Fn cgread ,
45e78ea9f7SJuli Mallettand
46e78ea9f7SJuli Mallett.Fn cgread1
47e78ea9f7SJuli Mallettfunctions provide cylinder group reads for
48e78ea9f7SJuli Mallett.Xr libufs 3
49e78ea9f7SJuli Mallettconsumers.
50e78ea9f7SJuli MallettThe
5172f854ceSKirk McKusick.Fn cgput ,
5272f854ceSKirk McKusick.Fn cgwrite ,
5372f854ceSKirk McKusickand
5472f854ceSKirk McKusick.Fn cgwrite1
5572f854ceSKirk McKusickfunctions provide cylinder group writes for
5672f854ceSKirk McKusick.Xr libufs 3
5772f854ceSKirk McKusickconsumers.
5872f854ceSKirk McKusick.Pp
5972f854ceSKirk McKusickThe
6072f854ceSKirk McKusick.Fn cgget
6172f854ceSKirk McKusickfunction reads the cylinder group specified by
6272f854ceSKirk McKusick.Fa cg
6372f854ceSKirk McKusickinto the buffer pointed to by
6472f854ceSKirk McKusick.Fa cgp
65*85ee267aSKirk McKusickfrom the filesystem described by the
66*85ee267aSKirk McKusick.Fa fs
67*85ee267aSKirk McKusicksuperblock using the
68*85ee267aSKirk McKusick.Fa devfd
69*85ee267aSKirk McKusickfile descriptor that references the filesystem disk.
7072f854ceSKirk McKusickThe
7172f854ceSKirk McKusick.Fn cgget
7272f854ceSKirk McKusickfunction is the only cylinder group read function that is safe to use
7372f854ceSKirk McKusickin threaded applications.
7472f854ceSKirk McKusick.Pp
7572f854ceSKirk McKusickThe
7672f854ceSKirk McKusick.Fn cgput
7772f854ceSKirk McKusickfunction writes the cylinder group specified by
7872f854ceSKirk McKusick.Va cgp
79*85ee267aSKirk McKusickto the filesystem described by the
80*85ee267aSKirk McKusick.Fa fs
81*85ee267aSKirk McKusicksuperblock using the
82*85ee267aSKirk McKusick.Fa devfd
83*85ee267aSKirk McKusickfile descriptor that references the filesystem disk.
8472f854ceSKirk McKusickThe
8572f854ceSKirk McKusick.Fn cgput
8672f854ceSKirk McKusickfunction is the only cylinder group write function that is safe to use
8772f854ceSKirk McKusickin threaded applications.
8872f854ceSKirk McKusickNote that the
8972f854ceSKirk McKusick.Fn cgput
9072f854ceSKirk McKusickfunction needs to be called only if the cylinder group has been
9172f854ceSKirk McKusickmodified and the on-disk copy needs to be updated.
9272f854ceSKirk McKusick.Pp
9372f854ceSKirk McKusickThe
94e78ea9f7SJuli Mallett.Fn cgread1
9572f854ceSKirk McKusickfunction reads from the cylinder group specified by
9672f854ceSKirk McKusick.Fa cg
97e78ea9f7SJuli Mallettinto the
98c81fcafdSRuslan Ermilov.Va d_cg
9972f854ceSKirk McKusickcylinder-group structure in a user-land UFS-disk structure.
100e78ea9f7SJuli MallettIt sets the
101c81fcafdSRuslan Ermilov.Va d_lcg
102dfa13bbfSJuli Mallettfield to the cylinder group number
10372f854ceSKirk McKusick.Fa cg .
104e78ea9f7SJuli Mallett.Pp
105e78ea9f7SJuli MallettThe
106e78ea9f7SJuli Mallett.Fn cgread
107e78ea9f7SJuli Mallettfunction operates on sequential cylinder groups.
108e78ea9f7SJuli MallettCalling the
109e78ea9f7SJuli Mallett.Fn cgread
110e78ea9f7SJuli Mallettfunction is equivalent to calling
111c81fcafdSRuslan Ermilov.Fn cgread1
112e78ea9f7SJuli Mallettwith a cylinder group specifier equivalent to the value of the current
113c81fcafdSRuslan Ermilov.Va d_ccg
114e78ea9f7SJuli Mallettfield, and then incrementing the
115c81fcafdSRuslan Ermilov.Va d_ccg
116e78ea9f7SJuli Mallettfield.
117cf4652e7SPawel Jakub Dawidek.Pp
118cf4652e7SPawel Jakub DawidekThe
11972f854ceSKirk McKusick.Fn cgwrite
12072f854ceSKirk McKusickfunction stores on disk the cylinder group held in the
121cf4652e7SPawel Jakub Dawidek.Va d_cg
12272f854ceSKirk McKusickcylinder-group structure in a user-land UFS-disk structure.
12372f854ceSKirk McKusick.Pp
12472f854ceSKirk McKusickThe
12572f854ceSKirk McKusick.Fn cgwrite1
12672f854ceSKirk McKusickfunction provides no additional functionality over the
12772f854ceSKirk McKusick.Fn cgwrite
12872f854ceSKirk McKusickfunction as there is only one place that a given cylinder group
12972f854ceSKirk McKusickcan correctly be written.
13072f854ceSKirk McKusickIf the caller gets the
13172f854ceSKirk McKusick.Fa cg
13272f854ceSKirk McKusickparameter wrong, the function fails with the error
13372f854ceSKirk McKusick.Er EDOOFUS .
13472f854ceSKirk McKusickThis function remains only to provide backward compatibility.
135c81fcafdSRuslan Ermilov.Sh RETURN VALUES
13672f854ceSKirk McKusickThe
137e78ea9f7SJuli Mallett.Fn cgread
13872f854ceSKirk McKusickfunction returns 0 if there are no more cylinder groups to read,
13972f854ceSKirk McKusick1 if there are more cylinder groups, and \-1 on error.
14072f854ceSKirk McKusickThe
14172f854ceSKirk McKusick.Fn cgread1
14272f854ceSKirk McKusickfunction returns 1 on success and \-1 on error.
143687ae71fSKirk McKusickThe other functions return 0 on success and \-1 on error.
14472f854ceSKirk McKusick.Sh ERRORS
14572f854ceSKirk McKusickThe
14672f854ceSKirk McKusick.Fn cgget ,
14772f854ceSKirk McKusick.Fn cgread ,
14872f854ceSKirk McKusickand
14972f854ceSKirk McKusick.Fn cgread1
15072f854ceSKirk McKusickfunctions may fail and set
151e78ea9f7SJuli Mallett.Va errno
152e78ea9f7SJuli Mallettfor any of the errors specified for the library function
153e78ea9f7SJuli Mallett.Xr bread 3 .
154e78ea9f7SJuli Mallett.Pp
15572f854ceSKirk McKusickThe
15672f854ceSKirk McKusick.Fn cgput ,
15772f854ceSKirk McKusick.Fn cgwrite ,
15872f854ceSKirk McKusickand
159cf4652e7SPawel Jakub Dawidek.Fn cgwrite1
16072f854ceSKirk McKusickfunctions may fail and set
161cf4652e7SPawel Jakub Dawidek.Va errno
162cf4652e7SPawel Jakub Dawidekfor any of the errors specified for the library function
163cf4652e7SPawel Jakub Dawidek.Xr bwrite 3 .
16472f854ceSKirk McKusickAdditionally the
16572f854ceSKirk McKusick.Fn cgwrite1
16672f854ceSKirk McKusickwill return the
16772f854ceSKirk McKusick.Er EDOOFUS
16872f854ceSKirk McKusickerror if the cylinder group specified does not match the
16972f854ceSKirk McKusickcylinder group that it is requesting to write.
170e78ea9f7SJuli Mallett.Sh SEE ALSO
171e78ea9f7SJuli Mallett.Xr bread 3 ,
172cf4652e7SPawel Jakub Dawidek.Xr bwrite 3 ,
173e78ea9f7SJuli Mallett.Xr libufs 3
174e78ea9f7SJuli Mallett.Sh HISTORY
175e78ea9f7SJuli MallettThese functions first appeared as part of
176e78ea9f7SJuli Mallett.Xr libufs 3
177e78ea9f7SJuli Mallettin
178e78ea9f7SJuli Mallett.Fx 5.1 .
179e78ea9f7SJuli Mallett.Sh AUTHORS
1802b7af31cSBaptiste Daroussin.An Juli Mallett Aq Mt jmallett@FreeBSD.org
181*85ee267aSKirk McKusick.An Marshall Kirk McKusick Aq Mt mckusick@FreeBSD.org
182