]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/man/man2/getfsstat.2
xnu-6153.11.26.tar.gz
[apple/xnu.git] / bsd / man / man2 / getfsstat.2
index 525f6a04fce98997b7beb80cce8f4731c20fb5b2..22c6edef97d2def9ad0e3d753ea37cafc4480c07 100644 (file)
@@ -33,7 +33,7 @@
 .\"
 .\"    @(#)getfsstat.2 8.1 (Berkeley) 6/9/93
 .\"
-.Dd June 9, 1993
+.Dd Oct 28, 2008
 .Dt GETFSSTAT 2
 .Os
 .Sh NAME
 .Fd #include <sys/ucred.h>
 .Fd #include <sys/mount.h>
 .Ft int
-.Fn getfsstat "struct statfs *buf" "long bufsize" "int flags"
+.Fn getfsstat "struct statfs *buf" "int bufsize" "int flags"
+.Sh TRANSITIIONAL SYNOPSIS (NOW DEPRECATED)
+.Ft int
+.br
+.Fn getfsstat64 "struct statfs64 *buf" "int bufsize" "int flags" ;
 .Sh DESCRIPTION
-.Fn Getfsstat
-returns information about all mounted file systems.
-.Fa Buf
-is a pointer to an array of
-.Xr statfs
-structures defined as follows:
-.Bd -literal
-typedef struct { int32_t val[2]; } fsid_t;
-
-#define MFSNAMELEN   15 /* length of fs type name, not inc. nul */
-#define MNAMELEN     90        /* length of buffer for returned name */
-
-struct statfs {
-    short   f_otype;   /* type of file system (reserved: zero) */
-    short   f_oflags;  /* copy of mount flags (reserved: zero) */
-    long    f_bsize;   /* fundamental file system block size */
-    long    f_iosize;  /* 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 (super-user only) */
-    uid_t   f_owner;   /* user that mounted the file system */
-    short   f_reserved1;       /* reserved for future use */
-    short   f_type;    /* type of file system (reserved) */
-    long    f_flags;   /* copy of mount flags (reserved) */
-    long    f_reserved2[2];    /* reserved for future use */
-    char    f_fstypename[MFSNAMELEN]; /* fs type name */
-    char    f_mntonname[MNAMELEN];    /* directory on which mounted */
-    char    f_mntfromname[MNAMELEN];  /* mounted file system */
-    char    f_reserved3;       /* reserved for future use */
-    long    f_reserved4[4];    /* reserved for future use */
-};
-.Ed
+The
+.Fn getfsstat
+function returns information about all mounted file systems.
+The
+.Fa buf
+argument is a pointer to an array of
+.Fa statfs
+structures (see 
+.Xr statfs 2 ) .
+As
+.Xr statfs 2
+indicates, the structure is defined differently depending on
+whether the macro _DARWIN_FEATURE_64_BIT_INODE is defined (see
+.Xr stat 2
+for more information on this macro).
 .Pp
 Fields that are undefined for a particular file system are set to -1.
 The buffer is filled with an array of
@@ -95,21 +79,24 @@ is given as NULL,
 .Fn getfsstat
 returns just the number of mounted file systems.
 .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 file system.
-Thus, some of the information will be out of date, but
+will directly return the information retained in the kernel
+to avoid delays caused by waiting for updated information from
+a file system that is perhaps temporarily unable to respond.
+Some of the information returned may be out of date, however; if
+.Fa flags
+is set to
+.Dv MNT_WAIT
+or
+.Dv MNT_DWAIT
+instead,
 .Fn getfsstat
-will not block waiting for information from a file system that is
-unable to respond.
+will request updated information from each mounted filesystem before
+returning.
 .Sh RETURN VALUES
 Upon successful completion, the number of 
 .Fa statfs
@@ -118,18 +105,29 @@ Otherwise, -1 is returned and the global variable
 .Va errno
 is set to indicate the error.
 .Sh ERRORS
-.Fn Getfsstat
+.Fn getfsstat
 fails if one or more of the following are true:
 .Bl -tag -width Er
 .It Bq Er EFAULT
-.Fa Buf
-points to an invalid address.
+The
+.Fa buf
+argument points to an invalid address.
 .It Bq Er EIO
 An
 .Tn I/O
 error occurred while reading from or writing to the file system.
 .El
+.Sh TRANSITIONAL DESCRIPTION (NOW DEPRECATED)
+The
+.Fn getfsstat64
+routine is equivalent to the default
+.Fn getfstat
+(when
+.Dv _DARWIN_FEATURE_64_BIT_INODE
+is defined), so there is no longer any reason to use it (it will be removed
+in the future).
 .Sh SEE ALSO
+.Xr stat 2 ,
 .Xr statfs 2 ,
 .Xr fstab 5 ,
 .Xr mount 8