datapipe(5)
datapipe - peer-to-peer data transfer between hardware devices.
Showing IRIX 6.5.30 (default release). Unchanged since IRIX 6.5.
NAME datapipe - peer-to-peer data transfer between hardware devices. 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. 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. 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 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. 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 <sys/datapipe_events.h>. Once a data pipe is created, we can make bandwidth allocation through priority I/O mechanism on the data pipe file descriptor (prio(5)). SEE ALSO datapipe(3X), prio(5), prio(3X)