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