sif_mem_pipe(3) CLIX sif_mem_pipe(3)
NAME
sif_mem_pipe, sif_mem_pipe_nw - Transfers data from memory to pipe
LIBRARY
Intergraph Device Library (libix.a)
SYNOPSIS
#include <sys/xio/xerr.h>
#include <sys/xio/xio.h>
int sif_mem_pipe(
int channel ,
char *dbuf ,
int dcnt ,
int timeout ,
int *xfcnt );
int sif_mem_pipe_nw(
int channel ,
char *dbuf ,
int dcnt ,
int timeout ,
struct xiosb *xiosb; ,
int efn );
PARAMETERS
channel An integer representing a Scanner Interface (SIF) channel
dbuf A pointer to the source data buffer
dcnt The size of the source data buffer
timeout The time limit in 1/60-second intervals for the data transfer
xfcnt The number of bytes transferred
xiosb A pointer to the xiosb structure
efn The event flag number associated with the request
DESCRIPTION
The sif_mem_pipe() and sif_mem_pipe_nw() functions provide a mechanism for
transferring data directly from virtual memory to the raster processing
pipeline. The specified Scanner Interface (SIF) channel will move the
data. The specified channel must have been opened with sif_open().
2/94 - Intergraph Corporation 1
sif_mem_pipe(3) CLIX sif_mem_pipe(3)
The dbuf parameter points to the buffer from which data is being
transferred. The buffer must begin on a longword boundary. The dcnt
indicates the byte count to be transferred and must be a multiple of the
linewidth specified in sif_setup().
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 sif_mem_pipe_nw() function is the asynchronous version of
sif_mem_pipe(), 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 above failure codes is returned.
If the XIO system accepts the asynchronous request, a value of 0 will be
returned by the request. 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 above
failure codes if unsuccessful.
ERRORS
The sif_mem_pipe() and sif_mem_pipe_nw() functions will fail if one of the
following is true:
[XIO_FAILURE]
The system does not contain the driver needed to support this
request or efn is invalid.
[SIF_CHANNEL_INVALID]
The specified channel is beyond the maximum allowed.
[SIF_CHANNEL_NOT_OPEN]
The specified channel is not open for this process.
[BAD_DATA_BUFFER_ADDRESS]
The data buffer is either not longword aligned or points to an
invalid memory space.
[BAD_DATA_BUFFER_COUNT]
2 Intergraph Corporation - 2/94
sif_mem_pipe(3) CLIX sif_mem_pipe(3)
The byte count is not a multiple of linewidth from sif_setup(3A).
[PAGE_LOCK_FAILED]
Not enough physical memory for this request is available at this
time.
[SIF_CANCELED]
The request was canceled with sif_cancel(3A) or sif_close(3A).
[SIF_TIMEOUT]
The timeout expired before the transfer completed.
RELATED INFORMATION
Functions: sif_open(3), sif_close(3), sif_setup(3), sif_cancel(3),
intro(3)
Files: xsif(7)
2/94 - Intergraph Corporation 3