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