bus_dmamem_alloc

Mark Tinguely tinguely at casselton.net
Thu Mar 20 10:29:24 PDT 2008


>  so I'm running:
>
>  err =
>  bus_dmamem_alloc(ring->dma_tag, &ring->buf,
>  BUS_DMA_NOWAIT|BUS_DMA_ALLOCNOW, &ring->dma_map);
>
>  but after calling bus_dmamem_allloc the dma_map variable is still NULL. is
>  this OK?

Sure, you are allocating with BUS_DMA_NOWAIT. err is probably equal to ENOMEM.

If allocation size is larger than a PAGE_SIZE or specific alignment is
require then contigmalloc() is called to satisfy the allocation.
contigmalloc() can fail even when specifying WAITOK.

--Mark Tinguely.


More information about the freebsd-questions mailing list