| PTEM(4M) | STREAMS Modules | PTEM(4M) |
ptem — STREAMS
Pseudo-Terminal Emulation module
#include
<unistd.h>
#include <stropts.h>
int
ioctl(int fildes,
I_PUSH, "ptem");
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.
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.
All messages are passed upstream unmodified with the following exceptions:
M_READ and M_DELAY
messages are freed in both directions.TCSBRK ioctl is converted to an
M_BREAK message and passed upstream and an
acknowledgement is returned downstream.TIOCSIGNAL ioctl is converted into an
M_PCSIG message, passed upstream, and an
acknowledgement is returned downstream.TIOCREMOTE ioctl is converted into an
M_CTL message, acknowledged, and passed upstream;
the resulting mode is retained for use in subsequent
TIOCSTI parsing.stty(1), ioctl(2), streamio(4I), termio(4I), ldterm(4M), pckt(4M)
| February 5, 2022 | OmniOS |