Marty Faltesek wrote:

> If as you say the issue is not to cross 4k boundary, you want something
> like what the ATA driver is doing:
> 
> #define PCIIDE_BOUNDARY (0x1000) 
>  
> ddi_dma_attr_t ata_prd_dma_attr = { 
>         DMA_ATTR_V0,            /* dma_attr_version */ 
>         0,                      /* dma_attr_addr_lo */ 
>         0xffffffffU,            /* dma_attr_addr_hi */ 
>         PCIIDE_BOUNDARY - 1,    /* dma_attr_count_max */ 
>         sizeof (int),           /* dma_attr_align */ 
>         1,                      /* dma_attr_burstsizes */ 
>         1,                      /* dma_attr_minxfer */ 
>         PCIIDE_BOUNDARY,        /* dma_attr_maxxfer */ 
>         PCIIDE_BOUNDARY - 1,    /* dma_attr_seg */ 
>         1,                      /* dma_attr_sgllen */ 
>         1,                      /* dma_attr_granular */ 
>         0                       /* dma_attr_flags */ 
> }; 
> 
> 
> The key fields are dma_attr_count_max, dma_attr_maxxfer and
> dma_attr_seg.

Thank you, this seems to do the trick.  In fact, the dma_attr_seg
field seems to exist to do exactly what I want.  I don't know
how I overlooked that in the man page.

Thanks again,

Drew
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to