Use DEVMETHOD_END. Not compile-tested yet.
Add ZFS by default.
Add support to busdma/mi to host controllers that have or need I/O MMU
support. Since all host controllers use the same I/O MMU implementation,
have it implement the busdma I/F methods directly. For this to work,
we need to be able to get from the device to the iommu_state structure.
We do this by using the softc as an indirection. The device_get_softc()
returns the softc of the host controller driver. By forcing the first
field in that structure to point to the iommu state structure that goes
with the device, we established the indirection.

Implement iommu_xlate(). It does nothing anyway. Start some trivial bits
in iommu_sync(), but not yet the important parts. The iommu_map() and
iommu_unmap() methods are saved for last. The intend is to have the new
methods work alongside the existing functions. This way isp(4), which
uses busdma/mi, works alongside gem(4) which uses the old busdma code.
Rename BUSDMA_ALLOC_CONSISTENT to BUSDMA_ALLOC_COHERENT.
Add some more tag accessor functions:
.   busdma_tag_get_align()
.   busdma_tag_get_bndry()

Add an I/O MMU private field to the MD's segment. The implementation for
sparc64 uses it to save a pointer to the corresponding struct resource.
I may remove it later, since it doesn't seem to be necessary per se.
Finish the first rough implementation. This seems to work fairly well.
I can now do some basic performance comparisons to see how much overhead
the busdma/mi approach has.