1 /* Copyright (C) 1997-2021 Free Software Foundation, Inc. 2 This file is part of the GNU C Library. 3 4 The GNU C Library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) any later version. 8 9 The GNU C Library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Lesser General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with the GNU C Library; if not, see 16 <https://www.gnu.org/licenses/>. */ 17 18 #ifndef _SYS_STATFS_H 19 # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead." 20 #endif 21 22 #include <bits/types.h> /* for __fsid_t and __fsblkcnt_t. */ 23 24 struct statfs 25 { 26 unsigned int f_type; 27 unsigned int f_bsize; 28 #ifndef __USE_FILE_OFFSET64 29 __fsblkcnt_t f_blocks; 30 __fsblkcnt_t f_bfree; 31 __fsblkcnt_t f_bavail; 32 __fsfilcnt_t f_files; 33 __fsfilcnt_t f_ffree; 34 #else 35 __fsblkcnt64_t f_blocks; 36 __fsblkcnt64_t f_bfree; 37 __fsblkcnt64_t f_bavail; 38 __fsfilcnt64_t f_files; 39 __fsfilcnt64_t f_ffree; 40 #endif 41 __fsid_t f_fsid; 42 unsigned int f_namelen; 43 unsigned int f_frsize; 44 unsigned int f_flags; 45 unsigned int f_spare[4]; 46 }; 47 48 #ifdef __USE_LARGEFILE64 49 struct statfs64 50 { 51 unsigned int f_type; 52 unsigned int f_bsize; 53 __fsblkcnt64_t f_blocks; 54 __fsblkcnt64_t f_bfree; 55 __fsblkcnt64_t f_bavail; 56 __fsfilcnt64_t f_files; 57 __fsfilcnt64_t f_ffree; 58 __fsid_t f_fsid; 59 unsigned int f_namelen; 60 unsigned int f_frsize; 61 unsigned int f_flags; 62 unsigned int f_spare[4]; 63 }; 64 #endif 65 66 /* Tell code we have this member. */ 67 #define _STATFS_F_NAMELEN 68 #define _STATFS_F_FRSIZE 69 #define _STATFS_F_FLAGS