aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/aix/tcsetattr.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/aix/tcsetattr.c')
-rw-r--r--sysdeps/unix/sysv/aix/tcsetattr.c198
1 files changed, 0 insertions, 198 deletions
diff --git a/sysdeps/unix/sysv/aix/tcsetattr.c b/sysdeps/unix/sysv/aix/tcsetattr.c
deleted file mode 100644
index 8e78da1c2c..0000000000
--- a/sysdeps/unix/sysv/aix/tcsetattr.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/* Copyright (C) 1992,1995,1996,1997,2000,2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stddef.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-
-#include <sysv_termio.h>
-
-
-const speed_t __unix_speeds[] =
- {
- 0,
- 50,
- 75,
- 110,
- 134,
- 150,
- 200,
- 300,
- 600,
- 1200,
- 1800,
- 2400,
- 4800,
- 9600,
- 19200,
- 38400,
- };
-
-
-/* Set the state of FD to *TERMIOS_P. */
-int
-tcsetattr (fd, optional_actions, termios_p)
- int fd;
- int optional_actions;
- const struct termios *termios_p;
-{
- struct __sysv_termio buf;
- int ioctl_function;
-
- if (termios_p == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
- switch (optional_actions)
- {
- case TCSANOW:
- ioctl_function = _TCSETA;
- break;
- case TCSADRAIN:
- ioctl_function = _TCSETAW;
- break;
- case TCSAFLUSH:
- ioctl_function = _TCSETAF;
- break;
- default:
- __set_errno (EINVAL);
- return -1;
- }
-
- if ((termios_p->c_cflag & 0x000f0000) >> 16 != (termios_p->c_cflag & 0xf))
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- buf.c_iflag = 0;
- if (termios_p->c_iflag & IGNBRK)
- buf.c_iflag |= _SYSV_IGNBRK;
- if (termios_p->c_iflag & BRKINT)
- buf.c_iflag |= _SYSV_BRKINT;
- if (termios_p->c_iflag & IGNPAR)
- buf.c_iflag |= _SYSV_IGNPAR;
- if (termios_p->c_iflag & PARMRK)
- buf.c_iflag |= _SYSV_PARMRK;
- if (termios_p->c_iflag & INPCK)
- buf.c_iflag |= _SYSV_INPCK;
- if (termios_p->c_iflag & ISTRIP)
- buf.c_iflag |= _SYSV_ISTRIP;
- if (termios_p->c_iflag & INLCR)
- buf.c_iflag |= _SYSV_INLCR;
- if (termios_p->c_iflag & IGNCR)
- buf.c_iflag |= _SYSV_IGNCR;
- if (termios_p->c_iflag & ICRNL)
- buf.c_iflag |= _SYSV_ICRNL;
- if (termios_p->c_iflag & IXON)
- buf.c_iflag |= _SYSV_IXON;
- if (termios_p->c_iflag & IXOFF)
- buf.c_iflag |= _SYSV_IXOFF;
- if (termios_p->c_iflag & IXANY)
- buf.c_iflag |= _SYSV_IXANY;
- if (termios_p->c_iflag & IMAXBEL)
- buf.c_iflag |= _SYSV_IMAXBEL;
-
- buf.c_oflag = 0;
- if (termios_p->c_oflag & OPOST)
- buf.c_oflag |= _SYSV_OPOST;
- if (termios_p->c_oflag & ONLCR)
- buf.c_oflag |= _SYSV_ONLCR;
-
- /* So far, buf.c_cflag contains the speed in CBAUD. */
- if (termios_p->c_cflag & CSTOPB)
- buf.c_cflag |= _SYSV_CSTOPB;
- if (termios_p->c_cflag & CREAD)
- buf.c_cflag |= _SYSV_CREAD;
- if (termios_p->c_cflag & PARENB)
- buf.c_cflag |= _SYSV_PARENB;
- if (termios_p->c_cflag & PARODD)
- buf.c_cflag |= _SYSV_PARODD;
- if (termios_p->c_cflag & HUPCL)
- buf.c_cflag |= _SYSV_HUPCL;
- if (termios_p->c_cflag & CLOCAL)
- buf.c_cflag |= _SYSV_CLOCAL;
- switch (termios_p->c_cflag & CSIZE)
- {
- case CS5:
- buf.c_cflag |= _SYSV_CS5;
- break;
- case CS6:
- buf.c_cflag |= _SYSV_CS6;
- break;
- case CS7:
- buf.c_cflag |= _SYSV_CS7;
- break;
- case CS8:
- buf.c_cflag |= _SYSV_CS8;
- break;
- }
-
- buf.c_lflag = 0;
- if (termios_p->c_lflag & ISIG)
- buf.c_lflag |= _SYSV_ISIG;
- if (termios_p->c_lflag & ICANON)
- buf.c_lflag |= _SYSV_ICANON;
- if (termios_p->c_lflag & ECHO)
- buf.c_lflag |= _SYSV_ECHO;
- if (termios_p->c_lflag & ECHOE)
- buf.c_lflag |= _SYSV_ECHOE;
- if (termios_p->c_lflag & ECHOK)
- buf.c_lflag |= _SYSV_ECHOK;
- if (termios_p->c_lflag & ECHONL)
- buf.c_lflag |= _SYSV_ECHONL;
- if (termios_p->c_lflag & NOFLSH)
- buf.c_lflag |= _SYSV_NOFLSH;
- if (termios_p->c_lflag & TOSTOP)
- buf.c_lflag |= _SYSV_TOSTOP;
- if (termios_p->c_lflag & ECHOCTL)
- buf.c_lflag |= _SYSV_ECHOCTL;
- if (termios_p->c_lflag & ECHOPRT)
- buf.c_lflag |= _SYSV_ECHOPRT;
- if (termios_p->c_lflag & ECHOKE)
- buf.c_lflag |= _SYSV_ECHOKE;
- if (termios_p->c_lflag & FLUSHO)
- buf.c_lflag |= _SYSV_FLUSHO;
- if (termios_p->c_lflag & PENDIN)
- buf.c_lflag |= _SYSV_PENDIN;
- if (termios_p->c_lflag & IEXTEN)
- buf.c_lflag |= _SYSV_IEXTEN;
-
- buf.c_cc[_SYSV_VINTR] = termios_p->c_cc[VINTR];
- buf.c_cc[_SYSV_VQUIT] = termios_p->c_cc[VQUIT];
- buf.c_cc[_SYSV_VERASE] = termios_p->c_cc[VERASE];
- buf.c_cc[_SYSV_VKILL] = termios_p->c_cc[VKILL];
- if (buf.c_lflag & _SYSV_ICANON)
- {
- buf.c_cc[_SYSV_VEOF] = termios_p->c_cc[VEOF];
- buf.c_cc[_SYSV_VEOL] = termios_p->c_cc[VEOL];
- }
- else
- {
- buf.c_cc[_SYSV_VMIN] = termios_p->c_cc[VMIN];
- buf.c_cc[_SYSV_VTIME] = termios_p->c_cc[VTIME];
- }
- buf.c_cc[_SYSV_VEOL2] = termios_p->c_cc[VEOL2];
-
- if (__ioctl (fd, ioctl_function, &buf) < 0)
- return -1;
- return 0;
-}
-libc_hidden_def (tcsetattr)