|
|
1.1 ! root 1: #ifndef _TERMIOS_H ! 2: #define _TERMIOS_H ! 3: ! 4: #define TTY_BUF_SIZE 1024 ! 5: ! 6: /* 0x54 is just a magic number to make these relatively uniqe ('T') */ ! 7: ! 8: #define TCGETS 0x5401 ! 9: #define TCSETS 0x5402 ! 10: #define TCSETSW 0x5403 ! 11: #define TCSETSF 0x5404 ! 12: #define TCGETA 0x5405 ! 13: #define TCSETA 0x5406 ! 14: #define TCSETAW 0x5407 ! 15: #define TCSETAF 0x5408 ! 16: #define TCSBRK 0x5409 ! 17: #define TCXONC 0x540A ! 18: #define TCFLSH 0x540B ! 19: #define TIOCEXCL 0x540C ! 20: #define TIOCNXCL 0x540D ! 21: #define TIOCSCTTY 0x540E ! 22: #define TIOCGPGRP 0x540F ! 23: #define TIOCSPGRP 0x5410 ! 24: #define TIOCOUTQ 0x5411 ! 25: #define TIOCSTI 0x5412 ! 26: #define TIOCGWINSZ 0x5413 ! 27: #define TIOCSWINSZ 0x5414 ! 28: #define TIOCMGET 0x5415 ! 29: #define TIOCMBIS 0x5416 ! 30: #define TIOCMBIC 0x5417 ! 31: #define TIOCMSET 0x5418 ! 32: #define TIOCGSOFTCAR 0x5419 ! 33: #define TIOCSSOFTCAR 0x541A ! 34: ! 35: struct winsize { ! 36: unsigned short ws_row; ! 37: unsigned short ws_col; ! 38: unsigned short ws_xpixel; ! 39: unsigned short ws_ypixel; ! 40: }; ! 41: ! 42: #define NCC 8 ! 43: struct termio { ! 44: unsigned short c_iflag; /* input mode flags */ ! 45: unsigned short c_oflag; /* output mode flags */ ! 46: unsigned short c_cflag; /* control mode flags */ ! 47: unsigned short c_lflag; /* local mode flags */ ! 48: unsigned char c_line; /* line discipline */ ! 49: unsigned char c_cc[NCC]; /* control characters */ ! 50: }; ! 51: ! 52: #define NCCS 17 ! 53: struct termios { ! 54: unsigned long c_iflag; /* input mode flags */ ! 55: unsigned long c_oflag; /* output mode flags */ ! 56: unsigned long c_cflag; /* control mode flags */ ! 57: unsigned long c_lflag; /* local mode flags */ ! 58: unsigned char c_line; /* line discipline */ ! 59: unsigned char c_cc[NCCS]; /* control characters */ ! 60: }; ! 61: ! 62: /* c_cc characters */ ! 63: #define VINTR 0 ! 64: #define VQUIT 1 ! 65: #define VERASE 2 ! 66: #define VKILL 3 ! 67: #define VEOF 4 ! 68: #define VTIME 5 ! 69: #define VMIN 6 ! 70: #define VSWTC 7 ! 71: #define VSTART 8 ! 72: #define VSTOP 9 ! 73: #define VSUSP 10 ! 74: #define VEOL 11 ! 75: #define VREPRINT 12 ! 76: #define VDISCARD 13 ! 77: #define VWERASE 14 ! 78: #define VLNEXT 15 ! 79: #define VEOL2 16 ! 80: ! 81: /* c_iflag bits */ ! 82: #define IGNBRK 0000001 ! 83: #define BRKINT 0000002 ! 84: #define IGNPAR 0000004 ! 85: #define PARMRK 0000010 ! 86: #define INPCK 0000020 ! 87: #define ISTRIP 0000040 ! 88: #define INLCR 0000100 ! 89: #define IGNCR 0000200 ! 90: #define ICRNL 0000400 ! 91: #define IUCLC 0001000 ! 92: #define IXON 0002000 ! 93: #define IXANY 0004000 ! 94: #define IXOFF 0010000 ! 95: #define IMAXBEL 0020000 ! 96: ! 97: /* c_oflag bits */ ! 98: #define OPOST 0000001 ! 99: #define OLCUC 0000002 ! 100: #define ONLCR 0000004 ! 101: #define OCRNL 0000010 ! 102: #define ONOCR 0000020 ! 103: #define ONLRET 0000040 ! 104: #define OFILL 0000100 ! 105: #define OFDEL 0000200 ! 106: #define NLDLY 0000400 ! 107: #define NL0 0000000 ! 108: #define NL1 0000400 ! 109: #define CRDLY 0003000 ! 110: #define CR0 0000000 ! 111: #define CR1 0001000 ! 112: #define CR2 0002000 ! 113: #define CR3 0003000 ! 114: #define TABDLY 0014000 ! 115: #define TAB0 0000000 ! 116: #define TAB1 0004000 ! 117: #define TAB2 0010000 ! 118: #define TAB3 0014000 ! 119: #define XTABS 0014000 ! 120: #define BSDLY 0020000 ! 121: #define BS0 0000000 ! 122: #define BS1 0020000 ! 123: #define VTDLY 0040000 ! 124: #define VT0 0000000 ! 125: #define VT1 0040000 ! 126: #define FFDLY 0040000 ! 127: #define FF0 0000000 ! 128: #define FF1 0040000 ! 129: ! 130: /* c_cflag bit meaning */ ! 131: #define CBAUD 0000017 ! 132: #define B0 0000000 /* hang up */ ! 133: #define B50 0000001 ! 134: #define B75 0000002 ! 135: #define B110 0000003 ! 136: #define B134 0000004 ! 137: #define B150 0000005 ! 138: #define B200 0000006 ! 139: #define B300 0000007 ! 140: #define B600 0000010 ! 141: #define B1200 0000011 ! 142: #define B1800 0000012 ! 143: #define B2400 0000013 ! 144: #define B4800 0000014 ! 145: #define B9600 0000015 ! 146: #define B19200 0000016 ! 147: #define B38400 0000017 ! 148: #define CSIZE 0000060 ! 149: #define CS5 0000000 ! 150: #define CS6 0000020 ! 151: #define CS7 0000040 ! 152: #define CS8 0000060 ! 153: #define CSTOPB 0000100 ! 154: #define CREAD 0000200 ! 155: #define CPARENB 0000400 ! 156: #define CPARODD 0001000 ! 157: #define HUPCL 0002000 ! 158: #define CLOCAL 0004000 ! 159: #define CIBAUD 03600000 /* input baud rate (not used) */ ! 160: #define CRTSCTS 020000000000 /* flow control */ ! 161: ! 162: /* c_lflag bits */ ! 163: #define ISIG 0000001 ! 164: #define ICANON 0000002 ! 165: #define XCASE 0000004 ! 166: #define ECHO 0000010 ! 167: #define ECHOE 0000020 ! 168: #define ECHOK 0000040 ! 169: #define ECHONL 0000100 ! 170: #define NOFLSH 0000200 ! 171: #define TOSTOP 0000400 ! 172: #define ECHOCTL 0001000 ! 173: #define ECHOPRT 0002000 ! 174: #define ECHOKE 0004000 ! 175: #define FLUSHO 0010000 ! 176: #define PENDIN 0040000 ! 177: #define IEXTEN 0100000 ! 178: ! 179: /* modem lines */ ! 180: #define TIOCM_LE 0x001 ! 181: #define TIOCM_DTR 0x002 ! 182: #define TIOCM_RTS 0x004 ! 183: #define TIOCM_ST 0x008 ! 184: #define TIOCM_SR 0x010 ! 185: #define TIOCM_CTS 0x020 ! 186: #define TIOCM_CAR 0x040 ! 187: #define TIOCM_RNG 0x080 ! 188: #define TIOCM_DSR 0x100 ! 189: #define TIOCM_CD TIOCM_CAR ! 190: #define TIOCM_RI TIOCM_RNG ! 191: ! 192: /* tcflow() and TCXONC use these */ ! 193: #define TCOOFF 0 ! 194: #define TCOON 1 ! 195: #define TCIOFF 2 ! 196: #define TCION 3 ! 197: ! 198: /* tcflush() and TCFLSH use these */ ! 199: #define TCIFLUSH 0 ! 200: #define TCOFLUSH 1 ! 201: #define TCIOFLUSH 2 ! 202: ! 203: /* tcsetattr uses these */ ! 204: #define TCSANOW 0 ! 205: #define TCSADRAIN 1 ! 206: #define TCSAFLUSH 2 ! 207: ! 208: typedef int speed_t; ! 209: ! 210: extern speed_t cfgetispeed(struct termios *termios_p); ! 211: extern speed_t cfgetospeed(struct termios *termios_p); ! 212: extern int cfsetispeed(struct termios *termios_p, speed_t speed); ! 213: extern int cfsetospeed(struct termios *termios_p, speed_t speed); ! 214: extern int tcdrain(int fildes); ! 215: extern int tcflow(int fildes, int action); ! 216: extern int tcflush(int fildes, int queue_selector); ! 217: extern int tcgetattr(int fildes, struct termios *termios_p); ! 218: extern int tcsendbreak(int fildes, int duration); ! 219: extern int tcsetattr(int fildes, int optional_actions, ! 220: struct termios *termios_p); ! 221: ! 222: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.