dma_prog(D3) dma_prog(D3)
NAME
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);
Arguments
dmacbptr Pointer to the DMA command block specifying 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.
DESCRIPTION
dma_prog programs the DMA channel chan for the operation
specified by the DMA command block whose address is given by
dmacbptr.
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.
Copyright 1994 Novell, Inc. Page 1
dma_prog(D3) dma_prog(D3)
Level
Base only if mode is set to DMA_SLEEP.
Initialization, Base or Interrupt if mode is set to
DMA_NOSLEEP.
Synchronization Constraints
May sleep if mode is set to DMA_SLEEP.
Driver-defined basic locks, read/write locks, and sleep locks
may be held across calls to this function.
REFERENCES
dma_disable(D3), dma_enable(D3), dma_cb(D4)
NOTICES
Portability
AT-compatible architectures
Applicability
ddi: 1, 2, 3, 4, 5, 5mp, 6, 6mp, 7, 7mp
Future Directions
This interface is expected to be replaced or modified in a
future release.
Copyright 1994 Novell, Inc. Page 2