pckt - STREAMS module for constructing message packets on
a pty
The pckt module is a STREAMS module that can be used with
a pseudoterminal to transfer messages in packet mode. The
packet mode feature of pty devices allows the user process
on the master side of the device to be informed of state
changes.
For packet mode to be enabled in the pty device, the user
process must push the pckt module onto the master side of
the pty with a call to the STREAMS I_PUSH ioctl() function.
When the user process writes data, the pckt module passes
the message on to the next module or driver unchanged.
When the user process reads data or when the pckt module
receives certain STREAMS message types, it constructs a
packet out of the message for forwarding upstream.
To construct a message packet, the module creates an
M_PROTO message. This M_PROTO message contains the original
message type in the first data block and the original
message in as many data blocks as needed. The user process
can then retrieve the M_PROTO message with a call to the
getmsg() function.
The STREAMS message types that the pckt module places in
packets, are the following:
M_DATA
M_IOCTL
M_PROTO
M_PCPROTO
M_FLUSH
M_START
M_STOP
M_STARTI
M_STOPI
M_READ
All other messages are passed unchanged upstream.
If the message is an M_FLUSH message, the pckt module
looks at the flag and takes the following actions: If the
flag is FLUSHW, the module changes it to FLUSHR before
creating the M_PROTO message, and passes the message
upstream. The module also sends an M_FLUSH message with
the FLUSHW flag set. If the flag is FLUSHR, the module
changes it to FLUSHW before creating the M_PROTO message,
and passes the message upstream. If the flag is FLUSHRW,
the module changes it to FLUSHW before creating the
M_PROTO message, and passes the message upstream. The module
also sends an M_FLUSH message with the FLUSHW flag
set.
Functions: getmsg(2), ioctl(2)
Interfaces: ldterm(7), ptem(7), streamio(7)
pckt(7)
[ Back ] |