.\" SUCH DAMAGE.
.\"
.\" @(#)getmntinfo.3 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD: src/lib/libc/gen/getmntinfo.3,v 1.11 2001/10/01 16:08:51 ru Exp $
+.\" $FreeBSD: src/lib/libc/gen/getmntinfo.3,v 1.12 2002/12/19 09:40:21 ru Exp $
.\"
-.Dd June 9, 1993
+.Dd May 15, 2008
.Dt GETMNTINFO 3
.Os
.Sh NAME
.Nm getmntinfo
.Nd get information about mounted file systems
-.Sh LIBRARY
-.Lb libc
.Sh SYNOPSIS
.In sys/param.h
.In sys/ucred.h
.In sys/mount.h
.Ft int
.Fn getmntinfo "struct statfs **mntbufp" "int flags"
+#ifdef UNIFDEF_LEGACY_64_APIS
+.Sh TRANSITIIONAL SYNOPSIS (NOW DEPRECATED)
+.Ft int
+.br
+.Fn getmntinfo64 "struct statfs64 **mntbufp" "int flags" ;
+#endif /* UNIFDEF_LEGACY_64_APIS */
.Sh DESCRIPTION
The
.Fn getmntinfo
function
returns an array of
-.Fn statfs
+.Ft statfs
structures describing each currently mounted file system (see
.Xr statfs 2 ) .
.Pp
function
passes its
.Fa flags
-parameter transparently to
+argument transparently to
.Xr getfsstat 2 .
+#ifdef UNIFDEF_LEGACY_64_APIS
+.Pp
+Like
+.Xr getfsstat 2 ,
+when the macro
+.Dv _DARWIN_FEATURE_64_BIT_INODE
+is defined, the
+.Ft ino_t
+type will be 64-bits (force 64-bit inode mode by defining the
+.Dv _DARWIN_USE_64_BIT_INODE
+macro before including header files).
+This will cause the symbol variant of
+.Fn getmntinfo ,
+with the
+.Fa $INODE64
+suffixes, to be automatically linked in.
+In addition, the
+.Ft statfs
+structure will be the 64-bit inode version.
+If
+.Dv _DARWIN_USE_64_BIT_INODE
+is not defined, both
+.Fn getmntinfo
+and the
+.Ft statfs
+structure will refer to the 32-bit inode versions.
+#endif /* UNIFDEF_LEGACY_64_APIS */
.Sh RETURN VALUES
On successful completion,
.Fn getmntinfo
.Xr getfsstat 2
or
.Xr malloc 3 .
+#ifdef UNIFDEF_LEGACY_64_APIS
+.Sh TRANSITIONAL DESCRIPTION (NOW DEPRECATED)
+The
+.Fn getmntinfo64
+routine is equivalent to its corresponding non-64-suffixed routine,
+when 64-bit inodes are in effect.
+It was added before there was support for the symbol variants, and so is
+now deprecated.
+Instead of using it, set the
+.Dv _DARWIN_USE_64_BIT_INODE
+macro before including header files to force 64-bit inode support.
+.Pp
+The
+.Ft statfs64
+structure used by this deprecated routine is the same as the
+.Ft statfs
+structure when 64-bit inodes are in effect.
+#endif /* UNIFDEF_LEGACY_64_APIS */
.Sh SEE ALSO
.Xr getfsstat 2 ,
.Xr mount 2 ,
.Sh BUGS
The
.Fn getmntinfo
+#ifdef UNIFDEF_LEGACY_64_APIS
+and
+.Fn getmntinfo64
+functions write the array of structures to an internal static object
+#else /* !UNIFDEF_LEGACY_64_APIS */
function writes the array of structures to an internal static object
+#endif /* UNIFDEF_LEGACY_64_APIS */
and returns
a pointer to that object.
Subsequent calls to
.Fn getmntinfo
+#ifdef UNIFDEF_LEGACY_64_APIS
+and
+.Fn getmntinfo64
+#endif /* UNIFDEF_LEGACY_64_APIS */
will modify the same object.
.Pp
The memory allocated by
.Fn getmntinfo
+#ifdef UNIFDEF_LEGACY_64_APIS
+and
+.Fn getmntinfo64
+#endif /* UNIFDEF_LEGACY_64_APIS */
cannot be
.Xr free 3 Ns 'd
by the application.