*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: mpxio | Section: 5 | Source: UNIX v7 | File: mpxio.5
MPXIO(5) File Formats Manual MPXIO(5) NAME mpxio - multiplexed i/o SYNOPSIS #include <sys/mx.h> #include <sgtty.h> DESCRIPTION Data transfers on mpx files (see mpx(2)) are multiplexed by imposing a record structure on the io stream. Each record represents data from/to a particular channel or a control or status message associated with a particular channel. The prototypical data record read from an mpx file is as follows struct input_record { short index; short count; short ccount; char data[]; }; where index identifies the channel, and count specifies the number of characters in data. If count is zero, ccount gives the size of data, and the record is a control or status message. Although count or ccount might be odd, the operating system aligns records on short (i.e. 16-bit) boundaries by skipping bytes when necessary. Data written to an mpx file must be formatted as an array of record structures defined as follows struct output_record { short index; short count; short ccount; char *data; }; where the data portion of the record is referred to indirectly and the other cells have the same interpretation as in input_record. The control messages listed below may be read from a multiplexed file descriptor. They are presented as two 16-bit integers: the first num- ber is the message code (defined in <sys/mx.h>), the second is an op- tional parameter meaningful only with M_WATCH and M_BLK. M_WATCH - a process `wants to attach' on this channel. The second parameter is the 16-bit user-id of the process that executed the open. M_CLOSE - the channel is closed. This message is generated when the last file descriptor referencing a channel is closed. The detach command (see mpx(2) should be used in response to this message. M_EOT - indicates logical end of file on a channel. If the chan- nel is joined to a typewriter, EOT (control-d) will cause the M_EOT message under the conditions specified in tty(4) for end of file. If the channel is attached to a process, M_EOT will be generated whenever the process writes zero bytes on the channel. M_BLK - if non-blocking mode has been enabled on an mpx file de- scriptor xd by executing ioctl(xd, MXNBLK, 0), write opera- tions on the file are truncated in the kernel when internal queues become full. This is done on a per-channel basis: the parameter is a count of the number of characters not trans- ferred to the channel on which M_BLK is received. M_UBLK - is generated for a channel after M_BLK when the internal queues have drained below a threshold. Two other messages may be generated by the kernel. As with other mes- sages, the first 16-bit quantity is the message code. M_OPEN - is generated in conjunction with `listener' mode (see mpx(2)). The uid of the calling process follows the message code as with M_WATCH. This is followed by a null-terminated string which is the name of the file being opened. M_IOCTL - is generated for a channel connected to a process when that process executes the ioctl(fd, cmd, &vec) call on the channel file descriptor. The M_IOCTL code is followed by the cmd argument given to ioctl followed by the contents of the structure vec. It is assumed, not needing a better compro- mise at this time, that the length of vec is determined by sizeof (struct sgttyb) as declared in <sgtty.h>. Two control messages are understood by the operating system. M_EOT may be sent through an mpx file to a channel. It is equivalent to propa- gating a zero-length record through the channel; i.e. the channel is allowed to drain and the process or device at the other end receives a zero-length transfer before data starts flowing through the channel again. M_IOCTL can also be sent through a channel. The format is identical to that described above. MPXIO(5)

Navigation Options