1
0
Files
irix-657m-src/eoe/man/man5/datapipe.5
2022-09-29 17:59:04 +03:00

48 lines
2.1 KiB
Groff

'\"!tbl|mmdoc
'\"macro stdmacro
.TH datapipe 5
.SH NAME
datapipe \- peer-to-peer data transfer between hardware devices.
.SH DESCRIPTION
Data pipes are dynamic connections between two hardware devices
that support peer-to-peer data transfers. These connections are created by an
application to process a data stream from a source device to a sink device.
The purpose is to have minimum system impact during I/O operations.
.PP
Data is moved in sized quanta from source to sink. Each transfer of a
quantum of data is assumed to be atomic with respect to both drivers
and application APIs.
When data is moved at the hardware level, addresses are provided and data
is either read or written. If a device can provide addresses, it is
called a bus master; if a device can accept addresses, it is called
a bus slave. A bus slave stores data in the write case or provides
data in the read case. A device can be both a bus master or a bus slave.
Host memory is a most common case of a bus slave.
.PP
Each device has a number of common attributes that are used
by the data pipe driver to decide whether a data pipe can be created
between the two devices. If so, each driver (the data pipe driver, and the
two pipe ends) will create an event queue
for the pipe. Once the pipe is created, all key interactions with the
data pipe are done by posting events to the event queue. Pipe events are
the primary means
for the setup and management of data pipes. Each driver within a data pipe
can post an event into the other drivers' event queue. The application also
can post events to a particular queue via
.B dpipePostEvent(3x).
When an application posts an event, it must specify which
queue the event is posted to. Not every event can be posted to
all queues.
.PP
A set of base events must be supported by each involved device.
Individual devices can have their own expanded set of events. The data
structure of the base events are in
.I <sys/datapipe_events.h>.
.PP
Once a data pipe is created, we can make bandwidth allocation through
priority I/O mechanism on the data pipe file descriptor (prio(5)).
.SH SEE ALSO
datapipe(3X),
prio(5),
prio(3X)