|
|
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.