flag fields are u_int's
[unix-history] / usr / src / lib / libc / sys / getfsstat.2
index 5771ffc..459e756 100644 (file)
@@ -1,64 +1,47 @@
-.\" Copyright (c) 1989 The Regents of the University of California.
+.\" Copyright (c) 1989, 1991 The Regents of the University of California.
 .\" All rights reserved.
 .\"
 .\" All rights reserved.
 .\"
-.\" Redistribution and use in source and binary forms are permitted
-.\" provided that the above copyright notice and this paragraph are
-.\" duplicated in all such forms and that any documentation,
-.\" advertising materials, and other materials related to such
-.\" distribution and use acknowledge that the software was developed
-.\" by the University of California, Berkeley.  The name of the
-.\" University may not be used to endorse or promote products derived
-.\" from this software without specific prior written permission.
-.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+.\" %sccs.include.redist.man%
 .\"
 .\"
-.\"    @(#)getfsstat.2 6.1 (Berkeley) %G%
+.\"     @(#)getfsstat.2        6.5 (Berkeley) %G%
 .\"
 .\"
-.TH GETFSSTAT 2 ""
-.UC 7
-.SH NAME
-getfsstat \- get list of all mounted filesystems
-.SH SYNOPSIS
-.nf
-.ft B
-#include <sys/types.h>
-#include <sys/mount.h>
-.LP
-.ft B
-getfsstat(buf, bufsize)
-struct statfs *buf[];
-int bufsize;
-.fi
-.ft R
-.SH DESCRIPTION
-.I Getfsstat
+.Dd 
+.Dt GETFSSTAT 2
+.Os BSD 4.4
+.Sh NAME
+.Nm getfsstat
+.Nd get list of all mounted filesystems
+.Sh SYNOPSIS
+.Fd #include <sys/types.h>
+.Fd #include <sys/mount.h>
+.Ft int
+.Fn getfsstat "struct statfs *buf" "long bufsize" "int flags"
+.Sh DESCRIPTION
+.Fn Getfsstat
 returns information about all mounted filesystems.
 returns information about all mounted filesystems.
-.I Buf
-is a pointer to an array of
-.I statfs
+.Fa Buf
+is a pointer to
+.Xr statfs
 structures defined as follows:
 structures defined as follows:
-.IP
-.ta \w'#define\0\0'u +\w'fsid_t\0\0'u +\w'f_mntfromname[MNAMELEN]\0\0'u
-.nf
+.Bd -literal
 typedef quad fsid_t;
 typedef quad fsid_t;
-.sp 1
+
 #define MNAMELEN 32    /* length of buffer for returned name */
 #define MNAMELEN 32    /* length of buffer for returned name */
-.sp 1
+
 struct statfs {
 struct statfs {
-       short   f_type; /* type of filesystem (see below) */
-       short   f_flags;        /* copy of mount flags */
-       long    f_fsize;        /* fundamental file system block size */
-       long    f_bsize;        /* optimal transfer block size */
-       long    f_blocks;       /* total data blocks in file system */
-       long    f_bfree;        /* free blocks in fs */
-       long    f_bavail;       /* free blocks avail to non-superuser */
-       long    f_files;        /* total file nodes in file system */
-       long    f_ffree;        /* free file nodes in fs */
-       fsid_t  f_fsid; /* file system id */
-       long    f_spare[6];     /* spare for later */
-       char    f_mntonname[MNAMELEN];  /* directory on which mounted */
-       char    f_mntfromname[MNAMELEN];        /* mounted filesystem */
+    short   f_type;    /* type of filesystem (see below) */
+    short   f_flags;   /* copy of mount flags */
+    long    f_fsize;   /* fundamental filesystem block size */
+    long    f_bsize;   /* optimal transfer block size */
+    long    f_blocks;  /* total data blocks in filesystem */
+    long    f_bfree;   /* free blocks in fs */
+    long    f_bavail;  /* free blocks avail to non-superuser */
+    long    f_files;   /* total file nodes in filesystem */
+    long    f_ffree;   /* free file nodes in fs */
+    fsid_t  f_fsid;    /* filesystem id */
+    long    f_spare[6];        /* spare for later */
+    char    f_mntonname[MNAMELEN]; /* directory on which mounted */
+    char    f_mntfromname[MNAMELEN]; /* mounted filesystem */
 };
 /*
  * File system types.
 };
 /*
  * File system types.
@@ -66,36 +49,58 @@ struct statfs {
 #define        MOUNT_UFS       1
 #define        MOUNT_NFS       2
 #define        MOUNT_PC        3
 #define        MOUNT_UFS       1
 #define        MOUNT_NFS       2
 #define        MOUNT_PC        3
-.fi
-.PP
-Fields that are undefined for a particular file system are set to \-1.
+.Ed
+.Pp
+Fields that are undefined for a particular filesystem are set to -1.
 The buffer is filled with an array of
 The buffer is filled with an array of
-.I fsstat
+.Fa fsstat
 structures, one for each mounted filesystem
 up to the size specified by
 structures, one for each mounted filesystem
 up to the size specified by
-.I bufsize .
-.PP
+.Fa bufsize .
+.Pp
 If
 If
-.I buf
-is given as zero,
-.I getfsstat
+.Fa buf
+is given as NULL,
+.Fn getfsstat
 returns just the number of mounted filesystems.
 returns just the number of mounted filesystems.
-.SH RETURN VALUE
+.Pp
+Normally
+.Fa flags
+should be specified as
+.Dv MNT_WAIT .
+If
+.Fa flags
+is set to
+.Dv MNT_NOWAIT ,
+.Fn getfsstat
+will return the information it has available without requesting
+an update from each filesystem.
+Thus, some of the information will be out of date, but
+.Fn getfsstat
+will not block waiting for information from a filesystem that is
+unable to respond.
+.Sh RETURN VALUES
 Upon successful completion, the number of 
 Upon successful completion, the number of 
-.I fsstat
+.Fa fsstat
 structures is returned.
 structures is returned.
-Otherwise, \-1 is returned and the global variable
-.I errno
+Otherwise, -1 is returned and the global variable
+.Va errno
 is set to indicate the error.
 is set to indicate the error.
-.SH ERRORS
-.I Getfsstat
+.Sh ERRORS
+.Fn Getfsstat
 fails if one or more of the following are true:
 fails if one or more of the following are true:
-.TP 15
-EFAULT
-.I Buf
+.Bl -tag -width Er
+.It EFAULT
+.Fa Buf
 points to an invalid address.
 points to an invalid address.
-.TP 15
-EIO
-An I/O error occurred while reading from or writing to the file system.
-.SH "SEE ALSO"
-statfs(2)
+.It EIO
+An I/O error occurred while reading from or writing to the filesystem.
+.El
+.Sh SEE ALSO
+.Xr statfs 2 ,
+.Xr fstab 5 ,
+.Xr mount 8
+.Sh HISTORY
+The
+.Nm
+function call is currently under development.