HomeFreeBSD

Clean up MD pollution of bus_dma.h:

Description

Clean up MD pollution of bus_dma.h:

--Remove special-case handling of sparc64 bus_dmamap* functions.

Replace with a more generic mechanism that allows MD busdma
implementations to generate inline mapping functions by
defining WANT_INLINE_DMAMAP in <machine/bus_dma.h>.  This
is currently useful for sparc64, x86, and arm64, which all
implement non-load dmamap operations as simple wrappers
around map objects which may be bus- or device-specific.

--Remove NULL-checked bus_dmamap macros. Implement the

equivalent NULL checks in the inlined x86 implementation.
For non-x86 platforms, these checks are a minor pessimization
as those platforms do not currently allow NULL maps.  NULL
maps were originally allowed on arm64, which appears to have
been the motivation behind adding arm[64]-specific barriers
to bus_dma.h, but that support was removed in r299463.

--Simplify the internal interface used by the bus_dmamap_load*

variants and move it to bus_dma_internal.h

--Fix some drivers that directly include sys/bus_dma.h

despite the recommendations of bus_dma(9)

Reviewed by: kib (previous revision), marius
Differential Revision: https://reviews.freebsd.org/D10729

Details

Provenance
jahAuthored on
Reviewer
kib
Differential Revision
D10729: Cleanup MD pollution of MI busdma header
Parents
rS320527: Change blst_leaf_alloc() to handle a cursor argument, and to improve
Branches
Unknown
Tags
Unknown