merge with 3.8
[gnulib.git] / lib / fsusage.c
index b434913..c9ed26c 100644 (file)
 
 int statfs ();
 
+#if defined (STATFS_OSF1)      /* DEC Alpha running OSF/1 */
+#  include <sys/mount.h>
+#endif
+
 #if defined(STAT_STATFS2_BSIZE) && !defined(_IBMR2) /* 4.3BSD, SunOS 4, HP-UX, AIX PS/2.  */
 #include <sys/vfs.h>
 #endif
@@ -80,6 +84,14 @@ get_fs_usage (path, disk, fsp)
      char *path, *disk;
      struct fs_usage *fsp;
 {
+#if defined (STATFS_OSF1)
+  struct statfs fsd;
+
+  if (statfs (path, &fsd, sizeof (struct statfs)) != 0)
+    return (-1);
+#define convert_blocks(b) adjust_blocks ((b),fsd.f_fsize, 512)
+#endif /* STATFS_OSF1 */
+
 #ifdef STAT_STATFS2_FS_DATA    /* Ultrix.  */
   struct fs_data fsd;
 
@@ -144,9 +156,11 @@ get_fs_usage (path, disk, fsp)
      no matter what value f_bsize has.  */
 #define convert_blocks(b) (b)
 #ifndef _SEQUENT_              /* _SEQUENT_ is DYNIX/ptx.  */
+#ifndef DOLPHIN                        /* DOLPHIN 3.8.alfa/7.18 has f_bavail */
 #define f_bavail f_bfree
 #endif
 #endif
+#endif
 
 #ifdef STAT_STATVFS            /* SVR4.  */
   struct statvfs fsd;