⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 termios.h

📁 一个用于学习的操作系统
💻 H
字号:
#ifndef _TERMIOS_H#define _TERMIOS_H#include <fairysky/types.h>#define TTY_BUF_SIZE 1024/* 0x54 is just a magic number to make these relatively uniqe ('T') */#define TCGETS        0x5401#define TCSETS        0x5402#define TCSETSW        0x5403#define TCSETSF        0x5404#define TCGETA        0x5405#define TCSETA        0x5406#define TCSETAW        0x5407#define TCSETAF        0x5408#define TCSBRK        0x5409#define TCXONC        0x540A#define TCFLSH        0x540B#define TIOCEXCL    0x540C#define TIOCNXCL    0x540D#define TIOCSCTTY    0x540E#define TIOCGPGRP    0x540F#define TIOCSPGRP    0x5410#define TIOCOUTQ    0x5411#define TIOCSTI        0x5412#define TIOCGWINSZ    0x5413#define TIOCSWINSZ    0x5414#define TIOCMGET    0x5415#define TIOCMBIS    0x5416#define TIOCMBIC    0x5417#define TIOCMSET    0x5418#define TIOCGSOFTCAR    0x5419#define TIOCSSOFTCAR    0x541A#define TIOCINQ        0x541Bstruct winsize {    unsigned short ws_row;    unsigned short ws_col;    unsigned short ws_xpixel;    unsigned short ws_ypixel;};#define NCC 8struct termio {    unsigned short c_iflag;        /* input mode flags */    unsigned short c_oflag;        /* output mode flags */    unsigned short c_cflag;        /* control mode flags */    unsigned short c_lflag;        /* local mode flags */    unsigned char c_line;        /* line discipline */    unsigned char c_cc[NCC];    /* control characters */};#define NCCS 17struct termios {    unsigned long c_iflag;        /* input mode flags */    unsigned long c_oflag;        /* output mode flags */    unsigned long c_cflag;        /* control mode flags */    unsigned long c_lflag;        /* local mode flags */    unsigned char c_line;        /* line discipline */    unsigned char c_cc[NCCS];    /* control characters */};/* c_cc characters */#define VINTR 0#define VQUIT 1#define VERASE 2#define VKILL 3#define VEOF 4#define VTIME 5#define VMIN 6#define VSWTC 7#define VSTART 8#define VSTOP 9#define VSUSP 10#define VEOL 11#define VREPRINT 12#define VDISCARD 13#define VWERASE 14#define VLNEXT 15#define VEOL2 16/* c_iflag bits */#define IGNBRK    0000001#define BRKINT    0000002#define IGNPAR    0000004#define PARMRK    0000010#define INPCK    0000020#define ISTRIP    0000040#define INLCR    0000100#define IGNCR    0000200#define ICRNL    0000400#define IUCLC    0001000#define IXON    0002000#define IXANY    0004000#define IXOFF    0010000#define IMAXBEL    0020000/* c_oflag bits */#define OPOST    0000001#define OLCUC    0000002#define ONLCR    0000004#define OCRNL    0000010#define ONOCR    0000020#define ONLRET    0000040#define OFILL    0000100#define OFDEL    0000200#define NLDLY    0000400#define   NL0    0000000#define   NL1    0000400#define CRDLY    0003000#define   CR0    0000000#define   CR1    0001000#define   CR2    0002000#define   CR3    0003000#define TABDLY    0014000#define   TAB0    0000000#define   TAB1    0004000#define   TAB2    0010000#define   TAB3    0014000#define   XTABS    0014000#define BSDLY    0020000#define   BS0    0000000#define   BS1    0020000#define VTDLY    0040000#define   VT0    0000000#define   VT1    0040000#define FFDLY    0040000#define   FF0    0000000#define   FF1    0040000/* c_cflag bit meaning */#define CBAUD    0000017#define  B0    0000000        /* hang up */#define  B50    0000001#define  B75    0000002#define  B110    0000003#define  B134    0000004#define  B150    0000005#define  B200    0000006#define  B300    0000007#define  B600    0000010#define  B1200    0000011#define  B1800    0000012#define  B2400    0000013#define  B4800    0000014#define  B9600    0000015#define  B19200    0000016#define  B38400    0000017#define EXTA B19200#define EXTB B38400#define CSIZE    0000060#define   CS5    0000000#define   CS6    0000020#define   CS7    0000040#define   CS8    0000060#define CSTOPB    0000100#define CREAD    0000200#define CPARENB    0000400#define CPARODD    0001000#define HUPCL    0002000#define CLOCAL    0004000#define CIBAUD    03600000        /* input baud rate (not used) */#define CRTSCTS    020000000000        /* flow control */#define PARENB CPARENB#define PARODD CPARODD/* c_lflag bits */#define ISIG    0000001#define ICANON    0000002#define XCASE    0000004#define ECHO    0000010#define ECHOE    0000020#define ECHOK    0000040#define ECHONL    0000100#define NOFLSH    0000200#define TOSTOP    0000400#define ECHOCTL    0001000#define ECHOPRT    0002000#define ECHOKE    0004000#define FLUSHO    0010000#define PENDIN    0040000#define IEXTEN    0100000/* modem lines */#define TIOCM_LE    0x001#define TIOCM_DTR    0x002#define TIOCM_RTS    0x004#define TIOCM_ST    0x008#define TIOCM_SR    0x010#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/* tcflow() and TCXONC use these */#define    TCOOFF        0#define    TCOON        1#define    TCIOFF        2#define    TCION        3/* tcflush() and TCFLSH use these */#define    TCIFLUSH    0#define    TCOFLUSH    1#define    TCIOFLUSH    2/* tcsetattr uses these */#define    TCSANOW        0#define    TCSADRAIN    1#define    TCSAFLUSH    2extern speed_t cfgetispeed(struct termios *termios_p);extern speed_t cfgetospeed(struct termios *termios_p);extern int cfsetispeed(struct termios *termios_p, speed_t speed);extern int cfsetospeed(struct termios *termios_p, speed_t speed);extern int tcdrain(int fildes);extern int tcflow(int fildes, int action);extern int tcflush(int fildes, int queue_selector);extern int tcgetattr(int fildes, struct termios *termios_p);extern int tcsendbreak(int fildes, int duration);extern int tcsetattr(int fildes, int optional_actions,    struct termios *termios_p);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -