In FreeBSD new-bus architecture, all devices are linked into a device tree. The root of the tree is root_bus, it has a child called nexus0 added during the device configuration phase. I have two questions about this new-bus code:
(1) What is the usage of this "nexus0" device? Its parent (root_bus) does not declare the probe method, so probing nexus0 can only return ENXIO for us (from error_method()). (2) I guess that the probe process of all devices on the tree is triggered by root_bus_configure() in subr_bus.c. It is done from top to bottom, i.e. the probe process should be propagated down the device tree from root_bus. Am I right? How does this tree structure achieve the dynamic feature of device configuring (adding/removing devices on the fly)? Having a pig picture often helps to understand the details more readily. Any help is appreciated. -------------------------------------------------- Zhihui Zhang. Please visit http://www.freebsd.org -------------------------------------------------- To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-hackers" in the body of the message