Re: Device Manager Draft (incomplete)

"Axel Dörfler" <[email protected]> Wed, 09 Apr 2008 00:04:10 +0200 CEST
Newsgroups gmane.os.openbeos.kernel.devel
Message-ID <38309145062-BeMail@zon>
"Salvatore Benedetto" <[email protected]> wrote:
> What I am more personally interesting in is to understand how
> subsystem are supposed to talk to each other. Especialy because of
> usb_scsi thing.
> 
> Beside describing the API, could you try and post something about how
> things fits all together? Remember about the bus factor! :-D

That was also part of the piece of paper, and I didn't get as far again 
yet :-)
In short, though, the drivers will talk to each other via the 
device_nodes.
For example, the PCI bus manager will have a device_node of its own, 
and then another device_node for each PCI device. A device_node 
consists of device attributes and a node specific API.

In the example for USB-SCSI the relevant part of the device_node tree 
would look like more or less like this:

device root
 |
PCI bus manager
 +
PCI device (ie. the bus, will provide functions like get_pci_config(), 
read8(), ...)
 |
USB bus (ie. EHCI, ...)
 |
USB bus manager
 +
USB device (ie. the mass-storage device)
 |
USB SCSI bus
 |
SCSI bus manager
+
SCSI disk
 |
SCSI cd/disk driver

I used "+" to mark the private connection between the bus manager and 
the children it publishes.
HTH,

Bye,
   Axel.


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Register now and save $200. Hurry, offer ends at 11:59 p.m., 
Monday, April 7! Use priority code J8TLD2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone