DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
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