Chris,
Thas was definately my problem. After adding IOStorageFamily to the
OSBundleLibraries the kext loaded and I had got the following output
from dmesg
As you can see the driver is loading up and calling my versions of the
virtual functions, but this leads me to three questions.
1. The driver never does anything after the "doAsyncReadWrite" call, I
think this is due to the "IOStorageCompletion" not getting called to let
IOKit know the read/write is finished. I'm not sure who is responsible
for calling, if it is me, what params do I pass, Do i just call it at
the end of my "doAsyncReadWrite" function? Right now i'm not using any
IRQ's to try and keep things simple.
2. The fact that it's not reading block 0 first and is trying to read
so many blocks on the first read seems a little surprising. I'm
guessing something is wrong there.
3. Do I have to create a 64 bit version of doAsyncReadWrite?
4. was just going to ask three, but I just noticed getVendorString and
getProductString seem to get called twice, Doesn't seem like a big
deal, but is it a sign of something not being right?
Thanks again for the help,
Reggie
Chris Sarcone wrote:
Reggie --
Thanks for the pointers. I finally got around to working on this
some more, and after much reading I have one more road block. After
changing my class to be based of IOBlockStorageDevice the module will
not load. When doing a "kextload -tv" I get the following error:
kextload: extension IOSDHCIBlockDevice.kext/ appears to be valid
Can't find superclass for 18IOSDHCIBlockDevice : 20IOBlockStorageDevice
kextload: a link/load error occured for kernel extension
IOSDHCIBlockDevice.kext/
load failed for extension IOSDHCIBlockDevice.kext/
(run kextload with -t for diagnostic output)
Anyone have some advice, I will be glad to post code if needed.
Does your kext's Info.plist file have an OSBundleLibraries entry that
includes com.apple.iokit.IOStorageFamily with a version of 1.0.0?
-- Chris
------------------
6 Infinite Loop
M/S 306-2MS
Cupertino CA 95014
phone: (408) 974-4033
fax: (408) 862-7577
email: email@hidden <mailto:email@hidden>