📄 termios.h
字号:
#ifndef CYGONCE_ISO_TERMIOS_H#define CYGONCE_ISO_TERMIOS_H/* ====================================================================//// termios.h//// POSIX termios//// ====================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos 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 General Public License// for more details.//// You should have received a copy of the GNU General Public License along// with eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.//// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.// at http://sources.redhat.com/ecos/ecos-license/// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####// ====================================================================//#####DESCRIPTIONBEGIN####//// Author(s): jlarmour// Contributors: // Date: 2000-07-22// Purpose: POSIX termios support// Description:////####DESCRIPTIONEND####//// ==================================================================*/#include <pkgconf/isoinfra.h>#if CYGINT_ISO_TERMIOS# ifdef CYGBLD_ISO_TERMIOS_HEADER# include CYGBLD_ISO_TERMIOS_HEADER# else/* TYPES */typedef unsigned int tcflag_t; /* terminal flags type */typedef unsigned char cc_t; /* control chars type */typedef unsigned int speed_t; /* baud rate type */#define NCCS 16 /* May as well hard-code - ASCII isn't that configurable! */struct 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[NCCS]; /* Control characters */ speed_t c_ispeed; /* input speed */ speed_t c_ospeed; /* output speed */};/* CONSTANTS *//* Input mode flags */#define BRKINT (1<<0)#define ICRNL (1<<1)#define IGNBRK (1<<2)#define IGNCR (1<<3)#define IGNPAR (1<<4)#define INLCR (1<<5)#define INPCK (1<<6)#define ISTRIP (1<<7)#define IXOFF (1<<8)#define IXON (1<<9)#define PARMRK (1<<10)/* Output mode flags */#define OPOST (1<<0)#define ONLCR (1<<1) /* Note: This isn't POSIX *//* Control mode flags */#define CLOCAL (1<<0)#define CREAD (1<<1)#define CS5 (0)#define CS6 (1<<2)#define CS7 (1<<3)#define CS8 (CS6|CS7)#define CSIZE (CS8)#define CSTOPB (1<<4)#define HUPCL (1<<5)#define PARENB (1<<6)#define PARODD (1<<7)#ifndef _POSIX_SOURCE_# define CRTSCTS (1<<8)#endif/* Local mode flags */#define ECHO (1<<0)#define ECHOE (1<<1)#define ECHOK (1<<2)#define ECHONL (1<<3)#define ICANON (1<<4)#define IEXTEN (1<<5)#define ISIG (1<<6)#define NOFLSH (1<<7)#define TOSTOP (1<<8)/* Special control characters */#define VEOF 0#define VEOL 1#define VERASE 2#define VINTR 3#define VKILL 4#define VMIN 5#define VQUIT 6#define VSUSP 7#define VTIME 8#define VSTART 9#define VSTOP 10/* Baud rates *//* There may be tables in the implementation that rely on the * values here, so only append to this table - do not insert values! */#define B0 0#define B50 1#define B75 2#define B110 3#define B134 4#define B150 5#define B200 6#define B300 7#define B600 8#define B1200 9#define B1800 10#define B2400 11#define B3600 12#define B4800 13#define B7200 14#define B9600 15#define B14400 16#define B19200 17#define B38400 18#define B57600 19#define B115200 20#define B230400 21#define B460800 22#define B500000 23#define B576000 24#define B921600 25#define B1000000 26#define B1152000 27#define B1500000 28#define B2000000 29#define B2500000 30#define B3000000 31#define B3500000 32#define B4000000 33/* Optional actions to tcsetattr() */#define TCSANOW 0#define TCSADRAIN 1#define TCSAFLUSH 2/* Queue selectors for tcflush() */#define TCIFLUSH 0#define TCOFLUSH 1#define TCIOFLUSH 2/* Actions for tcflow() */#define TCOOFF 0#define TCOON 1#define TCIOFF 2#define TCION 3/* FUNCTIONS */#ifdef __cplusplusextern "C" {#endifextern speed_tcfgetospeed( const struct termios *__termios_p );extern intcfsetospeed( struct termios *__termios_p, speed_t __speed );extern speed_tcfgetispeed( const struct termios *__termios_p );extern intcfsetispeed( struct termios *__termios_p, speed_t __speed );extern inttcgetattr( int __fildes, struct termios *__termios_p );extern inttcsetattr( int __fildes, int __optact, const struct termios *__termios_p );extern inttcsendbreak( int __fildes, int __duration );extern inttcdrain( int __fildes );extern inttcflush( int __fildes, int __queue_sel );extern inttcflow( int __fildes, int __action );/* tcgetpgrp() and tcsetpgrp() not included in the absence of job control */#ifdef __cplusplus} /* extern "C" */#endif# endif /* ifndef CYGBLD_ISO_TERMIOS_HEADER */#endif /* if CYGINT_ISO_TERMIOS */#endif /* ifndef CYGONCE_ISO_TERMIOS_H *//* EOF termios.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -