]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/man/man2/getfsstat.2
xnu-1228.7.58.tar.gz
[apple/xnu.git] / bsd / man / man2 / getfsstat.2
index c924dd62c39e22a4fcae2f0b2a45967d84b030ca..cdc2e2586994b682edba162a227dcb2fef3dd3b8 100644 (file)
@@ -44,7 +44,7 @@
 .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 DESCRIPTION
 .Fn Getfsstat
 returns information about all mounted file systems.
@@ -55,12 +55,12 @@ structures defined as follows:
 .Bd -literal
 typedef struct { int32_t val[2]; } fsid_t;
 
-#define MFSNAMELEN   16 /* length of fs type name, including nul */
-#define MNAMELEN     32        /* length of buffer for returned name */
+#define MFSNAMELEN   15 /* length of fs type name, not inc. nul */
+#define MNAMELEN     90        /* length of buffer for returned name */
 
 struct statfs {
-    short   f_type;    /* type of file system (unused; zero) */
-    short   f_flags;   /* copy of mount flags */
+    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 */
@@ -68,12 +68,17 @@ struct statfs {
     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 */
+    fsid_t  f_fsid;    /* file system id (super-user only) */
     uid_t   f_owner;   /* user that mounted the file system */
-    long    f_spare[4];        /* spare for later */
+    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
 .Pp
@@ -90,21 +95,22 @@ 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
+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