Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

rle_open(3)

rle_close(3)

rle_cancel(3)

xrle(7)

intro(7)



  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




Typewritten Software • bear@typewritten.org • Edmonds, WA 98026