X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/55e303ae13a4cf49d70f2294092726f2fffb9ef2..e2fac8b15b12a7979f72090454d850e612fc5b13:/bsd/man/man2/statfs.2?ds=inline diff --git a/bsd/man/man2/statfs.2 b/bsd/man/man2/statfs.2 index 1a534dd9b..4b6a3db35 100644 --- a/bsd/man/man2/statfs.2 +++ b/bsd/man/man2/statfs.2 @@ -37,7 +37,8 @@ .Dt STATFS 2 .Os .Sh NAME -.Nm statfs +.Nm statfs, +.Nm fstatfs .Nd get file system statistics .Sh SYNOPSIS .Fd #include @@ -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 -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; -#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 { - 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 @@ -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 . +.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