ptem(7)ptem(7)NAMEptem - STREAMS pty (pesudo-terminal) Emulation module
SYNOPSISDESCRIPTION
is a STREAMS module that emulates a terminal when used in conjunction
with (STREAMS line discipline) and (STREAMS slave pty driver). The
module normally sits above and below The user process must push the
module onto the slave side of the pty with a call to the STREAMS
ioctl(2) system call before is pushed. is responsible for processing
all of the terminal commands that are passed downstream from or from
(STREAMS pty master driver).
and together provide a real terminal behavior for the STREAMS pty
slave. However, some of the terminal commands are ignored and cause
only an acknowledgement of the command since there is no real terminal
or modem in the pty subsystem. In fact, none of the flags in the field
of the or structures, (which is used by the or respectively), have any
effect on the pty except if the baud rate is set to zero. Setting the
baud rate to zero will have the effect of hanging up the pty connec‐
tion. Similarly, the parity or delay flags in the field will not have
any effect at all on the pty.
As a summary, the module performs the following tasks:
· The following are processed, if appropriate, and acknowledged
by sending an message upstream when they are received on
write queue:
and
· Keeps track of the window size needed for the and
· Upon receiving any other on its write queue, acknowledges
them negatively by sending an message upstream.
· The following are passed downstream by after they have been
processed:
and
· Any message that is received on read queue will be freed in
case the module is not pushed on the and the above get to the
pty master STREAMS head, which would then send an message
downstream.
· When is opened and all conditions for setting up a control‐
ling terminal are met, it sends an message (with the flag
set) upstream to the STREAMS head to allocate a controlling
terminal.
· Upon receiving an message of type on its read queue, sends an
message downstream and an message upstream.
· When an message is received on its write queue to set the
baud rate to zero (e.g. with CBAUD set to B0), sends an mes‐
sage upstream and a zero-length message downstream to be read
by the pty master process.
· When an message of type is received on its read queue, sends
an message downstream and an message upstream with the signal
number set to the same value used in the message.
· When an message of type is received on its read queue, sends
an message downstream and an message (with ioc_cmd set to or
upstream to enable or disable the input processing on
· When an message is received on its read or write queue, sim‐
ply discards the message without any action.
· When an message of type is received on its write queue and if
the values in the structure in are not zero, sends an message
upstream with the structure. If the values are zero, sends
an message upstream.
· When an message of type is received on its write queue and if
the values in the structure in are not zero, sends an message
upstream with the structure. If the values are zero, sends
an message upstream.
· When an message of type is received in its write queue, saves
the information passed to it in the structure and sends an
(with the signal number set to upstream to the pty slave
process if the window size is changed.
· When an message of type is received on its read queue and if
the values in the structure in are not zero, sends an message
downstream with the structure. If the values are zero, sends
an message downstream.
· When an message of type is received in its read queue, saves
the information passed to it in the structure and sends an
(with the signal number is set to upstream to the pty slave
process if the window size is changed.
· All other messages not mentioned above are passed to the next
module or driver.
AUTHOR
was developed by HP.
SEE ALSOioctl(2), streamio(7), ptm(7), pts(7), ldterm(7).
ptem(7)