summaryrefslogtreecommitdiff
path: root/static/v10/man5/mpxio.5
diff options
context:
space:
mode:
Diffstat (limited to 'static/v10/man5/mpxio.5')
-rw-r--r--static/v10/man5/mpxio.5187
1 files changed, 0 insertions, 187 deletions
diff --git a/static/v10/man5/mpxio.5 b/static/v10/man5/mpxio.5
deleted file mode 100644
index 11479a8e..00000000
--- a/static/v10/man5/mpxio.5
+++ /dev/null
@@ -1,187 +0,0 @@
-.TH MPXIO 5
-.UC 4
-.SH NAME
-mpxio \- multiplexed i/o
-.SH SYNOPSIS
-.B #include <sys/mx.h>
-.PP
-.B #include <sgtty.h>
-.SH DESCRIPTION
-Data transfers on
-mpx files
-(see
-.IR 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.
-.PP
-The prototypical data record read from an mpx file is as follows
-.PP
-.in +.5i
-.nf
-struct input_record {
- short index;
- short count;
- short ccount;
- char data[];
-};
-.PP
-.fi
-where
-.I index
-identifies the channel,
-and
-.I count
-specifies the number of characters in
-.I data.
-If
-.I count
-is zero,
-.I ccount
-gives the size of
-.I data,
-and the record is a control or status message.
-Although
-.I count
-or
-.I ccount
-might be odd,
-the operating system aligns records
-on short (i.e. 16\-bit) boundaries
-by skipping bytes when necessary.
-.PP
-Data written to an mpx file must be formatted as an array
-of record structures defined as follows
-.PP
-.in +.5i
-.nf
-struct output_record {
- short index;
- short count;
- short ccount;
- char *data;
-};
-.fi
-.PP
-where the data portion of the record is referred
-to indirectly and the other cells have the same interpretation
-as in
-.I input_record.
-.PP
-The
-control messages listed below may be read from
-a multiplexed file descriptor.
-They are presented as two 16-bit integers:
-the first number is the message code
-(defined in
-.IR <sys/mx.h> ),
-the second is an optional parameter meaningful
-only with M_WATCH, M_BLK, and M_SIG.
-.PP
-.TP "\w'M_WATCH 'u"
-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.
-.TP
-M_CLOSE
-the channel is closed.
-This message is generated when the last
-file descriptor referencing
-a channel is closed.
-The
-.I detach
-command
-(see
-.IR mpx (2)
-should be used in response to this message.
-.TP
-M_EOT
-indicates logical end of file on a channel.
-If the channel is joined to a typewriter,
-EOT (control-d)
-will cause the M_EOT message
-under the conditions specified in
-.IR 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.
-.TP
-M_BLK
-if non-blocking mode has been enabled on an
-mpx file descriptor
-.I xd
-by executing
-.IR "ioctl(xd, MXNBLK, 0)" ,
-write operations 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 transferred to the channel on which
-M_BLK is received.
-.TP
-M_UBLK
-is generated for a channel
-after M_BLK when the internal queues have
-drained below a threshold.
-.TP
-M_SIG
-is generated instead of a normal asynchronous
-signal on channels that are joined to typewriters.
-The parameter is the signal number.
-.PP
-Two other messages may be generated by the kernel.
-As with other messages, the first
-16-bit quantity is the message code.
-.br
-.TP "\w'M_IOCTL 'u"
-M_OPEN
-is generated in conjunction with
-`listener' mode (see
-.IR 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.
-.TP
-M_IOCTL
-is generated for a channel connected
-to a process
-when that process executes the
-.I "ioctl(fd, cmd, &vec)"
-call on the channel file descriptor.
-The M_IOCTL code is followed by
-the
-.I cmd
-argument given to
-.I ioctl
-followed by
-the contents of the structure
-.I vec.
-It is assumed,
-not needing a better compromise at this time,
-that the length of
-.I vec
-is determined by
-.I "sizeof (struct sgttyb)"
-as declared in
-.IR <sgtty.h> .
-.in -1i
-.PP
-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 propagating 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_IOANS can also be sent through a channel to reply to a M_IOCTL.
-The format is identical to that received from M_IOCTL.
-.SH SEE ALSO
-mpx(2)