• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: IORegistry crash (was: Two IOService in the same kext ? )
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IORegistry crash (was: Two IOService in the same kext ? )


  • Subject: Re: IORegistry crash (was: Two IOService in the same kext ? )
  • From: Shawn Erickson <email@hidden>
  • Date: Thu, 30 May 2002 12:06:13 -0700

You shouldn't call registerService until you are ready to service requests from others. Shortly after the registerService call drivers could match against your driver. Mac OS X is multi-threaded so this could happen concurrently while you are still in your start method. So don't register until you are ready.

/*! @function registerService
@abstract Start the registration process for a newly discovered IOService.
@discussion This function allows an IOService subclass to be published and made available to possible clients, by starting the registration process and delivering notifications to registered clients. The object should be completely setup and ready to field requests from clients before registerService is called.
@param options The default zero options mask is recommended & should be used in most cases. The registration process is usually asynchronous, with possible driver probing & notification occurring some time later. kIOServiceSynchronous may be passed to carry out the matching and notification process for currently registered clients before returning to the caller. */

-Shawn

On Thursday, May 30, 2002, at 11:38 AM, Francis bouchard wrote:

On 30/05/02 14:33, "Godfrey van der Linden" <email@hidden> wrote:

Then call
at starttime have com_matrox_driver_Effects::start(provider) call
registerService() just before returning.
Does the fact that calling this function not at the end of the start could
change things ? It is actually done in a base class (derived from IOService)
for our dirvers. So:

com_matrox_driver_Effects::start(provider)
{
super::start(); // registerService() is done here

// more stuff
}

Francis
_______________________________________________
darwin-kernel mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re: IORegistry crash (was: Two IOService in the same kext ? )
      • From: Francis bouchard <email@hidden>
References: 
 >Re: IORegistry crash (was: Two IOService in the same kext ? ) (From: Francis bouchard <email@hidden>)

  • Prev by Date: Re: IORegistry crash (was: Two IOService in the same kext ? )
  • Next by Date: Re: IORegistry crash (was: Two IOService in the same kext ? )
  • Previous by thread: Re: IORegistry crash (was: Two IOService in the same kext ? )
  • Next by thread: Re: IORegistry crash (was: Two IOService in the same kext ? )
  • Index(es):
    • Date
    • Thread