Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fhandler/nodevice.cc')
-rw-r--r--winsup/cygwin/fhandler/nodevice.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler/nodevice.cc b/winsup/cygwin/fhandler/nodevice.cc
new file mode 100644
index 000000000..515b1ae58
--- /dev/null
+++ b/winsup/cygwin/fhandler/nodevice.cc
@@ -0,0 +1,28 @@
+/* fhandler_nodevice.cc. "No such device" handler.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#include "winsup.h"
+#include "cygerrno.h"
+#include "path.h"
+#include "fhandler.h"
+
+int
+fhandler_nodevice::open (int flags, mode_t)
+{
+ if (!pc.error)
+ set_errno (ENXIO);
+ /* Fixup EROFS error returned from path_conv if /dev is not backed by real
+ directory on disk and the file doesn't exist. */
+ else if (pc.error == EROFS && (flags & O_ACCMODE) == O_RDONLY)
+ set_errno (ENOENT);
+ return 0;
+}
+
+fhandler_nodevice::fhandler_nodevice ()
+{
+}