|
|
1.1 ! root 1: #ifndef _I386_TERMIOS_H ! 2: #define _I386_TERMIOS_H ! 3: ! 4: /* 0x54 is just a magic number to make these relatively unique ('T') */ ! 5: ! 6: #define TCGETS 0x5401 ! 7: #define TCSETS 0x5402 ! 8: #define TCSETSW 0x5403 ! 9: #define TCSETSF 0x5404 ! 10: #define TCGETA 0x5405 ! 11: #define TCSETA 0x5406 ! 12: #define TCSETAW 0x5407 ! 13: #define TCSETAF 0x5408 ! 14: #define TCSBRK 0x5409 ! 15: #define TCXONC 0x540A ! 16: #define TCFLSH 0x540B ! 17: #define TIOCEXCL 0x540C ! 18: #define TIOCNXCL 0x540D ! 19: #define TIOCSCTTY 0x540E ! 20: #define TIOCGPGRP 0x540F ! 21: #define TIOCSPGRP 0x5410 ! 22: #define TIOCOUTQ 0x5411 ! 23: #define TIOCSTI 0x5412 ! 24: #define TIOCGWINSZ 0x5413 ! 25: #define TIOCSWINSZ 0x5414 ! 26: #define TIOCMGET 0x5415 ! 27: #define TIOCMBIS 0x5416 ! 28: #define TIOCMBIC 0x5417 ! 29: #define TIOCMSET 0x5418 ! 30: #define TIOCGSOFTCAR 0x5419 ! 31: #define TIOCSSOFTCAR 0x541A ! 32: #define FIONREAD 0x541B ! 33: #define TIOCINQ FIONREAD ! 34: #define TIOCLINUX 0x541C ! 35: #define TIOCCONS 0x541D ! 36: #define TIOCGSERIAL 0x541E ! 37: #define TIOCSSERIAL 0x541F ! 38: #define TIOCPKT 0x5420 ! 39: #define FIONBIO 0x5421 ! 40: #define TIOCNOTTY 0x5422 ! 41: #define TIOCSETD 0x5423 ! 42: #define TIOCGETD 0x5424 ! 43: #define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */ ! 44: #define TIOCTTYGSTRUCT 0x5426 /* For debugging only */ ! 45: #define FIONCLEX 0x5450 /* these numbers need to be adjusted. */ ! 46: #define FIOCLEX 0x5451 ! 47: #define FIOASYNC 0x5452 ! 48: #define TIOCSERCONFIG 0x5453 ! 49: #define TIOCSERGWILD 0x5454 ! 50: #define TIOCSERSWILD 0x5455 ! 51: #define TIOCGLCKTRMIOS 0x5456 ! 52: #define TIOCSLCKTRMIOS 0x5457 ! 53: #define TIOCSERGSTRUCT 0x5458 /* For debugging only */ ! 54: #define TIOCSERGETLSR 0x5459 /* Get line status register */ ! 55: #define TIOCSERGETMULTI 0x545A /* Get multiport config */ ! 56: #define TIOCSERSETMULTI 0x545B /* Set multiport config */ ! 57: ! 58: #define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */ ! 59: #define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */ ! 60: ! 61: /* Used for packet mode */ ! 62: #define TIOCPKT_DATA 0 ! 63: #define TIOCPKT_FLUSHREAD 1 ! 64: #define TIOCPKT_FLUSHWRITE 2 ! 65: #define TIOCPKT_STOP 4 ! 66: #define TIOCPKT_START 8 ! 67: #define TIOCPKT_NOSTOP 16 ! 68: #define TIOCPKT_DOSTOP 32 ! 69: ! 70: struct winsize { ! 71: unsigned short ws_row; ! 72: unsigned short ws_col; ! 73: unsigned short ws_xpixel; ! 74: unsigned short ws_ypixel; ! 75: }; ! 76: ! 77: #define NCC 8 ! 78: struct termio { ! 79: unsigned short c_iflag; /* input mode flags */ ! 80: unsigned short c_oflag; /* output mode flags */ ! 81: unsigned short c_cflag; /* control mode flags */ ! 82: unsigned short c_lflag; /* local mode flags */ ! 83: unsigned char c_line; /* line discipline */ ! 84: unsigned char c_cc[NCC]; /* control characters */ ! 85: }; ! 86: ! 87: #define NCCS 19 ! 88: struct termios { ! 89: tcflag_t c_iflag; /* input mode flags */ ! 90: tcflag_t c_oflag; /* output mode flags */ ! 91: tcflag_t c_cflag; /* control mode flags */ ! 92: tcflag_t c_lflag; /* local mode flags */ ! 93: cc_t c_line; /* line discipline */ ! 94: cc_t c_cc[NCCS]; /* control characters */ ! 95: }; ! 96: ! 97: /* c_cc characters */ ! 98: #define VINTR 0 ! 99: #define VQUIT 1 ! 100: #define VERASE 2 ! 101: #define VKILL 3 ! 102: #define VEOF 4 ! 103: #define VTIME 5 ! 104: #define VMIN 6 ! 105: #define VSWTC 7 ! 106: #define VSTART 8 ! 107: #define VSTOP 9 ! 108: #define VSUSP 10 ! 109: #define VEOL 11 ! 110: #define VREPRINT 12 ! 111: #define VDISCARD 13 ! 112: #define VWERASE 14 ! 113: #define VLNEXT 15 ! 114: #define VEOL2 16 ! 115: ! 116: #ifdef __KERNEL__ ! 117: /* intr=^C quit=^| erase=del kill=^U ! 118: eof=^D vtime=\0 vmin=\1 sxtc=\0 ! 119: start=^Q stop=^S susp=^Z eol=\0 ! 120: reprint=^R discard=^U werase=^W lnext=^V ! 121: eol2=\0 ! 122: */ ! 123: #define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0" ! 124: #endif ! 125: ! 126: /* c_iflag bits */ ! 127: #define IGNBRK 0000001 ! 128: #define BRKINT 0000002 ! 129: #define IGNPAR 0000004 ! 130: #define PARMRK 0000010 ! 131: #define INPCK 0000020 ! 132: #define ISTRIP 0000040 ! 133: #define INLCR 0000100 ! 134: #define IGNCR 0000200 ! 135: #define ICRNL 0000400 ! 136: #define IUCLC 0001000 ! 137: #define IXON 0002000 ! 138: #define IXANY 0004000 ! 139: #define IXOFF 0010000 ! 140: #define IMAXBEL 0020000 ! 141: ! 142: /* c_oflag bits */ ! 143: #define OPOST 0000001 ! 144: #define OLCUC 0000002 ! 145: #define ONLCR 0000004 ! 146: #define OCRNL 0000010 ! 147: #define ONOCR 0000020 ! 148: #define ONLRET 0000040 ! 149: #define OFILL 0000100 ! 150: #define OFDEL 0000200 ! 151: #define NLDLY 0000400 ! 152: #define NL0 0000000 ! 153: #define NL1 0000400 ! 154: #define CRDLY 0003000 ! 155: #define CR0 0000000 ! 156: #define CR1 0001000 ! 157: #define CR2 0002000 ! 158: #define CR3 0003000 ! 159: #define TABDLY 0014000 ! 160: #define TAB0 0000000 ! 161: #define TAB1 0004000 ! 162: #define TAB2 0010000 ! 163: #define TAB3 0014000 ! 164: #define XTABS 0014000 ! 165: #define BSDLY 0020000 ! 166: #define BS0 0000000 ! 167: #define BS1 0020000 ! 168: #define VTDLY 0040000 ! 169: #define VT0 0000000 ! 170: #define VT1 0040000 ! 171: #define FFDLY 0100000 ! 172: #define FF0 0000000 ! 173: #define FF1 0100000 ! 174: ! 175: /* c_cflag bit meaning */ ! 176: #define CBAUD 0010017 ! 177: #define B0 0000000 /* hang up */ ! 178: #define B50 0000001 ! 179: #define B75 0000002 ! 180: #define B110 0000003 ! 181: #define B134 0000004 ! 182: #define B150 0000005 ! 183: #define B200 0000006 ! 184: #define B300 0000007 ! 185: #define B600 0000010 ! 186: #define B1200 0000011 ! 187: #define B1800 0000012 ! 188: #define B2400 0000013 ! 189: #define B4800 0000014 ! 190: #define B9600 0000015 ! 191: #define B19200 0000016 ! 192: #define B38400 0000017 ! 193: #define EXTA B19200 ! 194: #define EXTB B38400 ! 195: #define CSIZE 0000060 ! 196: #define CS5 0000000 ! 197: #define CS6 0000020 ! 198: #define CS7 0000040 ! 199: #define CS8 0000060 ! 200: #define CSTOPB 0000100 ! 201: #define CREAD 0000200 ! 202: #define PARENB 0000400 ! 203: #define PARODD 0001000 ! 204: #define HUPCL 0002000 ! 205: #define CLOCAL 0004000 ! 206: #define CBAUDEX 0010000 ! 207: #define B57600 0010001 ! 208: #define B115200 0010002 ! 209: #define B230400 0010003 ! 210: #define CIBAUD 002003600000 /* input baud rate (not used) */ ! 211: #define CRTSCTS 020000000000 /* flow control */ ! 212: ! 213: /* c_lflag bits */ ! 214: #define ISIG 0000001 ! 215: #define ICANON 0000002 ! 216: #define XCASE 0000004 ! 217: #define ECHO 0000010 ! 218: #define ECHOE 0000020 ! 219: #define ECHOK 0000040 ! 220: #define ECHONL 0000100 ! 221: #define NOFLSH 0000200 ! 222: #define TOSTOP 0000400 ! 223: #define ECHOCTL 0001000 ! 224: #define ECHOPRT 0002000 ! 225: #define ECHOKE 0004000 ! 226: #define FLUSHO 0010000 ! 227: #define PENDIN 0040000 ! 228: #define IEXTEN 0100000 ! 229: ! 230: /* modem lines */ ! 231: #define TIOCM_LE 0x001 ! 232: #define TIOCM_DTR 0x002 ! 233: #define TIOCM_RTS 0x004 ! 234: #define TIOCM_ST 0x008 ! 235: #define TIOCM_SR 0x010 ! 236: #define TIOCM_CTS 0x020 ! 237: #define TIOCM_CAR 0x040 ! 238: #define TIOCM_RNG 0x080 ! 239: #define TIOCM_DSR 0x100 ! 240: #define TIOCM_CD TIOCM_CAR ! 241: #define TIOCM_RI TIOCM_RNG ! 242: ! 243: /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ ! 244: #define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ ! 245: ! 246: ! 247: /* tcflow() and TCXONC use these */ ! 248: #define TCOOFF 0 ! 249: #define TCOON 1 ! 250: #define TCIOFF 2 ! 251: #define TCION 3 ! 252: ! 253: /* tcflush() and TCFLSH use these */ ! 254: #define TCIFLUSH 0 ! 255: #define TCOFLUSH 1 ! 256: #define TCIOFLUSH 2 ! 257: ! 258: /* tcsetattr uses these */ ! 259: #define TCSANOW 0 ! 260: #define TCSADRAIN 1 ! 261: #define TCSAFLUSH 2 ! 262: ! 263: /* line disciplines */ ! 264: #define N_TTY 0 ! 265: #define N_SLIP 1 ! 266: #define N_MOUSE 2 ! 267: #define N_PPP 3 ! 268: ! 269: #ifdef __KERNEL__ ! 270: ! 271: #include <linux/string.h> ! 272: ! 273: /* ! 274: * Translate a "termio" structure into a "termios". Ugh. ! 275: */ ! 276: extern inline void trans_from_termio(struct termio * termio, ! 277: struct termios * termios) ! 278: { ! 279: #define SET_LOW_BITS(x,y) ((x) = (0xffff0000 & (x)) | (y)) ! 280: SET_LOW_BITS(termios->c_iflag, termio->c_iflag); ! 281: SET_LOW_BITS(termios->c_oflag, termio->c_oflag); ! 282: SET_LOW_BITS(termios->c_cflag, termio->c_cflag); ! 283: SET_LOW_BITS(termios->c_lflag, termio->c_lflag); ! 284: #undef SET_LOW_BITS ! 285: memcpy(termios->c_cc, termio->c_cc, NCC); ! 286: } ! 287: ! 288: /* ! 289: * Translate a "termios" structure into a "termio". Ugh. ! 290: */ ! 291: extern inline void trans_to_termio(struct termios * termios, ! 292: struct termio * termio) ! 293: { ! 294: termio->c_iflag = termios->c_iflag; ! 295: termio->c_oflag = termios->c_oflag; ! 296: termio->c_cflag = termios->c_cflag; ! 297: termio->c_lflag = termios->c_lflag; ! 298: termio->c_line = termios->c_line; ! 299: memcpy(termio->c_cc, termios->c_cc, NCC); ! 300: } ! 301: ! 302: #endif /* __KERNEL__ */ ! 303: ! 304: #endif /* _I386_TERMIOS_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.