Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: matching for a shim driver



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

References: 
 >matching for a shim driver (From: Andrew Gallatin <email@hidden>)
 >Re: matching for a shim driver (From: Godfrey van der Linden <email@hidden>)
 >Re: matching for a shim driver (From: Andrew Gallatin <email@hidden>)
 >Re: matching for a shim driver (From: Godfrey van der Linden <email@hidden>)
 >Re: matching for a shim driver (From: John Dalgliesh <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.