The ptem module must be pushed [see I_PUSH, streamio(7)] onto the slave side of a pseudo terminal STREAM, before the ldterm module is pushed.
On the write-side, the
TCSETA,
TCSETAF,
TCSETAW,
TCGETA,
TCSETS,
TCSETSW,
TCSETSF,
TCGETS,
TCSBRK,
JWINSIZE,
TIOCGWINSZ,
and
TIOCSWINSZ
termio
ioctl(2)
messages are processed and acknowledged.
A hang up (such as stty 0) is converted to
a zero length M_DATA message
and passed downstream.
termio cflags
window row and column information are stored locally
one per stream.
M_DELAY messages are discarded.
All other messages are passed downstream unmodified.
On the read-side all messages are passed upstream unmodified with the following exceptions. All M_READ and M_DELAY messages are freed in both directions. An ioctl TCSBRK is converted to an M_BREAK(D7str) message and passed upstream and an acknowledgement is returned downstream. An ioctl TIOCSIGNAL is converted into an M_PCSIG(D7str) message, and passed upstream and an acknowledgement is returned downstream. Finally an ioctl TIOCREMOTE is converted into an M_CTL(D7str) message, acknowledged, and passed upstream.