|
|
1.1 ! root 1: .\" Copyright (c) 1986 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)sys.tty.t 1.7 (Berkeley) 4/11/86 ! 6: .\" ! 7: .NH 2 ! 8: Changes in the terminal line disciplines ! 9: .XP tty.c ! 10: The kernel maintains the terminal or window size in the tty structure ! 11: and provides \fIioctl\fP\^s to set and get these values. ! 12: The window size is cleared on final close. ! 13: The sizes include rows and columns in characters ! 14: and may include X and Y dimensions in pixels where that is meaningful. ! 15: The kernel makes no use of these values, but they are stored here ! 16: to provide a consistent way to determine the current size. ! 17: When a new value is set, a SIGWINCH signal is sent to the process group ! 18: associated with the terminal. ! 19: .XP ! 20: The notions of line discipline exit and final close have been separated. ! 21: \fITtyclose\fP is used only at final close, while \fIttylclose\fP ! 22: is provided for closing down a discipline. ! 23: Modem control transitions are handled more cleanly ! 24: by moving the common code from the terminal hardware drivers ! 25: into the line disciplines; the \fIl_modem\fP entry in the \fIlinesw\fP ! 26: is now used for this purpose. ! 27: \fITtymodem\fP handles carrier transitions for the standard disciplines; ! 28: \fInullmodem\fP is provided for disciplines with minimal requirements. ! 29: .XP ! 30: A new mode, LPASS8, was added to support 8-bit input in normal modes; ! 31: it is the input analog of LLITOUT. ! 32: An entry point, \fIcheckoutq\fP, has been added to enable internal ! 33: output operations (\fIuprintf\fP, \fItprintf\fP) to check for output overflow ! 34: and optionally to block to wait for space. ! 35: Certain operations are handled more carefully than before: ! 36: the use of the TIOCSTI \fIioctl\fP requires read permission on the terminal, ! 37: and SPGRP is disallowed if the group corresponds with another user's ! 38: process. ! 39: \fITtread\fP and \fIttwrite\fP both check for carrier drop when ! 40: restarting after a sleep. ! 41: An off-by-one consistency check of \fIuio_iovcnt\fP ! 42: in \fIttwrite\fP was corrected. ! 43: A bug was fixed that caused data to be flushed ! 44: when opening a terminal that was already open when using the ``old'' ! 45: line discipline. ! 46: \fISelect\fP now returns true for reading if carrier has been lost. ! 47: While changing line disciplines, interrupts must be disabled until ! 48: the change is complete or is backed out. ! 49: If changing to the same discipline, the close and reopen (and probable ! 50: data flush) are avoided. ! 51: The \fIt_delct\fP field in the tty structure was not used and has been deleted. ! 52: .XP tty_conf.c ! 53: The line discipline close entries that used \fIttyclose\fP ! 54: now use \fIttylclose\fP. ! 55: The two tablet disciplines have been combined. ! 56: A new entry was added for a Serial-Line link-layer encapsulation for the ! 57: Internet Protocol, SLIPDISC. ! 58: .XP tty_pty.c ! 59: Large sections of the pseudo-tty driver have been reworked to improve ! 60: performance and to avoid ! 61: races when one side closed, which subsequently hung pseudo-terminals. ! 62: The line-discipline modem control routine is called to clean up ! 63: when the master closes. ! 64: Problems with REMOTE mode and non-blocking I/O were fixed by using the ! 65: raw queue ! 66: rather than the cannonicalized queue. ! 67: A new mode was added to allow a small set of commands to be passed ! 68: to the pty master from the slave as a rudimentary type of \fIioctl\fP, ! 69: in a manner analogous to that of PKT mode. ! 70: Using this mode or PKT mode, a \fIselect\fP for exceptional ! 71: conditions on the master ! 72: side of a pty returns true when a command operation is available to be read. ! 73: \fISelect\fP for writing on the master side has been corrected, ! 74: and now uses the same criteria as \fIptcwrite\fP. ! 75: As the pty driver depends on normal operation of the tty queues, ! 76: it no longer permits changes to non-tty line disciplines. ! 77: .XP tty_subr.c ! 78: The \fIclist\fP support routines have been modified to use block moves ! 79: instead of \fIgetc/putc\fP wherever possible. ! 80: .XP tty_tablet.c ! 81: The two line disciplines have been merged and a number of new ! 82: tablet types are supported. ! 83: Tablet type and operating mode are now set by \fIioctl\fP\^s. ! 84: Tablets that continuously stream data are now told to stop ! 85: sending on last close.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.