SVR5
rdma_filter(D3)
rdma_filter --
filter transfers to use only DMA-able memory
Synopsis (Not in current DDI version)
#include <sys/types.h>
#include <sys/buf.h>
#include <sys/ddi.h>
void rdma_filter(void (*strat)(), buf_t *bp);
Description
rdma_filter ensures
that DMA transfers only occur to DMA-able memory.
On systems with restrictions on DMAe-abl memory,
rdma_filter calls the function specified by strat,
passing a buffer that is guaranteed to be DMA-able.
On systems without restrictions on DMA-able memory,
rdma_filter simply calls the strat function
passing on the buffer without modification.
Arguments
strat-
Address of the driver's strategy routine.
bp-
Pointer to the
buf(D4)
structure describing the I/O request.
Return values
None.
Any errors will be marked in the buffer header structure.
Usage
rdma_filter can be used as an alternative
to the D_DMA device flag described on the
devflag(D1)
manual page.
When the devflag D_DMA flag is set,
all I/O requests to the device are filtered
before calling the device's strategy routine.
By using rdma_filter instead of
the D_DMA device flag,
drivers can achieve a higher degree of control over the
sometimes expensive conversions to DMA-able memory.
Drivers that use rdma_filter
should not set the D_DMA device flag.
Context and synchronization
User or blockable
context.
Hardware applicability
None
Version applicability
ddi:
1, 2, 4
buf_breakup(D3)
replaces rdma_filter.
References
buf(D4),
buf_breakup(D3),
devflag(D1),
strategy(D2)
``DMA'' in HDK Technical Reference
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005