Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CGREAD(3)		 BSD Library Functions Manual		     CGREAD(3)

NAME
     cgget, cgput, cgread, cgread1, cgwrite, cgwrite1 -- read/write cylinder
     groups of UFS disks

LIBRARY
     UFS File System Access Library (libufs, -lufs)

SYNOPSIS
     #include <sys/param.h>
     #include <sys/mount.h>
     #include <ufs/ufs/ufsmount.h>
     #include <ufs/ufs/dinode.h>
     #include <ufs/ffs/fs.h>
     #include <libufs.h>

     int
     cgget(struct uufsd	*disk, int cg, struct cg *cgp);

     int
     cgput(struct uufsd	*disk, struct cg *cgp);

     int
     cgread(struct uufsd *disk);

     int
     cgread1(struct uufsd *disk, int cg);

     int
     cgwrite(struct uufsd *disk);

     int
     cgwrite1(struct uufsd *disk, int cg);

DESCRIPTION
     The cgget(), cgread(), and	cgread1() functions provide cylinder group
     reads for libufs(3) consumers.  The cgput(), cgwrite(), and cgwrite1()
     functions provide cylinder	group writes for libufs(3) consumers.

     The cgget() function reads	the cylinder group specified by	cg into	the
     buffer pointed to by cgp from the disk referenced by the user-land	UFS-
     disk structure.  The cgget() function is the only cylinder	group read
     function that is safe to use in threaded applications.

     The cgput() function writes the cylinder group specified by cgp to	the
     disk referenced by	the user-land UFS-disk structure.  The cgput() func-
     tion is the only cylinder group write function that is safe to use	in
     threaded applications.  Note that the cgput() function needs to be	called
     only if the cylinder group	has been modified and the on-disk copy needs
     to	be updated.

     The cgread1() function reads from the cylinder group specified by cg into
     the d_cg cylinder-group structure in a user-land UFS-disk structure.  It
     sets the d_lcg field to the cylinder group	number cg.

     The cgread() function operates on sequential cylinder groups.  Calling
     the cgread() function is equivalent to calling cgread1() with a cylinder
     group specifier equivalent	to the value of	the current d_ccg field, and
     then incrementing the d_ccg field.

     The cgwrite() function stores on disk the cylinder	group held in the d_cg
     cylinder-group structure in a user-land UFS-disk structure.

     The cgwrite1() function provides no additional functionality over the
     cgwrite() function	as there is only one place that	a given	cylinder group
     can correctly be written.	If the caller gets the cg parameter wrong, the
     function fails with the error EDOOFUS.  This function remains only	to
     provide backward compatibility.

RETURN VALUES
     The cgread() function returns 0 if	there are no more cylinder groups to
     read, 1 if	there are more cylinder	groups,	and -1 on error.  The
     cgread1() function	returns	1 on success and -1 on error.  The other func-
     tions return 0 on success and -1 on error.

ERRORS
     The cgget(), cgread(), and	cgread1() functions may	fail and set errno for
     any of the	errors specified for the library function bread(3).

     The cgput(), cgwrite(), and cgwrite1() functions may fail and set errno
     for any of	the errors specified for the library function bwrite(3).  Ad-
     ditionally	the cgwrite1() will return the EDOOFUS error if	the cylinder
     group specified does not match the	cylinder group that it is requesting
     to	write.

SEE ALSO
     bread(3), bwrite(3), libufs(3)

HISTORY
     These functions first appeared as part of libufs(3) in FreeBSD 5.1.

AUTHORS
     Juli Mallett <jmallett@FreeBSD.org>

BSD			       January 19, 2018				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=cgget&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help