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