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

dma_swsetup(D3)


dma_swsetup -- program a DMA operation for a subsequent software request

Synopsis

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

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

Description

dma_swsetup 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_swsetup returns the value TRUE on success and returns the value FALSE otherwise.

Usage

dma_swsetup does not initiate the DMA transfer. Instead, the transfer will be initiated by a subsequent request initiated via software by dma_swstart(D3). If dma_swsetup programs the operation successfully, it then calls the procedure specified by the proc field of the dma_cb(D4) structure. It passes as an argument the value in the ``procparms'' field. If proc is set to NULL, then no routine is called.

To program the operation, dma_swsetup requires exclusive use of the specified DMA channel. The caller may specify, via the mode argument, whether dma_swsetup 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_swsetup 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_swsetup 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. The driver must be in a legal context for the callback function being passed in with the dmacbptr argument.

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_swstart(D3), dma_stop(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