diff options
Diffstat (limited to 'static/netbsd/man4/pty.4')
| -rw-r--r-- | static/netbsd/man4/pty.4 | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/static/netbsd/man4/pty.4 b/static/netbsd/man4/pty.4 new file mode 100644 index 00000000..dfb4a931 --- /dev/null +++ b/static/netbsd/man4/pty.4 @@ -0,0 +1,269 @@ +.\" $NetBSD: pty.4,v 1.15 2013/12/01 00:17:14 christos Exp $ +.\" +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)pty.4 8.2 (Berkeley) 11/30/93 +.\" +.Dd November 30, 2013 +.Dt PTY 4 +.Os +.Sh NAME +.Nm pty +.Nd pseudo terminal driver +.Sh SYNOPSIS +.Cd pseudo-device pty +.Sh DESCRIPTION +The +.Nm +driver provides support for a device-pair termed a +.Em pseudo terminal . +A pseudo terminal is a pair of character devices, a +.Em master +device and a +.Em slave +device. +The slave device provides to a process an interface identical to +that described in +.Xr tty 4 . +However, whereas all other devices which provide the interface described in +.Xr tty 4 +have a hardware device of some sort behind them, the slave device +has, instead, another process manipulating it through the master +half of the pseudo terminal. +That is, anything written on the master device is given to the +slave device as input and anything written on the slave device is +presented as input on the master device. +.Pp +Pseudo terminal pairs are allocated on +as-needed basis, maximum number of them is controlled via +.Em kern.maxptys +sysctl (defaults to 992). +.Pp +The following +.Xr ioctl 2 +calls apply only to pseudo terminals: +.Bl -tag -width TIOCREMOTE +.It Dv TIOCEXT +Enable/disable +.Dq "external processing" . +This affects delivery of +.Dv TIOCPKT_IOCTL +packets. +External processing is enabled by specifying (by reference) a nonzero +.Vt int +parameter and disabled by specifying (by reference) a zero +.Vt int +parameter. +.Pp +.Dv TIOCEXT +is reset to its default (disabled) when the slave closes the +.Nm . +.It Dv TIOCSTOP +Stops output to a terminal (e.g. like typing +.Ql ^S ) . +Takes +no parameter. +.It Dv TIOCSTART +Restarts output (stopped by +.Dv TIOCSTOP +or by typing +.Ql ^S ) . +Takes no parameter. +.It Dv TIOCPKT +Enable/disable +.Em packet +mode. +Packet mode is enabled by specifying (by reference) a nonzero +.Vt int +parameter and disabled by specifying (by reference) a zero +.Vt int +parameter. +When applied to the master side of a pseudo +terminal, each subsequent +.Xr read 2 +from the terminal will return data written on the slave part of +the pseudo terminal preceded by a zero byte (symbolically +defined as +.Dv TIOCPKT_DATA ) , +or a single byte reflecting control status information. +In the latter case, the byte is an inclusive-or +of zero or more of the bits: +.Bl -tag -width TIOCPKT_FLUSHWRITE +.It Dv TIOCPKT_FLUSHREAD +whenever the read queue for the terminal is flushed. +.It Dv TIOCPKT_FLUSHWRITE +whenever the write queue for the terminal is flushed. +.It Dv TIOCPKT_STOP +whenever output to the terminal is stopped a la +.Ql ^S . +.It Dv TIOCPKT_START +whenever output to the terminal is restarted. +.It Dv TIOCPKT_DOSTOP +whenever +.Em t_stopc +is +.Ql ^S +and +.Em t_startc +is +.Ql ^Q . +.It Dv TIOCPKT_NOSTOP +whenever the start and stop characters are not +.Ql ^S/^Q . +.Pp +While this mode is in use, the presence of control status information +to be read from the master side may be detected by a +.Xr select 2 +for exceptional conditions. +.Pp +This mode is used by +.Xr rlogin 1 +and +.Xr rlogind 8 +to implement a remote-echoed, locally +.Ql ^S/^Q +flow-controlled +remote login with proper back-flushing of output; it can be +used by other similar programs. +.It Dv TIOCPKT_IOCTL +When this bit is set, the slave has changed the +.Xr termios 4 +structure (TTY state), +and the remainder of the data read from +the master side of the +.Nm +is the new +.Xr termios 4 +structure. +The master side of the +.Nm +can also use +.Xr tcgetattr 3 +to read the new +.Xr termios 4 +structure. +.Pp +The master will not read packets with the bit +.Dv TIOCPKT_IOCTL +set until it has activated +.Dq "external processing" +using +.Dv TIOCEXT . +.Pp +This is used by +.Xr telnetd 8 +to implement TELNET "line mode" - it allows the +.Xr telnetd 8 +to detect +.Xr tty 4 +state changes by the slave, and negotiate the appropriate TELNET +protocol equivalents with the remote peer. +.El +.It Dv TIOCUCNTL +Enable/disable a mode that allows a small number of simple user +.Xr ioctl 2 +commands to be passed through the pseudo-terminal, +using a protocol similar to that of +.Dv TIOCPKT . +The +.Dv TIOCUCNTL +and +.Dv TIOCPKT +modes are mutually exclusive. +This mode is enabled from the master side of a pseudo terminal +by specifying (by reference) +a nonzero +.Vt int +parameter and disabled by specifying (by reference) +a zero +.Vt int +parameter. +Each subsequent +.Xr read 2 +from the master side will return data written on the slave part of +the pseudo terminal preceded by a zero byte, +or a single byte reflecting a user control operation on the slave side. +A user control command consists of a special +.Xr ioctl 2 +operation with no data; the command is given as +.Dv UIOCCMD Ns (n) , +where +.Ar n +is a number in the range 1-255. +The operation value +.Ar n +will be received as a single byte on the next +.Xr read 2 +from the master side. +The +.Xr ioctl 2 +.Dv UIOCCMD Ns (0) +is a no-op that may be used to probe for +the existence of this facility. +As with +.Dv TIOCPKT +mode, command operations may be detected with a +.Xr select 2 +for exceptional conditions. +.It Dv TIOCREMOTE +A mode for the master half of a pseudo terminal, independent +of +.Dv TIOCPKT . +This mode causes input to the pseudo terminal to be flow controlled +and not input edited (regardless of the terminal mode). +Each write to the control terminal produces a record boundary for +the process reading the terminal. +In normal usage, a write of data is like the data typed as a line +on the terminal; a write of 0 bytes is like typing an end-of-file +character. +.Dv TIOCREMOTE +can be used when doing remote line +editing in a window manager, or whenever flow controlled input +is required. +.El +.Sh FILES +.Bl -tag -width /dev/tty[p-zP-T][0-9a-zA-Z]x -compact +.It Pa /dev/pty[p-zP-T][0-9a-zA-Z] +master pseudo terminals +.It Pa /dev/tty[p-zP-T][0-9a-zA-Z] +slave pseudo terminals +.El +.Sh DIAGNOSTICS +None. +.Sh SEE ALSO +.Xr ioctl 2 , +.Xr read 2 , +.Xr select 2 , +.Xr write 2 , +.Xr openpty 3 , +.Xr tty 4 +.Sh HISTORY +The +.Nm +driver appeared in +.Bx 4.2 . |
