From owner-freebsd-hackers Fri Aug 6 13: 2:40 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from bingnet2.cc.binghamton.edu (bingnet2.cc.binghamton.edu [128.226.1.18]) by hub.freebsd.org (Postfix) with ESMTP id BA97E155BF for ; Fri, 6 Aug 1999 13:02:38 -0700 (PDT) (envelope-from zzhang@cs.binghamton.edu) Received: from sol.cs.binghamton.edu (cs1-gw.cs.binghamton.edu [128.226.171.72]) by bingnet2.cc.binghamton.edu (8.9.3/8.9.3) with SMTP id QAA23138 for ; Fri, 6 Aug 1999 16:02:09 -0400 (EDT) Date: Fri, 6 Aug 1999 15:49:16 -0400 (EDT) From: Zhihui Zhang To: freebsd-hackers@freebsd.org Subject: Questions on new-bus source code Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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 majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message