📄 termios.h
字号:
/* sys/termios.h Copyright 1997, 1998, 1999, 2000, 2001 Red Hat, Inc.This file is part of Cygwin.This software is a copyrighted work licensed under the terms of theCygwin license. Please consult the file "CYGWIN_LICENSE" fordetails. *//* sys/termios.h */#ifndef _SYS_TERMIOS_H#define _SYS_TERMIOS_H#define TIOCMGET 0x5415#define TIOCMSET 0x5418#define TIOCINQ 0x541B /* TIOCINQ is utilized instead of FIONREAD which has beenaccupied for other purposes under CYGWIN.Other UNIX ioctl requests has been omited becauseeffects of their work one can achive by standardPOSIX commands */#define TIOCM_DTR 0x002#define TIOCM_RTS 0x004#define TIOCM_CTS 0x020#define TIOCM_CAR 0x040#define TIOCM_RNG 0x080#define TIOCM_DSR 0x100#define TIOCM_CD TIOCM_CAR#define TIOCM_RI TIOCM_RNG#define TCOOFF 0#define TCOON 1#define TCIOFF 2#define TCION 3#define TCGETA 5#define TCSETA 6#define TCSETAW 7#define TCSETAF 8#define TCIFLUSH 0#define TCOFLUSH 1#define TCIOFLUSH 2#define TCFLSH 3#define TCSAFLUSH 1#define TCSANOW 2#define TCSADRAIN 3#define TCSADFLUSH 4#define TIOCPKT 6#define TIOCPKT_DATA 0#define TIOCPKT_FLUSHREAD 1#define TIOCPKT_FLUSHWRITE 2#define TIOCPKT_STOP 4#define TIOCPKT_START 8#define TIOCPKT_NOSTOP 16#define TIOCPKT_DOSTOP 32#define FIONBIO 0x8004667e /* To be compatible with socket version */#define CTRL(ch) ((ch)&0x1F)#define CNUL 0#define CDEL 0x0007f#define CESC '\\'#define CINTR CTRL('C')#define CQUIT 0x0001c#define CERASE CTRL('H')#define CKILL CTRL('U')#define CEOT CTRL('D')#define CEOL 0#define CEOL2 0#define CEOF CTRL('D')#define CSTART CTRL('Q')#define CSTOP CTRL('S')#define CSWTCH 0x0001a#define NSWTCH 0#define CSUSP CTRL('Z')#define CDSUSP CTRL('Y')#define CRPRNT CTRL('R')#define CFLUSH CTRL('O')#define CWERASE CTRL('W')#define CLNEXT CTRL('V')/* iflag bits */#define IGNBRK 0x00001#define BRKINT 0x00002#define IGNPAR 0x00004#define IMAXBEL 0x00008#define INPCK 0x00010#define ISTRIP 0x00020#define INLCR 0x00040#define IGNCR 0x00080#define ICRNL 0x00100#define IXON 0x00400#define IXOFF 0x01000#define IUCLC 0x04000#define IXANY 0x08000#define PARMRK 0x10000/* oflag bits */#define OPOST 0x00001#define OLCUC 0x00002#define OCRNL 0x00004#define ONLCR 0x00008#define ONOCR 0x00010#define ONLRET 0x00020#define OFILL 0x00040#define CRDLY 0x00180#define CR0 0x00000#define CR1 0x00080#define CR2 0x00100#define CR3 0x00180#define NLDLY 0x00200#define NL0 0x00000#define NL1 0x00200#define BSDLY 0x00400#define BS0 0x00000#define BS1 0x00400#define TABDLY 0x01800#define TAB0 0x00000#define TAB1 0x00800#define TAB2 0x01000#define TAB3 0x01800#define XTABS 0x01800#define VTDLY 0x02000#define VT0 0x00000#define VT1 0x02000#define FFDLY 0x04000#define FF0 0x00000#define FF1 0x04000#define OFDEL 0x08000/* cflag bits *//* Baud rate values. These must fit in speed_t, which is unsigned char. See also the extended baud rates below. These baud rates set an additional bit. */#define CBAUD 0x0100f#define B0 0x00000#define B50 0x00001#define B75 0x00002#define B110 0x00003#define B134 0x00004#define B150 0x00005#define B200 0x00006#define B300 0x00007#define B600 0x00008#define B1200 0x00009#define B1800 0x0000a#define B2400 0x0000b#define B4800 0x0000c#define B9600 0x0000d#define B19200 0x0000e#define B38400 0x0000f#define CSIZE 0x00030#define CS5 0x00000#define CS6 0x00010#define CS7 0x00020#define CS8 0x00030#define CSTOPB 0x00040#define CREAD 0x00080#define PARENB 0x00100#define PARODD 0x00200#define HUPCL 0x00400#define CLOCAL 0x00800#define CBAUDEX 0x0100f#define B57600 0x01001#define B115200 0x01002#define B128000 0x01003#define B256000 0x01003#define CRTSXOFF 0x04000#define CRTSCTS 0x08000/* lflag bits */#define ISIG 0x0001#define ICANON 0x0002#define ECHO 0x0004#define ECHOE 0x0008#define ECHOK 0x0010#define ECHONL 0x0020#define NOFLSH 0x0040#define TOSTOP 0x0080#define IEXTEN 0x0100#define FLUSHO 0x0200#define ECHOKE 0x0400#define ECHOCTL 0x0800#define VDISCARD 1#define VEOL 2#define VEOL2 3#define VEOF 4#define VERASE 5#define VINTR 6#define VKILL 7#define VLNEXT 8#define VMIN 9#define VQUIT 10#define VREPRINT 11#define VSTART 12#define VSTOP 13#define VSUSP 14#define VSWTC 15#define VTIME 16#define VWERASE 17#define NCCS 18/* `c_cc' member of 'struct termios' structure can be disabled by using the value _POSIX_VDISABLE. */#define _POSIX_VDISABLE '\0'/* Compare a character C to a value VAL from the `c_cc' array in a `struct termios'. If VAL is _POSIX_VDISABLE, no character can match it. */#define CCEQ(val, c) ((c) == (val) && (val) != _POSIX_VDISABLE)typedef unsigned char cc_t;typedef unsigned int tcflag_t;typedef unsigned int speed_t;typedef unsigned short otcflag_t;typedef unsigned char ospeed_t;struct __oldtermios { otcflag_t c_iflag; otcflag_t c_oflag; otcflag_t c_cflag; otcflag_t c_lflag; char c_line; cc_t c_cc[NCCS]; ospeed_t c_ispeed; ospeed_t c_ospeed;};struct termios { tcflag_t c_iflag; tcflag_t c_oflag; tcflag_t c_cflag; tcflag_t c_lflag; char c_line; cc_t c_cc[NCCS]; speed_t c_ispeed; speed_t c_ospeed;};#ifdef CYGWIN_VERSION_DLL_IS_OLD_TERMIOS#ifdef __GNUC__# define __tonew_termios(ti) \ ({ \ struct termios *__newti; \ \ if (!CYGWIN_VERSION_DLL_IS_OLD_TERMIOS) \ __newti = (struct termios *) ti; \ else \ { \ __newti = (struct termios *) alloca(sizeof(struct termios)); \ __newti->c_iflag = ((struct __oldtermios *)ti)->c_iflag; \ __newti->c_oflag = ((struct __oldtermios *)ti)->c_oflag; \ __newti->c_cflag = ((struct __oldtermios *)ti)->c_cflag; \ __newti->c_lflag = ((struct __oldtermios *)ti)->c_lflag; \ __newti->c_line = ((struct __oldtermios *)ti)->c_line; \ __newti->c_ispeed = ((struct __oldtermios *)ti)->c_ispeed; \ __newti->c_ospeed = ((struct __oldtermios *)ti)->c_ospeed; \ memcpy (__newti->c_cc, ((struct __oldtermios *)ti)->c_cc, sizeof(__newti->c_cc)); \ } \ __newti; \ })# define __makenew_termios(ti) \ (CYGWIN_VERSION_DLL_IS_OLD_TERMIOS ? \ (struct termios *) alloca (sizeof (struct termios)) : (ti))# define __toapp_termios(toti, fromti) \ ({ \ if (!CYGWIN_VERSION_DLL_IS_OLD_TERMIOS) \ toti = fromti; \ else \ { \ ((struct __oldtermios *)toti)->c_iflag = fromti->c_iflag; \ ((struct __oldtermios *)toti)->c_oflag = fromti->c_oflag; \ ((struct __oldtermios *)toti)->c_cflag = fromti->c_cflag; \ ((struct __oldtermios *)toti)->c_lflag = fromti->c_lflag; \ ((struct __oldtermios *)toti)->c_line = fromti->c_line; \ ((struct __oldtermios *)toti)->c_ispeed = fromti->c_ispeed; \ ((struct __oldtermios *)toti)->c_ospeed = fromti->c_ospeed; \ memcpy (((struct __oldtermios*)toti)->c_cc, fromti->c_cc, sizeof(fromti->c_cc)); \ } \ toti; \ })#endif /*__GNUC__*/#endif#define termio termios#define cfgetospeed(tp) ((tp)->c_ospeed)#define cfgetispeed(tp) ((tp)->c_ispeed)#define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0)#define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0)#ifdef __cplusplusextern "C" {#endifint tcgetattr (int, struct termios *);int tcsetattr (int, int, const struct termios *);int tcsendbreak (int, int);int tcdrain (int);int tcflush (int, int);int tcflow (int, int);#ifdef __cplusplus}#endif/* Extra stuff to make porting stuff easier. */struct winsize{ unsigned short ws_row, ws_col; unsigned short ws_xpixel, ws_ypixel;};#define TIOCGWINSZ (('T' << 8) | 1)#define TIOCSWINSZ (('T' << 8) | 2)#endif /* _SYS_TERMIOS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -