eisa_dma_buf(D4)eisa_dma_buf(D4)NAMEeisa_dma_buf - EISA DMA buffer descriptor structure
SYNOPSIS
#include <sys/types.h>
#include <sys/eisa.h>
DESCRIPTION
The EISA DMA buffer descriptor structure is used to specify the data to
be transferred by a DMA operation.
USAGE
Each DMA operation is controlled by a DMA command block [see
eisa_dma_cb(D4)] structure that includes a pointer to linked list of
eisa_dma_buf structures.
Each eisa_dma_buf structure provides the physical address and size of a
data block involved in a DMA transfer. Scatter/gather operations
involving multiple data blocks may be implemented by linking together
multiple eisa_dma_bufs in a singly-linked list. Each eisa_dma_buf
includes the virtual address of the next EISA DMA buffer descriptor in
the list.
EISA DMA buffer descriptor structures should only be allocated via
eisa_dma_get_buf(D3X). Although drivers may access the members listed
below, they should not make any assumptions about the size of the
structure or the contents of other fields in the structure.
Structure Definitions
The eisa_dma_buf structure contains the following members:
ushort_t count; /* size of block*/
paddr_t address; /* physical address of data block */
struct eisa_dma_buf *next_buf; /* next buffer descriptor */
ushort_t count_hi; /* for big blocks */
paddr_t stopval; /* ring buffer stop */
The members of the eisa_dma_buf structure are:
count specifies the low-order 16 bits of the size of the data block in
bytes.
address specifies the physical address of the data block.
next_buf specifies the virtual address of the next eisa_dma_buf in a
linked list of EISA DMA buffer descriptors. It should be NULL if the
buffer descriptor is the last one in the list. Note that an EISA DMA
buffer descriptor allocated by eisa_dma_get_buf will be zeroed out
initially, thus no explicit initialization is required for this field if
a value of NULL is desired.
Page 1
eisa_dma_buf(D4)eisa_dma_buf(D4)
count_hi specifies the high-order 16 bits of the size of the data block
in bytes. Since a eisa_dma_buf allocated by eisa_dma_get_buf is
initially zeroed out, no explicit initialization is required for this
field if the size of the data block may be specified by a ushort_t.
stopval specifies the physical address used to terminate an EISA ring
buffer. This field is used in conjunction with the reqr_ringstopP field
in the eisa_dma_cb structure. It should be left as NULL if this EISA
feature is not used.
REFERENCESeisa_dma_cb(D4), eisa_dma_free_buf(D3X), eisa_dma_get_buf(D3X)
Page 2