- find minimum alignment and transfer size for DMA
#include <sys/conf.h> #include <sys/ddi.h> #include <sys/sunddi.h> int ddi_iomin(dev_info_t *dip, int initial, int streaming);
A pointer to the device's dev_info structure.
The initial minimum DMAtransfer size in bytes. This may be zero or an appropriate dlim_minxfer value for device's ddi_dma_lim structure (see ddi_dma_lim_sparc(9S) or ddi_dma_lim_x86(9S)). This value must be a power of two.
This argument, if non-zero, indicates that the returned value should be modified to account for streaming mode accesses (see ddi_dma_req(9S) for a discussion of streaming versus non-streaming access mode).
The ddi_iomin() function, finds out the minimum DMAtransfer size for the device pointed to by dip. This provides a mechanism by which a driver can determine the effects of underlying caches as well as intervening bus adapters on the granularity of a DMA transfer.
The ddi_iomin() function returns the minimum DMAtransfer size for the calling device, or it returns zero, which means that you cannot get there from here.
This function can be called from user, interrupt, or kernel context.
See attributes(5) for descriptions of the following attributes: