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

dma_prog(D3)


dma_prog -- program a DMA operation for a subsequent hardware request

Synopsis

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

int dma_prog(struct dma_cb *dmacbptr, int chan, uchar_t mode);

Description

dma_prog programs the ISA, EISA, or MCA DMA channel chan for the operation specified by the DMA command block whose address is given by dmacbptr.

Arguments


dmacbptr
Pointer to the DMA command block that specifies the DMA operation.

chan
DMA channel over which the operation is to take place.

mode
Specifies whether the caller is willing to sleep waiting to allocate desired DMA channel.

Return values

dma_prog returns the value TRUE upon successful completion and returns the value FALSE otherwise.

Usage

dma_prog does not initiate the DMA transfer. Instead, the transfer will be initiated by a subsequent request from hardware. The hardware request will be recognized only if the channel has been enabled via dma_enable(D3) following the call to dma_prog.

In order to program the operation, dma_prog requires exclusive use of the specified DMA channel. The caller may specify, via the mode argument, whether or not dma_prog should sleep waiting for a busy channel to become available. If the specified channel is in use, and mode is set to DMA_SLEEP, then dma_prog will sleep until the channel becomes available for its use. Otherwise, if DMA_NOSLEEP is specified and the requested channel is not immediately available, dma_prog will not program the channel, but will simply return a value of FALSE.

Context and synchronization

If mode is set to DMA_NOSLEEP, non-blockable, initialization, or interrupt context.

If mode is set to DMA_SLEEP, user context.

Hardware applicability

PC-AT compatible platforms with ISA, EISA, or MCA buses

Version applicability

ddi: 1, 2, 3, 4, 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

dma_disable(D3), dma_enable(D3), dma_cb(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