diff options
Diffstat (limited to 'winsup/cygwin/fhandler/nodevice.cc')
-rw-r--r-- | winsup/cygwin/fhandler/nodevice.cc | 28 |
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 () +{ +} |