X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/593a1d5fd87cdf5b46dd5fcb84467b432cea0f91..3903760236c30e3b5ace7a4eefac3a269d68957c:/bsd/man/man2/statfs.2 diff --git a/bsd/man/man2/statfs.2 b/bsd/man/man2/statfs.2 index 4b6a3db35..d7233d4e1 100644 --- a/bsd/man/man2/statfs.2 +++ b/bsd/man/man2/statfs.2 @@ -33,12 +33,14 @@ .\" .\" @(#)statfs.2 8.3 (Berkeley) 2/11/94 .\" -.Dd February 11, 1994 +.Dd August 14, 2008 .Dt STATFS 2 .Os .Sh NAME .Nm statfs, -.Nm fstatfs +.Nm statfs64, +.Nm fstatfs, +.Nm fstatfs64 .Nd get file system statistics .Sh SYNOPSIS .Fd #include @@ -47,47 +49,107 @@ .Fn statfs "const char *path" "struct statfs *buf" .Ft int .Fn fstatfs "int fd" "struct statfs *buf" +.Sh TRANSITIONAL SYNOPSIS (NOW DEPRECATED) +.Ft int +.br +.Fn statfs64 "const char *path" "struct statfs64 *buf" ; +.sp +.Ft int +.br +.Fn fstatfs64 "int fd" "struct statfs64 *buf" ; .Sh DESCRIPTION -.Fn Statfs -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 +The +.Fn statfs +routine returns information about a mounted file system. +The +.Fa path +argument is the path name of any file or directory within the mounted file system. +The +.Fa buf +argument is a pointer to a +.Fa statfs +structure. +When the macro +.Dv _DARWIN_FEATURE_64_BIT_INODE +is not defined (see +.Xr stat 2 +for more information on this macro), the .Fa statfs -structure defined as follows: +structure is defined as: .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 { /* when _DARWIN_FEATURE_64_BIT_INODE is NOT defined */ + 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 */ + 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 +.Pp +However, when the macro +.Dv _DARWIN_FEATURE_64_BIT_INODE +is defined, the +.Fa statfs +structure is defined as: +.Bd -literal #define MFSTYPENAMELEN 16 /* length of fs type name including null */ #define MAXPATHLEN 1024 +#define MNAMELEN MAXPATHLEN -struct statfs { - 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 */ +struct statfs { /* when _DARWIN_FEATURE_64_BIT_INODE is defined */ + 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 +Note that the +.Fa f_fstypename , +.Fa f_mntonname , +and +.Fa f_mntfromname +fields are also wider in this variant. +.Pp 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 +The +.Fn fstatfs +routine returns the same information about an open file referenced by descriptor .Fa fd . .Sh FLAGS -.Bl -tag -width MNT_UNKOWNPERMISSIONS +.Bl -tag -width MNT_UNKNOWNPERMISSIONS These are some of the flags that may be present in the f_flags field. .It Dv MNT_RDONLY A read-only filesystem @@ -105,7 +167,7 @@ Union with underlying filesysten File system written to asynchronously .It Dv MNT_EXPORTED File system is exported -.it Dv MNT_LOCAL +.It Dv MNT_LOCAL File system is stored locally .It Dv MNT_QUOTA Quotas are enabled on this file system @@ -125,6 +187,8 @@ File system is journaled File system should defer writes .It Dv MNT_MULTILABEL MAC support for individual labels +.It Dv MNT_CPROTECT +File system supports per-file encrypted data protection .El .Sh CAVEATS In Mac OS X versions before 10.4, f_iosize is 4096. On these older @@ -135,8 +199,9 @@ Otherwise, -1 is returned and the global variable .Va errno is set to indicate the error. .Sh ERRORS -.Fn Statfs -fails if one or more of the following are true: +The +.Fn statfs +routine fails if one or more of the following are true: .Bl -tag -width Er .It Bq Er ENOTDIR A component of the path prefix of @@ -153,7 +218,7 @@ exceeds .Dv {PATH_MAX} characters. .It Bq Er ENOENT -The file referred to by +The file or directory referred to by .Fa path does not exist. .It Bq Er EACCES @@ -173,8 +238,9 @@ An error occurred while reading from or writing to the file system. .El .Pp -.Fn Fstatfs -fails if one or more of the following are true: +The +.Fn fstatfs +routine fails if one or more of the following are true: .Bl -tag -width Er .It Bq Er EBADF .Fa fd @@ -187,7 +253,33 @@ An .Tn I/O error occurred while reading from or writing to the file system. .El +.Sh TRANSITIONAL DESCRIPTION (NOW DEPRECATED) +The +.Fa statfs64 +and +.Fa fstatfs64 +routines are equivalent to their corresponding non-64-suffixed routine, +when 64-bit inodes are in effect. +They were added before there was support for the symbol variants, and so are +now deprecated. +Instead of using these, set the +.Dv _DARWIN_USE_64_BIT_INODE +macro before including header files to force 64-bit inode support. +.Pp +The +.Fa statfs64 +structure used by these deprecated routines is the same as the +.Fa statfs +structure when 64-bit inodes are in effect (see above). +.Sh SEE ALSO +.Xr stat 2 , +.Xr getfsstat 2 .Sh HISTORY The .Fn statfs -function first appeared in 4.4BSD. +function first appeared in 4.4BSD. The +.Fn statfs64 +and +.Fn fstatfs64 +first appeared in Max OS X 10.5 (Leopard) and are now deprecated +in favor of the corresponding symbol variants.