From 1fd5e000ace55b323124c7e556a7a864b972a5c4 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 17 Feb 2000 19:38:33 +0000 Subject: import winsup-2000-02-17 snapshot --- winsup/cygwin/ioctl.cc | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 winsup/cygwin/ioctl.cc (limited to 'winsup/cygwin/ioctl.cc') diff --git a/winsup/cygwin/ioctl.cc b/winsup/cygwin/ioctl.cc new file mode 100644 index 000000000..1fb5f3b59 --- /dev/null +++ b/winsup/cygwin/ioctl.cc @@ -0,0 +1,44 @@ +/* ioctl.cc: ioctl routines. + + Copyright 1996, 1998 Cygnus Solutions. + + Written by Doug Evans of Cygnus Support + dje@cygnus.com + +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 +#include +#include "winsup.h" + +extern "C" +int +ioctl (int fd, int cmd, void *buf) +{ + if (dtable.not_open (fd)) + { + set_errno (EBADF); + return -1; + } + + debug_printf ("fd %d, cmd %x\n", fd, cmd); + fhandler_base *fh = dtable[fd]; + if (fh->is_tty () && fh->get_device () != FH_PTYM) + switch (cmd) + { + case TCGETA: + return tcgetattr (fd, (struct termios *) buf); + case TCSETA: + return tcsetattr (fd, TCSANOW, (struct termios *) buf); + case TCSETAW: + return tcsetattr (fd, TCSADRAIN, (struct termios *) buf); + case TCSETAF: + return tcsetattr (fd, TCSAFLUSH, (struct termios *) buf); + } + + return fh->ioctl (cmd, buf); +} -- cgit v1.2.3