• 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: OSBundleLibraries & Kernel symbols sharing
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: OSBundleLibraries & Kernel symbols sharing


  • Subject: Re: OSBundleLibraries & Kernel symbols sharing
  • From: Dean Reece <email@hidden>
  • Date: Tue, 8 Feb 2005 09:15:51 -0800

Sorry - replace "CFBundleIdentifier" with "CFBundleVersion" everywhere below and it'll make more sense...
- Dean


On Feb 8, 2005, at 09:12, Dean Reece wrote:
You've just about got it. You just need to add an "OSBundleCompatibleVersion" property into A. It's value will be in the same format as the "CFBundleIdentifier" property. Taken together, these two properties form a binary compatibility version-range. The presence of this property makes kext A a library kext that is acceptable as a library for any other kext (B) asking for a version between "OSBundleCompatibleVersion" and "CFBundleIdentifier", inclusive.

Have a look at any of the IOKit Family kexts for an example of this, or have a look at http://developer.apple.com/documentation/DeviceDrivers/Conceptual/ IOKitFundamentals/Families/chapter_7_section_3.html#//apple_ref/doc/ uid/TP0000017/TPXREF104 for a brief discussion of this mechanism.

Cheers,
 - Dean


On Feb 8, 2005, at 03:43, Stephane Sudre wrote:

I'm seeing something strange as I thought what I wanted to do was possible but doesn't actually like to be.

I have 2 Kernel Extensions A and B.

Kernel Extension A is loaded first and is requiring usual stuff in OSBundleLibraries.

Kernel Extension B is defining one of the function of A with an extern and is including the Bundle Identifier and Version of A in the OSBundleLibraries section of the Info.plist.

Now when I load B after A, this does not work as it's said that no correct version for A was found.

Is it not possible to use symbols from a kext in another kext as long as you help the kext loader knows where they can be found?

I was wondering if this was not linked to the fact that I'm using the default version 1.0.0d1 from the Kernel Extension template but I don't really think this is the reason.

The function I'm trying to reference is not set as static or __private_extern__ in A.


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
email@hidden


This email sent to email@hidden

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
email@hidden


This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >OSBundleLibraries & Kernel symbols sharing (From: Stephane Sudre <email@hidden>)
 >Re: OSBundleLibraries & Kernel symbols sharing (From: Dean Reece <email@hidden>)

  • Prev by Date: Re: OSBundleLibraries & Kernel symbols sharing
  • Next by Date: Re: OSBundleLibraries & Kernel symbols sharing
  • Previous by thread: Re: OSBundleLibraries & Kernel symbols sharing
  • Next by thread: Re: OSBundleLibraries & Kernel symbols sharing
  • Index(es):
    • Date
    • Thread