Home | History | Annotate | Download | only in sys
      1 /* Definitions for getting information about a filesystem.
      2    Copyright (C) 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
      3    This file is part of the GNU C Library.
      4 
      5    The GNU C Library is free software; you can redistribute it and/or
      6    modify it under the terms of the GNU Lesser General Public
      7    License as published by the Free Software Foundation; either
      8    version 2.1 of the License, or (at your option) any later version.
      9 
     10    The GNU C Library is distributed in the hope that it will be useful,
     11    but WITHOUT ANY WARRANTY; without even the implied warranty of
     12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13    Lesser General Public License for more details.
     14 
     15    You should have received a copy of the GNU Lesser General Public
     16    License along with the GNU C Library; if not, write to the Free
     17    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
     18    02111-1307 USA.  */
     19 
     20 #ifndef	_SYS_STATVFS_H
     21 #define	_SYS_STATVFS_H	1
     22 
     23 #include <features.h>
     24 
     25 /* Get the system-specific definition of `struct statfs'.  */
     26 #include <bits/statvfs.h>
     27 
     28 #ifndef __USE_FILE_OFFSET64
     29 # ifndef __fsblkcnt_t_defined
     30 typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks.  */
     31 #  define __fsblkcnt_t_defined
     32 # endif
     33 # ifndef __fsfilcnt_t_defined
     34 typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes.  */
     35 #  define __fsfilcnt_t_defined
     36 # endif
     37 #else
     38 # ifndef __fsblkcnt_t_defined
     39 typedef __fsblkcnt64_t fsblkcnt_t; /* Type to count file system blocks.  */
     40 #  define __fsblkcnt_t_defined
     41 # endif
     42 # ifndef __fsfilcnt_t_defined
     43 typedef __fsfilcnt64_t fsfilcnt_t; /* Type to count file system inodes.  */
     44 #  define __fsfilcnt_t_defined
     45 # endif
     46 #endif
     47 
     48 __BEGIN_DECLS
     49 
     50 /* Return information about the filesystem on which FILE resides.  */
     51 #ifndef __USE_FILE_OFFSET64
     52 extern int statvfs (__const char *__restrict __file,
     53 		    struct statvfs *__restrict __buf)
     54      __THROW __nonnull ((1, 2));
     55 #else
     56 # ifdef __REDIRECT_NTH
     57 extern int __REDIRECT_NTH (statvfs,
     58 			   (__const char *__restrict __file,
     59 			    struct statvfs *__restrict __buf), statvfs64)
     60      __nonnull ((1, 2));
     61 # else
     62 #  define statvfs statvfs64
     63 # endif
     64 #endif
     65 #ifdef __USE_LARGEFILE64
     66 extern int statvfs64 (__const char *__restrict __file,
     67 		      struct statvfs64 *__restrict __buf)
     68      __THROW __nonnull ((1, 2));
     69 #endif
     70 
     71 /* Return information about the filesystem containing the file FILDES
     72    refers to.  */
     73 #ifndef __USE_FILE_OFFSET64
     74 extern int fstatvfs (int __fildes, struct statvfs *__buf)
     75      __THROW __nonnull ((2));
     76 #else
     77 # ifdef __REDIRECT_NTH
     78 extern int __REDIRECT_NTH (fstatvfs, (int __fildes, struct statvfs *__buf),
     79 			   fstatvfs64) __nonnull ((2));
     80 # else
     81 #  define fstatvfs fstatvfs64
     82 # endif
     83 #endif
     84 #ifdef __USE_LARGEFILE64
     85 extern int fstatvfs64 (int __fildes, struct statvfs64 *__buf)
     86      __THROW __nonnull ((2));
     87 #endif
     88 
     89 __END_DECLS
     90 
     91 #endif	/* sys/statvfs.h */
     92