• 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 11:40:58 -0700

Yeah, plist samples would help.

As you seem to be doing but just to restate...

Basically your effect driver should match against your hardware using the normal PCI match methods (it is PCI based correct?). Your effect driver then will get matched, probed, and things go correctly started. At this point your effect driver can register itself (registerService) as being ready for others to use. (It could also publish nubs, which themselves would register for others to utilize.)

So your frame buffer driver should be setup to match against your effect driver (using the full class name of the effect driver in IOProviderClass). This will get your frame buffer driver loaded shortly affect your effect driver registers itself. In the probe and start method calls you will get a pointer to your effect driver (the provider pointer). Your frame buffer should cache this reference and use it to interact with the effect driver, etc. (You could consider using the open/close methods to build a "strong" relationship between your two drivers.)


The important thing is that your effect driver shouldn't register itself until it is ready to be used by others. Also your frame buffer kext bundle will need to be in the /System/Library/Extensions directory for matching to work correctly (it doesn't scan outside of that directory). Of course you most likely could load the kexts manually, load the frame buffer kext and soon afterwards load the efffect driver kext. This gets the frame buffer into the kernel so it will match against the effect driver once it regs itself.

-Shawn


On Thursday, May 30, 2002, at 11:06 AM, Godfrey van der Linden wrote:

It depends on how you publish your com_matrox_EffectDriver (Note the prefix, this is really important quite a few drivers are going to have effects right?)

How does the 'Effect Driver' get created? How does your FrameBuffer get created? can we see the IOKitPersonalties?

Godfrey

At 13:24 -0400 02-5-30, Francis bouchard wrote:
Sorry for cross posting but I am really desperate.

For the one who followed this thread, here is the status. I would like my
driver model to look like the drawing. My IOFrameBuffer declares an
IOProvicerClass of EffectDriver (which its provider is an IOPCIDevice). This
way My effectDriver which is a service provider for my FrameBuffer gets
loaded before the IOFrameBuffer and the FrameBuffer gets the pointer to the
EffectDriver (its provider through the parameter in the start routine.

But it doesn't work! HELP!!!! How do I make a driver a provider for another
class ??? If I put the IOProviderClass in the bundle settings, my driver won
load (kmod but no init called). A hint is that ioreg or IORegistry crashes!
for some reason, as soos as I try to connect my IOFrameBuffer ot the effect
dirver I seem to break everything up. If I put IOPCIDevice in the
IOProviderClass and "slmost stub my frame buffer" everything is OK.

Francis
On 28/05/02 12:52, "Francis bouchard" <email@hidden> wrote:

I agree that I'm more fighting with IOKit than using it. Let's see how my
drivers works. Let's try ou my _talent_ for drawing.
------ ------------------
| OS | | our effects |
User Land ------ ------------------
________________|____________________________|_________
KernelLand | |
------------------- ------------------
| IOFBUserClient | | EffectDriver |
| IOFrameBuffer | | UserClient |
------------------- ------------------
| |
| ------------------
|_______________________| EffectDriver |
| (IOService) |
------------------
_______________________________________________
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: Godfrey van der Linden <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