statvfs.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.    The GNU C Library is free software; you can redistribute it and/or
  4.    modify it under the terms of the GNU Lesser General Public
  5.    License as published by the Free Software Foundation; either
  6.    version 2.1 of the License, or (at your option) any later version.
  7.    The GNU C Library is distributed in the hope that it will be useful,
  8.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  10.    Lesser General Public License for more details.
  11.    You should have received a copy of the GNU Lesser General Public
  12.    License along with the GNU C Library; if not, write to the Free
  13.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  14.    02111-1307 USA.  */
  15. #ifndef _SYS_STATVFS_H
  16. # error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
  17. #endif
  18. #include <bits/types.h>  /* For __fsblkcnt_t and __fsfilcnt_t.  */
  19. #if __WORDSIZE == 32
  20. #define _STATVFSBUF_F_UNUSED
  21. #endif
  22. struct statvfs
  23.   {
  24.     unsigned long int f_bsize;
  25.     unsigned long int f_frsize;
  26. #ifndef __USE_FILE_OFFSET64
  27.     __fsblkcnt_t f_blocks;
  28.     __fsblkcnt_t f_bfree;
  29.     __fsblkcnt_t f_bavail;
  30.     __fsfilcnt_t f_files;
  31.     __fsfilcnt_t f_ffree;
  32.     __fsfilcnt_t f_favail;
  33. #else
  34.     __fsblkcnt64_t f_blocks;
  35.     __fsblkcnt64_t f_bfree;
  36.     __fsblkcnt64_t f_bavail;
  37.     __fsfilcnt64_t f_files;
  38.     __fsfilcnt64_t f_ffree;
  39.     __fsfilcnt64_t f_favail;
  40. #endif
  41.     unsigned long int f_fsid;
  42. #ifdef _STATVFSBUF_F_UNUSED
  43.     int __f_unused;
  44. #endif
  45.     unsigned long int f_flag;
  46.     unsigned long int f_namemax;
  47.     int __f_spare[6];
  48.   };
  49. #ifdef __USE_LARGEFILE64
  50. struct statvfs64
  51.   {
  52.     unsigned long int f_bsize;
  53.     unsigned long int f_frsize;
  54.     __fsblkcnt64_t f_blocks;
  55.     __fsblkcnt64_t f_bfree;
  56.     __fsblkcnt64_t f_bavail;
  57.     __fsfilcnt64_t f_files;
  58.     __fsfilcnt64_t f_ffree;
  59.     __fsfilcnt64_t f_favail;
  60.     unsigned long int f_fsid;
  61. #ifdef _STATVFSBUF_F_UNUSED
  62.     int __f_unused;
  63. #endif
  64.     unsigned long int f_flag;
  65.     unsigned long int f_namemax;
  66.     int __f_spare[6];
  67.   };
  68. #endif
  69. /* Definitions for the flag in `f_flag'.  These definitions should be
  70.    kept in sync with the definitions in <sys/mount.h>.  */
  71. enum
  72. {
  73.   ST_RDONLY = 1, /* Mount read-only.  */
  74. #define ST_RDONLY ST_RDONLY
  75.   ST_NOSUID = 2 /* Ignore suid and sgid bits.  */
  76. #define ST_NOSUID ST_NOSUID
  77. #ifdef __USE_GNU
  78.   ,
  79.   ST_NODEV = 4, /* Disallow access to device special files.  */
  80. # define ST_NODEV ST_NODEV
  81.   ST_NOEXEC = 8, /* Disallow program execution.  */
  82. # define ST_NOEXEC ST_NOEXEC
  83.   ST_SYNCHRONOUS = 16, /* Writes are synced at once.  */
  84. # define ST_SYNCHRONOUS ST_SYNCHRONOUS
  85.   ST_MANDLOCK = 64, /* Allow mandatory locks on an FS.  */
  86. # define ST_MANDLOCK ST_MANDLOCK
  87.   ST_WRITE = 128, /* Write on file/directory/symlink.  */
  88. # define ST_WRITE ST_WRITE
  89.   ST_APPEND = 256, /* Append-only file.  */
  90. # define ST_APPEND ST_APPEND
  91.   ST_IMMUTABLE = 512, /* Immutable file.  */
  92. # define ST_IMMUTABLE ST_IMMUTABLE
  93.   ST_NOATIME = 1024, /* Do not update access times.  */
  94. # define ST_NOATIME ST_NOATIME
  95.   ST_NODIRATIME = 2048 /* Do not update directory access times.  */
  96. # define ST_NODIRATIME ST_NODIRATIME
  97. #endif /* Use GNU.  */
  98. };