1  /* Copyright (C) 1997-2023 Free Software Foundation, Inc.
       2     This file is part of the GNU C Library.
       3  
       4     The GNU C Library is free software; you can redistribute it and/or
       5     modify it under the terms of the GNU Lesser General Public
       6     License as published by the Free Software Foundation; either
       7     version 2.1 of the License, or (at your option) any later version.
       8  
       9     The GNU C Library is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12     Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public
      15     License along with the GNU C Library; if not, see
      16     <https://www.gnu.org/licenses/>.  */
      17  
      18  #ifndef _KERNEL_TERMIOS_H
      19  #define _KERNEL_TERMIOS_H 1
      20  
      21  /* We need the definition of tcflag_t, cc_t, and speed_t.  */
      22  #include <termios.h>
      23  
      24  #define __KERNEL_NCCS 19
      25  
      26  struct __kernel_termios
      27    {
      28      tcflag_t c_iflag;		/* input mode flags */
      29      tcflag_t c_oflag;		/* output mode flags */
      30      tcflag_t c_cflag;		/* control mode flags */
      31      tcflag_t c_lflag;		/* local mode flags */
      32      cc_t c_cc[__KERNEL_NCCS];	/* control characters */
      33      cc_t c_line;		/* line discipline */
      34      speed_t c_ispeed;           /* input speed */
      35      speed_t c_ospeed;           /* output speed */
      36    };
      37  
      38  #define _HAVE_C_ISPEED 1
      39  #define _HAVE_C_OSPEED 1
      40  
      41  /* We have the kernel termios structure, so we can presume this code knows
      42     what it's doing...  */
      43  
      44  #undef  TCGETS
      45  #undef  TCSETS
      46  #undef  TCSETSW
      47  #undef  TCSETSF
      48  #define TCGETS	_IOR ('t', 19, struct __kernel_termios)
      49  #define TCSETS	_IOW ('t', 20, struct __kernel_termios)
      50  #define TCSETSW	_IOW ('t', 21, struct __kernel_termios)
      51  #define TCSETSF	_IOW ('t', 22, struct __kernel_termios)
      52  
      53  #endif /* kernel_termios.h */