Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ordering calls to driver's ::start() routine?



On Tuesday, February 5, 2002, at 12:24 PM, Andrew Gallatin wrote:

Wayne Flansburg writes:

[snip]
I've learned that since OS X apparently leaves device naming up to
external user agents, or the drivers themselves, it doesn't try to
probe the buses in a deterministic fashion. I personally think its
bizzare, but now that I know the rules, I can work with it..

Just for clarity, the non-determinism in device discovery does not arise because the system leaves device naming up to external agents. In fact, the issues of naming and device discovery are somewhat orthogonal.

Device discovery is 'asynchronous' to speed up booting. The asynchrony leads to non-determinism.

Device naming is left to domain-specific external agents for several reasons. Non-determinism is a minor issue here. In fact, as soon as you get into PCCard, USB, and Firewire devices, any hope of persistence is gone. The lower layers of IOKit are (and should be) unable to differentiate (for the upper layers) among devices of a given class based on device ID. For some classes (PCI cards), the device ID is more or less persistent, but for others, the ID can change even while the system is running (add a USB or Firewire device to the mix and IDs change willy-nilly).

Because of the shift to these more dynamic bus structures, each domain (network interfaces, mass-storage devices, ...) will have to provide mechanisms with which individual devices can be recognized and associated with specific functions (subnets, position in the file name space, ...) across reboots. IOKit's lower layers are the wrong place for this.

Regards,

Justin

--
Justin C. Walker, Curmudgeon-At-Large *
Institute for General Semantics | It's not whether you win or lose...
| It's whether *I* win or lose.
*--------------------------------------*-------------------------------*


References: 
 >Re: ordering calls to driver's ::start() routine? (From: Andrew Gallatin <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.