summaryrefslogtreecommitdiffstats
path: root/sys/kern/bus_if.m
diff options
context:
space:
mode:
authorjmg <jmg@FreeBSD.org>2006-09-03 00:27:42 +0000
committerjmg <jmg@FreeBSD.org>2006-09-03 00:27:42 +0000
commitc25fb06d921a770f65a0f6e25dc1e92e4e1b5227 (patch)
tree2d913a3cb79e7a1579bdad59426344b90355f220 /sys/kern/bus_if.m
parent84ee477ac39bc8414949b4df724f390aac837627 (diff)
downloadFreeBSD-src-c25fb06d921a770f65a0f6e25dc1e92e4e1b5227.zip
FreeBSD-src-c25fb06d921a770f65a0f6e25dc1e92e4e1b5227.tar.gz
add a newbus method for obtaining the bus's bus_dma_tag_t... This is
required by arches like sparc64 (not yet implemented) and sun4v where there are seperate IOMMU's for each PCI bus... For all other arches, it will end up returning NULL, which makes it a no-op... Convert a few drivers (the ones we've been working w/ on sun4v) to the new convection... Eventually all drivers will need to replace the parent tag of NULL, w/ bus_get_dma_tag(dev), though dev is usually different for each driver, and will require hand inspection... Reviewed by: scottl (earlier version)
Diffstat (limited to 'sys/kern/bus_if.m')
-rw-r--r--sys/kern/bus_if.m11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/kern/bus_if.m b/sys/kern/bus_if.m
index 05aad09..529b506 100644
--- a/sys/kern/bus_if.m
+++ b/sys/kern/bus_if.m
@@ -529,3 +529,14 @@ METHOD void hinted_child {
const char * _dname;
int _dunit;
};
+
+/**
+ * @brief Returns bus_dma_tag_t for use w/ devices on the bus.
+ *
+ * @param _dev the parent device of @p _child
+ * @param _child the device to which the tag will belong
+ */
+METHOD bus_dma_tag_t get_dma_tag {
+ device_t _dev;
+ device_t _child;
+} DEFAULT bus_generic_get_dma_tag;
OpenPOWER on IntegriCloud