eisa_dma_buf(D4)
eisa_dma_buf - EISA DMA buffer descriptor structure
As shipped in IRIX 6.5.19. Unchanged since IRIX 6.5.
NAME eisa_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. 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. REFERENCES eisa_dma_cb(D4), eisa_dma_free_buf(D3X), eisa_dma_get_buf(D3X)