From e817fd3c8b91f66b4365eeda0ae2afb457f15271 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 1 Mar 2006 13:47:49 +0000 Subject: * include/sys/dirent.h (struct __DIR): Rename __d_unused to __d_internal. * fhandler_disk_file.cc (struct __DIR_cache): Remove useless "typedef". (d_dirname): Remove useless "struct". (d_cachepos): Ditto. (d_cache): Ditto. (class __DIR_mounts): New class, implementing mount point tracking for readdir. (d_mounts): New macro for easy access to __DIR_mounts structure. (fhandler_disk_file::opendir): Allocate __DIR_mounts structure and let __d_internal element of dir point to it. (fhandler_disk_file::readdir_helper): Add mount points in the current directory, which don't have a real directory backing them. Don't generate an inode number for /dev. Add comment, why. (fhandler_disk_file::readdir): Move filling fname to an earlier point. Check if current entry is a mount point and evaluate correct inode number for it. (fhandler_disk_file::readdir_9x): Ditto. (fhandler_disk_file::rewinddir): Set all mount points in this directory to "not found" so that they are listed again after calling rewinddir(). (fhandler_disk_file::closedir): Deallocate __DIR_mounts structure. * path.cc (mount_info::get_mounts_here): New method to evaluate a list of mount points in a given parent directory. * shared_info.h (class mount_info): Declare get_mounts_here. --- winsup/cygwin/shared_info.h | 1 + 1 file changed, 1 insertion(+) (limited to 'winsup/cygwin/shared_info.h') diff --git a/winsup/cygwin/shared_info.h b/winsup/cygwin/shared_info.h index d654ef1f9..f0c037f61 100644 --- a/winsup/cygwin/shared_info.h +++ b/winsup/cygwin/shared_info.h @@ -91,6 +91,7 @@ class mount_info int get_cygdrive_info (char *user, char *system, char* user_flags, char* system_flags); void cygdrive_posix_path (const char *src, char *dst, int trailing_slash_p); + int get_mounts_here (const char *parent_dir, int, char **mount_points); private: -- cgit v1.2.3