rle_pipe_mem(3) CLIX rle_pipe_mem(3)
NAME
rle_pipe_mem, rle_pipe_mem_nw - Run length encodes (RLE) from pipe to
memory
LIBRARY
Intergraph Device Library (libix.a)
SYNOPSIS
#include <sys/xio/xerr.h>
#include <sys/xio/xio.h>
int rle_pipe_mem(
int channel ,
char *dbuf ,
int dcnt ,
int scanline ,
int offset ,
int timeout ,
int *xfcnt );
int rle_pipe_mem_nw(
int channel ,
char *dbuf ,
int dcnt ,
int scanline ,
int offset ,
int timeout ,
struct xiosb *xiosb ,
int efn );
PARAMETERS
channel An integer representing an RLE channel
dbuf A pointer to the buffer where encoded data is to be written
dcnt The size of the data buffer
scanline An integer representing the scanline filed of the RLE header
packets
offset An integer representing the offset field of the RLE header
packets
timeout The time limit in 1/60-second intervals for the data transfer
xfcnt The number of bytes transferred
2/94 - Intergraph Corporation 1
rle_pipe_mem(3) CLIX rle_pipe_mem(3)
xiosb A pointer to an xiosb structure
efn The event number associate with the request
DESCRIPTION
The rle_pipe_mem() and rle_pipe_mem_nw() functions provide a mechanism to
run length encode data directly from the raster processing pipeline to
virtual memory. The specified Run Length Encoding (RLE) channel will move
the data. The specified channel must have been opened with rle_open().
The dbuf parameter points to the buffer where encoded data is to be
written. The buffer must begin on a longword boundary. The value of dcnt
indicates the buffer size in bytes and must be a multiple of four.
The scanline and offset parameters indicate the initial values for the
scanline and offset fields in the RLE header packets.
The value of the timeout parameter indicates the time limit in 1/60-second
intervals for the data transfer. Any transfer that takes longer is
aborted and an appropriate status is returned. A timeout value of zero
disables the timeout function.
Upon completion of the synchronous request, xfcnt indicates the number of
bytes transferred.
The rle_pipe_mem_nw() function is the asynchronous version of
rle_pipe_mem(), providing the same capability without waiting the request
to complete. The efn parameter is the event flag number associated with
the request. The xiosb parameter is a pointer to the xiosb structure
updated when the request completes (see intro(3)). The xfcnt member of
the xiosb structure indicates the number of bytes transferred.
RETURN VALUES
Upon successful completion of the synchronous request, a value of 0 is
returned. Otherwise, one of the following failure codes is returned.
If the XIO system accepts the asynchronous request, the request will
return a 0. Otherwise, XIO_FAILURE will be returned. Upon completion of
an accepted request, the status member of the xiosb structure will be set
to either 0 if successful or to one of the following failure codes if
unsuccessful.
ERRORS
The rle_pipe_mem() and rle_pipe_mem_nw() functions will fail if one of the
following is true:
[XIO_FAILURE]
The system does not contain the driver needed to support this
2 Intergraph Corporation - 2/94
rle_pipe_mem(3) CLIX rle_pipe_mem(3)
request or efn is invalid.
[RLE_CHANNEL_INVALID]
The specified channel is beyond the maximum allowed.
[RLE_CHANNEL_NOT_OPEN]
The specified channel is not open for this process.
[BAD_DATA_BUFFER_ADDRESS]
The data buffer either is not longword aligned or points to a
nonwritable memory space.
[BAD_DATA_BUFFER_COUNT]
The byte count is not a multiple of four.
[PAGE_LOCK_FAILED]
Not enough physical memory for this request is available at this
time.
[RLE_CANCELED]
The request was canceled with rle_cancel(3A) or rle_close(3A).
[RLE_COMP0_SYNC_ERROR]
A synchronization error occurred on component 0.
[RLE_COMP1_SYNC_ERROR]
A synchronization error occurred on component 1.
[RLE_COMP2_SYNC_ERROR]
A synchronization error occurred on component 2.
[RLE_OVERRUN_ERROR]
The output buffer is full and data remains to be processed.
[RLE_TIMEOUT]
The timeout expired before the transfer completed.
RELATED INFORMATION
Functions: rle_open(3), rle_close(3), rle_cancel(3)
Files: xrle(7), intro(7)
2/94 - Intergraph Corporation 3