John Dalgliesh writes:
> For this kind of multiprotocol driver it would definitely be the easiest,
> and the name IOMatchCategory even makes sense - are you matching on the
> 'Ethernet' part of your driver of the 'Serial' part of it, etc.
>
> Of course the number 1 reason for me would be that you don't have to write
> any code at all! The only change to your (master's) start routine is to
> call 'registerService', and the protocol drivers get automagically matched
> and started with you as their provider - a quick metacast and they can
> call any (public) functions in your class they like. You don't have to
> make up an interface in the nub ... or leap over it to get to the real
> provider.
>
This sounds great to me! The less code, the better. And I was
planning totally separate kexts too. But I'm still confounded.
Lets say I want to use IOMatchCategory with string as "mx_ether".
How do I export this from the master driver such that the ethernet
driver can match on it? Do I add something to the master's
Info.plist? Do I pass an argument to registerService()?
I'm pretty sure that I want to have the matching section of
the client look something like this:
<key>IOKitPersonalities</key>
<dict>
<key>mx_ether</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.Myricom.iokit.mx_ether</string>
<key>IOClass</key>
<string>mx_ether</string>
<key>IOMatchCategory</key>
<string>mx_ether</string>
<key>IOProviderClass</key>
<string>mx_driver</string>
</dict>
</dict>
For reference, the existing Info.plist of the master driver is below:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>mx_driver</string>
<key>CFBundleIdentifier</key>
<string>com.Myricom.iokit.mx_driver</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>OSBundleCompatibleVersion</key>
<string>1.0</string>
<key>IOKitPersonalities</key>
<dict>
<key>mx_driver</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.Myricom.iokit.mx_driver</string>
<key>IOClass</key>
<string>mx_driver</string>
<key>IOPCIMatch</key>
<string>0x804310e8 0x804314c1</string>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IONetworkingFamily</key>
<string>1.2</string>
<key>com.apple.iokit.IOPCIFamily</key>
<string>1.2</string>
<key>com.apple.kernel.bsd</key>
<string>6.0</string>
<key>com.apple.kernel.iokit</key>
<string>6.0</string>
<key>com.apple.kernel.libkern</key>
<string>6.0</string>
<key>com.Myricom.kext.mx_mcp</key>
<string>1.0</string>
</dict>
</dict>
</plist>
Thanks (and sorry to be a moron..)
Drew
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-drivers mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-drivers/email@hidden
This email sent to email@hidden