|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Version 4.0 ! 3: * Copyright (c) 1982, 1993 by Mark Williams Company. ! 4: * All rights reserved. May not be copied without permission. ! 5: -lgl) */ ! 6: /* ! 7: * Terminal ioctl. ! 8: * This is an ibm-pc special case file, many of these ioctls apply ! 9: * only to the pc console and pc asynchronous ports. ! 10: */ ! 11: ! 12: #ifndef __SGTTY_H__ ! 13: #define __SGTTY_H__ ! 14: ! 15: #include <sys/types.h> ! 16: ! 17: /* ! 18: ******************************* ! 19: * ! 20: * 386 version ! 21: * ! 22: ******************************* ! 23: */ ! 24: #ifdef _I386 ! 25: /* ! 26: * Ioctl functions. ! 27: */ ! 28: #define TIOCHPCL ('t'<<8|2) /* Hang up on last close */ ! 29: #define TIOCGETP ('t'<<8|8) /* Terminal get modes (old gtty) */ ! 30: #define TIOCSETP ('t'<<8|9) /* Terminal set modes (old stty) */ ! 31: #define TIOCSETN ('t'<<8|10) /* Set modes w/o delay or out flush */ ! 32: #define TIOCEXCL ('t'<<8|13) /* Set exclusive use */ ! 33: #define TIOCNXCL ('t'<<8|14) /* Set non-exclusive use */ ! 34: #define TIOCFLUSH ('t'<<8|16) /* Flush characters in I/O queues */ ! 35: #define TIOCSETC ('t'<<8|17) /* Set characters */ ! 36: #define TIOCGETC ('t'<<8|18) /* Get characters */ ! 37: ! 38: /* ! 39: * Structure for TIOVGETB/TIOVPUTB ! 40: */ ! 41: struct vidctl { ! 42: short v_position; /* Position in video memory */ ! 43: short v_count; /* Number of characters to transfer */ ! 44: short v_buffer; /* Character buffer to read/write */ ! 45: }; ! 46: ! 47: /* ! 48: * stty/gtty modes. ! 49: */ ! 50: #define XTABS 0x0002 /* Expand tabs to spaces */ ! 51: #define LCASE 0x0004 /* Lowercase mapping on input */ ! 52: #define ECHO 0x0008 /* Echo input characters */ ! 53: #define CRMOD 0x0010 /* Map '\r' to '\n' */ ! 54: #define RAW 0x0020 ! 55: #define ODDP 0x0040 /* Allow odd parity */ ! 56: #define EVENP 0x0080 /* Allow even parity */ ! 57: #define ANYP 0x00C0 /* Allow any parity */ ! 58: ! 59: /* ! 60: * The following are not part of S5 sgtty. ! 61: * They are here to allow compilation of old V7 sources. ! 62: */ ! 63: #define CBREAK 0x010000 /* Each input character causes wakeup */ ! 64: #define TANDEM 0x020000 /* flow control protocol */ ! 65: #define CRT 0x040000 /* CRT character erase */ ! 66: #define RAWIN 0x080000 ! 67: #define RAWOUT 0x100000 ! 68: ! 69: /* ! 70: * Names for terminal speeds. ! 71: */ ! 72: #define B0 0 /* Hangup if modem control enabled */ ! 73: #define B50 1 /* 50 bps */ ! 74: #define B75 2 /* 75 bps */ ! 75: #define B110 3 /* 110 bps */ ! 76: #define B134 4 /* 134.5 bps (IBM 2741) */ ! 77: #define B150 5 /* 150 bps */ ! 78: #define B200 6 /* 200 bps */ ! 79: #define B300 7 /* 300 bps */ ! 80: #define B600 8 /* 600 bps */ ! 81: #define B1200 9 /* 1200 bps */ ! 82: #define B1800 10 /* 1800 bps */ ! 83: #define B2400 11 /* 2400 bps */ ! 84: #define B4800 12 /* 4800 bps */ ! 85: #define B9600 13 /* 9600 bps */ ! 86: #define B19200 14 /* 19200 bps */ ! 87: #define B38400 15 ! 88: #define EXTA 14 ! 89: #define EXTB 15 ! 90: #else ! 91: /* ! 92: ******************************* ! 93: * ! 94: * 286 version ! 95: * ! 96: ******************************* ! 97: */ ! 98: ! 99: /* ! 100: * Ioctl functions. ! 101: */ ! 102: #define TIOCSETP 0100 /* Terminal set modes (old stty) */ ! 103: #define TIOCGETP 0101 /* Terminal get modes (old gtty) */ ! 104: #define TIOCSETC 0102 /* Set characters */ ! 105: #define TIOCGETC 0103 /* Get characters */ ! 106: #define TIOCSETN 0104 /* Set modes w/o delay or out flush */ ! 107: #define TIOCEXCL 0105 /* Set exclusive use */ ! 108: #define TIOCNXCL 0106 /* Set non-exclusive use */ ! 109: #define TIOCHPCL 0107 /* Hang up on last close */ ! 110: #define TIOCFLUSH 0110 /* Flush characters in I/O queues */ ! 111: ! 112: /* ! 113: * Compatibility with gtty and stty. ! 114: */ ! 115: #define stty(u,v) ioctl(u,TIOCSETP,v) ! 116: #define gtty(u,v) ioctl(u,TIOCGETP,v) ! 117: ! 118: /* ! 119: * Structure for TIOVGETB/TIOVPUTB ! 120: */ ! 121: struct vidctl { ! 122: int v_position; /* Position in video memory */ ! 123: int v_count; /* Number of characters to transfer */ ! 124: char *v_buffer; /* Character buffer to read/write */ ! 125: }; ! 126: ! 127: /* ! 128: * Bits from old stty/gtty modes. ! 129: */ ! 130: #define EVENP 01 /* Allow even parity */ ! 131: #define ODDP 02 /* Allow odd parity */ ! 132: #define ANYP 03 /* Allow any parity */ ! 133: #define CRMOD 04 /* Map '\r' to '\n' */ ! 134: #define ECHO 010 /* Echo input characters */ ! 135: #define LCASE 020 /* Lowercase mapping on input */ ! 136: #define CBREAK 040 /* Each input character causes wakeup */ ! 137: #define RAWIN 0100 /* 8-bit input raw */ ! 138: #define RAWOUT 0200 /* 8-bit output raw */ ! 139: #define TANDEM 0400 /* flow control protocol */ ! 140: #define XTABS 01000 /* Expand tabs to spaces */ ! 141: #define CRT 02000 /* CRT character erase */ ! 142: ! 143: /* ! 144: * Compatibility. ! 145: */ ! 146: #define RAW (RAWIN|RAWOUT) /* Raw mode */ ! 147: ! 148: /* ! 149: * Names for terminal speeds. ! 150: */ ! 151: #define B0 0 /* Hangup if modem control enabled */ ! 152: #define B50 1 /* 50 bps */ ! 153: #define B75 2 /* 75 bps */ ! 154: #define B110 3 /* 110 bps */ ! 155: #define B134 4 /* 134.5 bps (IBM 2741) */ ! 156: #define B150 5 /* 150 bps */ ! 157: #define B200 6 /* 200 bps */ ! 158: #define B300 7 /* 300 bps */ ! 159: #define B600 8 /* 600 bps */ ! 160: #define B1200 9 /* 1200 bps */ ! 161: #define B1800 10 /* 1800 bps */ ! 162: #define B2000 11 /* 2000 bps */ ! 163: #define B2400 12 /* 2400 bps */ ! 164: #define B3600 13 /* 3600 bps */ ! 165: #define B4800 14 /* 4800 bps */ ! 166: #define B7200 15 /* 7200 bps */ ! 167: #define B9600 16 /* 9600 bps */ ! 168: #define B19200 17 /* 19200 bps */ ! 169: #define EXTA 18 /* External A (DH-11) */ ! 170: #define EXTB 19 /* External B (DH-11) */ ! 171: #endif ! 172: ! 173: /* ! 174: ******************************* ! 175: * ! 176: * Common definitions for 286/386 versions ! 177: * ! 178: ******************************* ! 179: */ ! 180: #define TIOCCHPCL 0111 /* Don't hang up on last close */ ! 181: #define TIOCGETTF 0112 /* Get tty flag word */ ! 182: #define TIOCBREAD 0113 /* Blocking read in CBREAK/RAW mode */ ! 183: #define TIOCCBREAD 0114 /* Turn off TIOCBREAD */ ! 184: #define TIOCSHIFT 0115 /* Switch console left-SHIFT & "\" */ ! 185: #define TIOCCSHIFT 0116 /* Normal console left-SHIFT & "\" */ ! 186: ! 187: #define TIOCQUERY 0120 /* No. of chars waiting for read */ ! 188: ! 189: #define TIOCSETG 0130 /* Set tty process group */ ! 190: ! 191: #define TIOCGETF 0200 /* Get function keys (dev. dep.) */ ! 192: #define TIOCSETF 0201 /* Set function keys (dev. dep.) */ ! 193: #define TIOCGETKBT 0202 /* Get keyboard table (dev. dep.) */ ! 194: #define TIOCSETKBT 0203 /* Set keyboard table (dev. dep.) */ ! 195: ! 196: /* misc. functions */ ! 197: ! 198: #define TIOCSDTR 0301 /* Set DTR */ ! 199: #define TIOCCDTR 0302 /* Clear DTR */ ! 200: #define TIOCSRTS 0303 /* Set RTS */ ! 201: #define TIOCCRTS 0304 /* Clear RTS */ ! 202: #define TIOCSBRK 0305 /* Set BREAK */ ! 203: #define TIOCCBRK 0306 /* Clear BREAK */ ! 204: ! 205: #define TIOCRSPEED 0320 /* Set "raw" line I/O speed divisor */ ! 206: #define TIOCWORDL 0321 /* Set line word length and stop bits */ ! 207: ! 208: #define TIOCRMSR 0400 /* Get CTS/DSR/RI/RLSD (MSR) */ ! 209: ! 210: #define TIOVGETB 0500 /* Read video memory */ ! 211: #define TIOVPUTB 0501 /* Write video memory */ ! 212: ! 213: /* ! 214: * Bits for TIOCRMSR. ! 215: */ ! 216: ! 217: #define MSRCTS 1 /* Clear to Send */ ! 218: #define MSRDSR 2 /* Data Set Ready */ ! 219: #define MSRRI 4 /* Ring Indicator */ ! 220: #define MSRRLSD 8 /* Received Line Signal Detect */ ! 221: ! 222: /* ! 223: * Attribute masks for TIOVPUTB - attributes occupy odd addresses ! 224: * in video memory. ! 225: */ ! 226: #define VNORM 0x07 /* Ordinary Video */ ! 227: #define VINTE 0x08 /* Intense video */ ! 228: #define VBLIN 0x80 /* Blinking video */ ! 229: #define VREVE 0x70 /* Reverse video */ ! 230: #define VUNDE 0x01 /* Underline video (mono board) */ ! 231: ! 232: /* ! 233: * Structure for TIOCSETP/TIOCGETP ! 234: */ ! 235: struct sgttyb { ! 236: char sg_ispeed; /* Input speed */ ! 237: char sg_ospeed; /* Output speed */ ! 238: char sg_erase; /* Character erase */ ! 239: char sg_kill; /* Line kill character */ ! 240: int sg_flags; /* Flags */ ! 241: }; ! 242: ! 243: /* ! 244: * Structure for TIOCSETC/TIOCGETC ! 245: */ ! 246: struct tchars { ! 247: char t_intrc; /* Interrupt */ ! 248: char t_quitc; /* Quit */ ! 249: char t_startc; /* Start output */ ! 250: char t_stopc; /* Stop output */ ! 251: char t_eofc; /* End of file */ ! 252: char t_brkc; /* Input delimiter */ ! 253: }; ! 254: ! 255: /* ! 256: * Overlying structure for ioctl. ! 257: */ ! 258: union ioctl { ! 259: struct sgttyb io_sgttyb; ! 260: struct tchars io_tchars; ! 261: struct vidctl io_vidctl; ! 262: }; ! 263: ! 264: ! 265: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.