/* Copyright (C) 1997 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. */ #ifndef _KERNEL_TERMIOS_H #define _KERNEL_TERMIOS_H 1 /* We need the definition of tcflag_t, cc_t, and speed_t. */ #include <termios.h> /* The following corresponds to the values from the Linux 2.1.20 kernel. */ #if defined( __sparc__ ) #define __KERNEL_NCCS 17 struct __kernel_termios { tcflag_t c_iflag; /* input mode flags */ tcflag_t c_oflag; /* output mode flags */ tcflag_t c_cflag; /* control mode flags */ tcflag_t c_lflag; /* local mode flags */ cc_t c_line; /* line discipline */ cc_t c_cc[__KERNEL_NCCS]; /* control characters */ }; #elif defined(__powerpc__) #define __KERNEL_NCCS 19 struct __kernel_termios { tcflag_t c_iflag; /* input mode flags */ tcflag_t c_oflag; /* output mode flags */ tcflag_t c_cflag; /* control mode flags */ tcflag_t c_lflag; /* local mode flags */ cc_t c_cc[__KERNEL_NCCS]; /* control characters */ cc_t c_line; /* line discipline */ speed_t c_ispeed; /* input speed */ speed_t c_ospeed; /* output speed */ }; #define _HAVE_C_ISPEED 1 #define _HAVE_C_OSPEED 1 /* We have the kernel termios structure, so we can presume this code knows what it's doing... */ #undef TCGETS #undef TCSETS #undef TCSETSW #undef TCSETSF #define TCGETS _IOR ('t', 19, struct __kernel_termios) #define TCSETS _IOW ('t', 20, struct __kernel_termios) #define TCSETSW _IOW ('t', 21, struct __kernel_termios) #define TCSETSF _IOW ('t', 22, struct __kernel_termios) #elif defined(__mips__) #define __KERNEL_NCCS 23 struct __kernel_termios { tcflag_t c_iflag; /* input mode flags */ tcflag_t c_oflag; /* output mode flags */ tcflag_t c_cflag; /* control mode flags */ tcflag_t c_lflag; /* local mode flags */ cc_t c_line; /* line discipline */ cc_t c_cc[__KERNEL_NCCS]; /* control characters */ }; #elif defined(__alpha__) #define __KERNEL_NCCS 19 struct __kernel_termios { tcflag_t c_iflag; /* input mode flags */ tcflag_t c_oflag; /* output mode flags */ tcflag_t c_cflag; /* control mode flags */ tcflag_t c_lflag; /* local mode flags */ cc_t c_cc[__KERNEL_NCCS]; /* control characters */ cc_t c_line; /* line discipline */ speed_t c_ispeed; /* input speed */ speed_t c_ospeed; /* output speed */ }; #define _HAVE_C_ISPEED 1 #define _HAVE_C_OSPEED 1 #else /* None of the above */ #define __KERNEL_NCCS 19 struct __kernel_termios { tcflag_t c_iflag; /* input mode flags */ tcflag_t c_oflag; /* output mode flags */ tcflag_t c_cflag; /* control mode flags */ tcflag_t c_lflag; /* local mode flags */ cc_t c_line; /* line discipline */ cc_t c_cc[__KERNEL_NCCS]; /* control characters */ }; #endif #endif /* kernel_termios.h */