]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/man/man2/statfs.2
xnu-1228.15.4.tar.gz
[apple/xnu.git] / bsd / man / man2 / statfs.2
index 1a534dd9b83745f6c198067a99d65c96a2442843..4b6a3db354256877612957d9779c54fea7fd5652 100644 (file)
@@ -37,7 +37,8 @@
 .Dt STATFS 2
 .Os
 .Sh NAME
 .Dt STATFS 2
 .Os
 .Sh NAME
-.Nm statfs
+.Nm statfs,
+.Nm fstatfs
 .Nd get file system statistics
 .Sh SYNOPSIS
 .Fd #include <sys/param.h>
 .Nd get file system statistics
 .Sh SYNOPSIS
 .Fd #include <sys/param.h>
@@ -52,34 +53,32 @@ returns information about a mounted file system.
 .Fa Path
 is the path name of any file within the mounted file system.
 .Fa Buf
 .Fa Path
 is the path name of any file within the mounted file system.
 .Fa Buf
-is a pointer to a statfs structure defined as follows:
+is a pointer to a 
+.Fa statfs
+structure defined as follows:
 .Bd -literal
 typedef struct { int32_t val[2]; } fsid_t;
 
 .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 */
+#define MFSTYPENAMELEN  16 /* length of fs type name including null */
+#define MAXPATHLEN      1024   
 
 struct statfs {
 
 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 */
+    uint32_t        f_bsize;        /* fundamental file system block size */ 
+    int32_t         f_iosize;       /* optimal transfer block size */ 
+    uint64_t        f_blocks;       /* total data blocks in file system */ 
+    uint64_t        f_bfree;        /* free blocks in fs */ 
+    uint64_t        f_bavail;       /* free blocks avail to non-superuser */ 
+    uint64_t        f_files;        /* total file nodes in file system */ 
+    uint64_t        f_ffree;        /* free file nodes in fs */ 
+    fsid_t          f_fsid;         /* file system id */ 
+    uid_t           f_owner;        /* user that mounted the filesystem */ 
+    uint32_t        f_type;         /* type of filesystem */ 
+    uint32_t        f_flags;        /* copy of mount exported flags */ 
+    uint32_t        f_fssubtype;    /* fs sub-type (flavor) */ 
+    char            f_fstypename[MFSTYPENAMELEN];   /* fs type name */ 
+    char            f_mntonname[MAXPATHLEN];        /* directory on which mounted */ 
+    char            f_mntfromname[MAXPATHLEN];      /* mounted filesystem */ 
+    uint32_t        f_reserved[8];  /* For future use */ 
 };
 .Ed
 .Pp
 };
 .Ed
 .Pp
@@ -87,6 +86,49 @@ Fields that are undefined for a particular file system are set to -1.
 .Fn Fstatfs
 returns the same information about an open file referenced by descriptor
 .Fa fd .
 .Fn Fstatfs
 returns the same information about an open file referenced by descriptor
 .Fa fd .
+.Sh FLAGS
+.Bl -tag -width MNT_UNKOWNPERMISSIONS
+These are some of the flags that may be present in the f_flags field. 
+.It Dv MNT_RDONLY
+A read-only filesystem
+.It Dv MNT_SYNCHRONOUS
+File system is written to synchronously
+.It Dv MNT_NOEXEC
+Can't exec from filesystem
+.It Dv MNT_NOSUID
+Setuid bits are not honored on this filesystem
+.It Dv MNT_NODEV
+Don't interpret special files
+.It Dv MNT_UNION
+Union with underlying filesysten
+.It Dv MNT_ASYNC
+File system written to asynchronously
+.It Dv MNT_EXPORTED
+File system is exported
+.it Dv MNT_LOCAL
+File system is stored locally
+.It Dv MNT_QUOTA
+Quotas are enabled on this file system
+.It Dv MNT_ROOTFS
+This file system is the root of the file system
+.It Dv MNT_DOVOLFS
+File system supports volfs
+.It Dv MNT_DONTBROWSE
+File system is not appropriate path to user data
+.It Dv MNT_UNKNOWNPERMISSIONS
+VFS will ignore ownership information on filesystem objects
+.It Dv MNT_AUTOMOUNTED
+File system was mounted by automounter
+.It Dv MNT_JOURNALED
+File system is journaled
+.It Dv MNT_DEFWRITE
+File system should defer writes
+.It Dv MNT_MULTILABEL
+MAC support for individual labels
+.El
+.Sh CAVEATS
+In Mac OS X versions before 10.4, f_iosize is 4096. On these older
+systems, use MAXBSIZE instead.
 .Sh RETURN VALUES
 Upon successful completion, a value of 0 is returned.
 Otherwise, -1 is returned and the global variable
 .Sh RETURN VALUES
 Upon successful completion, a value of 0 is returned.
 Otherwise, -1 is returned and the global variable