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