glibc (2.38)

(root)/
include/
termios.h
       1  /* Copyright (C) 1991-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  /*
      19   *	POSIX Standard: 7.1-2 General Terminal Interface	<termios.h>
      20   */
      21  
      22  #ifndef	_TERMIOS_H
      23  #define	_TERMIOS_H	1
      24  
      25  #include <features.h>
      26  #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
      27  /* We need `pid_t'.  */
      28  # include <bits/types.h>
      29  # ifndef __pid_t_defined
      30  typedef __pid_t pid_t;
      31  #  define __pid_t_defined
      32  # endif
      33  #endif
      34  
      35  __BEGIN_DECLS
      36  
      37  /* Get the system-dependent definitions of `struct termios', `tcflag_t',
      38     `cc_t', `speed_t', and all the macros specifying the flag bits.  */
      39  #include <bits/termios.h>
      40  
      41  #ifdef __USE_MISC
      42  /* Compare a character C to a value VAL from the `c_cc' array in a
      43     `struct termios'.  If VAL is _POSIX_VDISABLE, no character can match it.  */
      44  # define CCEQ(val, c)	((c) == (val) && (val) != _POSIX_VDISABLE)
      45  #endif
      46  
      47  /* Return the output baud rate stored in *TERMIOS_P.  */
      48  extern speed_t cfgetospeed (const struct termios *__termios_p) __THROW;
      49  
      50  /* Return the input baud rate stored in *TERMIOS_P.  */
      51  extern speed_t cfgetispeed (const struct termios *__termios_p) __THROW;
      52  
      53  /* Set the output baud rate stored in *TERMIOS_P to SPEED.  */
      54  extern int cfsetospeed (struct termios *__termios_p, speed_t __speed) __THROW;
      55  
      56  /* Set the input baud rate stored in *TERMIOS_P to SPEED.  */
      57  extern int cfsetispeed (struct termios *__termios_p, speed_t __speed) __THROW;
      58  
      59  #ifdef	__USE_MISC
      60  /* Set both the input and output baud rates in *TERMIOS_OP to SPEED.  */
      61  extern int cfsetspeed (struct termios *__termios_p, speed_t __speed) __THROW;
      62  #endif
      63  
      64  
      65  /* Put the state of FD into *TERMIOS_P.  */
      66  extern int tcgetattr (int __fd, struct termios *__termios_p) __THROW;
      67  
      68  /* Set the state of FD to *TERMIOS_P.
      69     Values for OPTIONAL_ACTIONS (TCSA*) are in <bits/termios.h>.  */
      70  extern int tcsetattr (int __fd, int __optional_actions,
      71  		      const struct termios *__termios_p) __THROW;
      72  
      73  
      74  #ifdef	__USE_MISC
      75  /* Set *TERMIOS_P to indicate raw mode.  */
      76  extern void cfmakeraw (struct termios *__termios_p) __THROW;
      77  #endif
      78  
      79  /* Send zero bits on FD.  */
      80  extern int tcsendbreak (int __fd, int __duration) __THROW;
      81  
      82  /* Wait for pending output to be written on FD.
      83  
      84     This function is a cancellation point and therefore not marked with
      85     __THROW.  */
      86  extern int tcdrain (int __fd);
      87  
      88  /* Flush pending data on FD.
      89     Values for QUEUE_SELECTOR (TC{I,O,IO}FLUSH) are in <bits/termios.h>.  */
      90  extern int tcflush (int __fd, int __queue_selector) __THROW;
      91  
      92  /* Suspend or restart transmission on FD.
      93     Values for ACTION (TC[IO]{OFF,ON}) are in <bits/termios.h>.  */
      94  extern int tcflow (int __fd, int __action) __THROW;
      95  
      96  
      97  #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
      98  /* Get process group ID for session leader for controlling terminal FD.  */
      99  extern __pid_t tcgetsid (int __fd) __THROW;
     100  #endif
     101  
     102  
     103  #ifdef __USE_MISC
     104  # include <sys/ttydefaults.h>
     105  #endif
     106  
     107  __END_DECLS
     108  
     109  #endif /* termios.h  */