DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
SVR5

dma_physreq(D3)


dma_physreq -- apply constraints for DMA channel and path size

Synopsis

   #include <sys/dma.h>
   #include <sys/kmem.h>
   #include <sys/ddi.h>
   

void dma_physreq(int chan, int datapath, physreq_t *preqp);

Description

dma_physreq determines physical constraints needed by the specified ISA, EISA, or MCA DMA channel and applies them to the physreq(D4) structure pointed to by preqp.

The physreq structure is used by routines such as kmem_alloc_physcontig(D3) and buf_breakup(D3) to define alignment constraints on physical addresses.

Arguments


chan
DMA channel number.

datapath
Path size of the DMA channel, as defined in dma_cb(D4).

preqp
Pointer to a physreq(D4) structure.

Return values

None.

Usage

dma_physreq should be used when DMA is to be done using standard DMA channels in non-cascade mode, usually by calling dma_prog(D3). dma_physreq( ) is not used when an I/O board is acting as a bus master and providing DMA addresses itself, either by using the dma_cascade(D3) function for cascade mode or because it is an EISA bus master. For bus master devices, the driver should instead set the physreq fields itself, since the driver knows its board's address-generation constraints.

After calling dma_physreq( ), the driver must call physreq_prep(D3) before using the physreq structure for allocations or transfers.

Context and synchronization

Non-blockable, interrupt, user, or blockable context.

Hardware applicability

PC-AT compatible platforms with ISA or EISA motherboard DMA.

Version applicability

ddi: 5, 5mp, 6, 6mp, 7, 7mp, 7.1, 7.1mp, 8, 8mp

Future directions

This interface is expected to be replaced or modified in a future release.

References

buf_breakup(D3), dma_cb(D4) kmem_alloc_physcontig(D3), physreq_alloc(D3), physreq_free(D3), physreq_prep(D3), physreq(D4)

``DMA'' in HDK Technical Reference


19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005