At 17:12 +0530 1/4/08, Pradip Patel wrote:
Yes it works in post boot, can you please tell me the name of IOkit service ? is it com.apple.iokit ?
There is no named I/O Kit Mach service. You seem to be mixing up two uses of the word "service", namely Mach services that are registered with the Mach bootstrap name server (which is the usage in the launchd property list file) and I/O Kit services which are registered in the I/O registry. These are very different concepts. If you're trying to find an I/O Kit service and failing to find it at early boot time, that's probably because the service hasn't been registered yet. I presume you're looking up the I/O Kit service using some simple API, like IOServiceGetMatchingService. That will work post boot, because your daemon has been launchd after I/O Kit has fully populated the registry. However, it may not work in an early boot environment because your daemon might be started before the I/O registry has been fully populated. The best solution to this problem is to dynamically handle I/O Kit services coming and going, by using I/O Kit's async service lookup APIs. Check out the IOServiceAddMatchingNotification routine. And, as an added benefit, you'll be able to handle the service coming and going dynamically. At 17:15 +0530 1/4/08, Pradip Patel wrote:
same thing work on 10.4
Yes. 10.5 is even more concurrent than 10.4 was, which means that its even more likely that your launchd daemon is starting while the kernel is still populating the I/O registry. S+E -- Quinn "The Eskimo!" <http://www.apple.com/developer/> Apple Developer Relations, Developer Technical Support, Core OS/Hardware