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:
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). delim off