getmntinfo.3.patch   [plain text]


--- getmntinfo.3.orig	2008-05-13 13:37:51.000000000 -0700
+++ getmntinfo.3	2008-05-15 19:58:50.000000000 -0700
@@ -32,26 +32,30 @@
 .\"     @(#)getmntinfo.3	8.1 (Berkeley) 6/9/93
 .\" $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
@@ -62,6 +66,33 @@
 .Fa flags
 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
@@ -86,6 +117,24 @@
 .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 ,
@@ -99,15 +148,29 @@
 .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.