gettimeofday: port recent C++ fix to Emacs
[gnulib.git] / lib / fsusage.h
index c3779c1..7810fc0 100644 (file)
@@ -1,10 +1,12 @@
-/* fsusage.h -- declarations for filesystem space usage info
-   Copyright (C) 1991, 1992 Free Software Foundation, Inc.
+/* fsusage.h -- declarations for file system space usage info
 
-   This program is free software; you can redistribute it and/or modify
+   Copyright (C) 1991-1992, 1997, 2003-2006, 2009-2013 Free Software
+   Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Space usage statistics for a file system.  Blocks are 512-byte. */
+
+#if !defined FSUSAGE_H_
+# define FSUSAGE_H_
+
+# include <stdint.h>
+# include <stdbool.h>
 
-/* Space usage statistics for a filesystem.  Blocks are 512-byte. */
 struct fs_usage
 {
-  long fsu_blocks;             /* Total blocks. */
-  long fsu_bfree;              /* Free blocks available to superuser. */
-  long fsu_bavail;             /* Free blocks available to non-superuser. */
-  long fsu_files;              /* Total file nodes. */
-  long fsu_ffree;              /* Free file nodes. */
+  uintmax_t fsu_blocksize;      /* Size of a block.  */
+  uintmax_t fsu_blocks;         /* Total blocks. */
+  uintmax_t fsu_bfree;          /* Free blocks available to superuser. */
+  uintmax_t fsu_bavail;         /* Free blocks available to non-superuser. */
+  bool fsu_bavail_top_bit_set;  /* 1 if fsu_bavail represents a value < 0.  */
+  uintmax_t fsu_files;          /* Total file nodes. */
+  uintmax_t fsu_ffree;          /* Free file nodes. */
 };
 
-#if __STDC__
-int get_fs_usage (char *path, char *disk, struct fs_usage *fsp);
-#else
-int get_fs_usage ();
+int get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp);
+
 #endif