summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2012-01-20 12:53:26 +0000
committerCorinna Vinschen <corinna@vinschen.de>2012-01-20 12:53:26 +0000
commit5259273091c45c6338e3452f8571f32884f385e4 (patch)
treef7b795e4e6a88e11ede1b7b1f28f13a3c1941875
parentc3a549f6878359c9f5b950b58e16a1a2beed3290 (diff)
downloadcygnal-5259273091c45c6338e3452f8571f32884f385e4.tar.gz
cygnal-5259273091c45c6338e3452f8571f32884f385e4.tar.bz2
cygnal-5259273091c45c6338e3452f8571f32884f385e4.zip
* fhandler.h (fhandler_registry::opendir): Declare.
* fhandler_registry.cc (fhandler_registry::opendir): New function.
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/fhandler.h1
-rw-r--r--winsup/cygwin/fhandler_registry.cc8
3 files changed, 14 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 35687b7fa..1ceba8b7b 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2012-01-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_registry::opendir): Declare.
+ * fhandler_registry.cc (fhandler_registry::opendir): New function.
+
2012-01-13 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
* include/cygwin/config.h (_GLIBC_EXTENSION): Define.
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index e4ba58423..e3a71368d 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -1979,6 +1979,7 @@ class fhandler_registry: public fhandler_proc
fhandler_registry ();
void set_name (path_conv &pc);
virtual_ftype_t exists();
+ DIR *opendir (int fd) __attribute__ ((regparm (2)));
int readdir (DIR *, dirent *) __attribute__ ((regparm (3)));
long telldir (DIR *);
void seekdir (DIR *, long);
diff --git a/winsup/cygwin/fhandler_registry.cc b/winsup/cygwin/fhandler_registry.cc
index 50233a886..5f6246439 100644
--- a/winsup/cygwin/fhandler_registry.cc
+++ b/winsup/cygwin/fhandler_registry.cc
@@ -537,6 +537,14 @@ fhandler_registry::fstat (struct __stat64 *buf)
return 0;
}
+DIR *
+fhandler_registry::opendir (int fd)
+{
+ /* Skip fhandler_proc::opendir, which allocates dir->_d_handle for its
+ own devilish purposes... */
+ return fhandler_virtual::opendir (fd);
+}
+
int
fhandler_registry::readdir (DIR *dir, dirent *de)
{