PTEM(4M) STREAMS Modules PTEM(4M)
NAME
ptem - STREAMS Pseudo-Terminal Emulation module
SYNOPSIS
#include <unistd.h> #include <stropts.h> int ioctl(
int fildes, I_PUSH, "ptem");
DESCRIPTION
ptem is a STREAMS module that emulates a terminal device when used in
conjunction with the line discipline,
ldterm(4M), and the pseudo
terminal driver,
ptm(4D).
The
ptem module must be pushed (see I_PUSH in
streamio(4I)) onto the
subsidiary device of a pseudo-terminal STREAM, before the
ldterm(4M) module is pushed.
Write-side Behaviour The TCSETA, TCSETAF, TCSETAW, TCGETA, TCSETS, TCSETSW, TCSETSF, TCGETS,
TCSBRK, JWINSIZE, TIOCGWINSZ, and TIOCSWINSZ
termio(4I) ioctl(2) messages are processed and acknowledged.
If
remote mode is not in effect,
ptem handles the TIOCSTI ioctl by
copying the argument bytes into an M_DATA message and passing it back
up the read side. Regardless of the
remote mode setting,
ptem acknowledges the ioctl and passes a copy of it downstream for possible
further processing.
A hang up (e.g.,
stty 0) is converted to a zero length M_DATA message
and passed downstream.
termio(4I) cflags and window row and column
information are stored locally, one per stream. M_DELAY messages are
discarded.
All other messages are passed downstream unmodified.
Read-side Behaviour All messages are passed upstream unmodified with the following
exceptions:
+o All M_READ and M_DELAY messages are freed in both directions.
+o A TCSBRK ioctl is converted to an M_BREAK message and passed
upstream and an acknowledgement is returned downstream.
+o A TIOCSIGNAL ioctl is converted into an M_PCSIG message, passed
upstream, and an acknowledgement is returned downstream.
+o A TIOCREMOTE ioctl is converted into an M_CTL message,
acknowledged, and passed upstream; the resulting mode is retained
for use in subsequent TIOCSTI parsing.
SEE ALSO
stty(1),
ioctl(2),
streamio(4I),
termio(4I),
ldterm(4M),
pckt(4M)illumos February 5, 2022 illumos