diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2012-04-02 15:08:07 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2012-04-02 15:08:07 +0400 |
commit | da8274643c9a765fd2aff0b5d3ee203b2f3a79d0 (patch) | |
tree | a1c25b3a979b7b2575d266770dd4c1614a001233 /winsup/cygwin/fhandler_disk_file.cc | |
parent | 5346e8aebbd4ecc03c8156a91174df74db6fc7db (diff) |
* fhandler.h (fhandler_dev::open): Declare.
(fhandler_dev::close): Declare.
(fhandler_dev::fstat): Declare.
(fhandler_dev::fstatvfs): Declare.
(fhandler_cygdrive::fstatvfs): Declare.
* fhandler_dev.cc (fhandler_dev::open): New method.
(fhandler_dev::close): Ditto.
(fhandler_dev::fstat): Ditto.
(fhandler_dev::fstatvfs): Ditto.
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't fill
st_rdev.
(fhandler_cygdrive::fstatvfs): New method.
* path.h (path_conv::fs_got_fs): New method.
* mount.h (fs_info::got_fs): Change type to bool, make public.
Diffstat (limited to 'winsup/cygwin/fhandler_disk_file.cc')
-rw-r--r-- | winsup/cygwin/fhandler_disk_file.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 98e50914c..734d0accf 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -508,7 +508,7 @@ fhandler_base::fstat_helper (struct __stat64 *buf, : (PFILETIME) &pfnoi->LastWriteTime, &buf->st_ctim); to_timestruc_t ((PFILETIME) &pfnoi->CreationTime, &buf->st_birthtim); - buf->st_rdev = buf->st_dev = get_dev (); + buf->st_dev = get_dev (); /* CV 2011-01-13: Observations on the Cygwin mailing list point to an interesting behaviour in some Windows versions. Apparently the size of a directory is computed at the time the directory is first scanned. This @@ -2412,6 +2412,17 @@ fhandler_cygdrive::fstat (struct __stat64 *buf) return 0; } +int __stdcall +fhandler_cygdrive::fstatvfs (struct statvfs *sfs) +{ + /* Virtual file system. Just return an empty buffer with a few values + set to something useful. Just as on Linux. */ + memset (sfs, 0, sizeof (*sfs)); + sfs->f_bsize = sfs->f_frsize = 4096; + sfs->f_namemax = NAME_MAX; + return 0; +} + DIR * fhandler_cygdrive::opendir (int fd) { |