顯示具有 mac driver 標籤的文章。 顯示所有文章
顯示具有 mac driver 標籤的文章。 顯示所有文章

2011年5月2日 星期一

IOWorkLoop

command gate event source:
ex:

this->testCommandGate->runAction(OSMemberFunctionCast(IOCommandGate::Action,
                                                          this, &com_peter_driver_MyDriver::myCommandGateAction),
this->getProvider(), NULL, NULL, NULL);
the command gate action, myCommandGateAction, is executed by thread that call runAction
if A call testCommandGate's runAction, and B call testCommandGate's runAction later,
B will wait until A finishes

subclass IOEventSource:
is executed by newly created thread
checkForWork will repeatedly be called until it return false
do the task in checkForWork
use enable() to trigger checkForWork to be called




get current thread in mac driver

IOThreadSelf():
ex:
IOLog("Starting current thread %p\n"
  IOThreadSelf());



kextlibs - find symbols in kext

ex:
kextlibs  -all-symbols TestIokitDriver2.kext

->



For all architectures:
    com.apple.kpi.iokit = 10.7
    com.apple.kpi.libkern = 10.7
    com.apple.kpi.mach = 10.7

For i386:
    322 symbols found in one library kext each:
    __ZN9IOService14checkResourcesEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject8Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService19_RESERVEDIOService7Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry15copyParentEntryEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService17currentCapabilityEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry11compareNameEP8OSStringPS1_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry16detachFromParentEPS_PK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15enableInterruptEi in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService37Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry11getLocationEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry30Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService18Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry24dictionaryWithPropertiesEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry8isParentEPS_PK15IORegistryPlaneb in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService7messageEmPS_Pv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry11getPropertyEPK8OSSymbolPK15IORegistryPlanem in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService14applyToClientsEPFvPS_PvES1_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService14activityTickleEmm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService12waitForStateEmmP13mach_timespec in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService9waitQuietEP13mach_timespec in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    _IOSleep in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN10IOWorkLoop8workLoopEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    _OSRuntimeInitializeCPP in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService44Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject9Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN8OSObjectnwEm in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService25Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20getDeviceMemoryCountEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15registerServiceEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN13IOCommandGate11commandGateEP8OSObjectPFiS1_PvS2_S2_S2_E in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry16getPathComponentEPcPiPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry20Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService18matchPropertyTableEP12OSDictionary in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService21getClientWithCategoryEPK8OSSymbol in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry12copyPropertyEPK8OSString in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN11OSMetaClass21_RESERVEDOSMetaClass6Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry22Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK8OSObject6retainEv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry24Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService32Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService21unregisterAllInterestEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService13Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15errnoFromReturnEi in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry26Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService14tellChangeDownEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15OSMetaClassBase25_RESERVEDOSMetaClassBase4Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService26deRegisterInterestedDriverEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry28Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK8OSObject9serializeEP11OSSerialize in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK15IORegistryEntry15applyToChildrenEPFvPS_PvES1_PK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16didYouWakeSystemEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15terminateClientEPS_m in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry11setPropertyEPKcP8OSObject in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService12handleIsOpenEPKS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16removePowerChildEP17IOPowerConnection in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOServiceD2Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry11setPropertyEPKcb in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry10Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService14newTemperatureElPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService20Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService23requestPowerDomainStateEmP17IOPowerConnectionm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService4openEPS_mPv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService12getBusyStateEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry12copyPropertyEPKc in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry12Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObjectdlEPvm in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20callPlatformFunctionEPK8OSSymbolbPvS3_S3_S3_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService29Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService14startCandidateEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry14Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService18matchPropertyTableEP12OSDictionaryPl in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService11getWorkLoopEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService18setIdleTimerPeriodEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry16Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry21getParentSetReferenceEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13addPowerChildEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK8OSObject14getRetainCountEv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry18Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry25_RESERVEDIORegistryEntry6Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService23acknowledgeNotificationEPvm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService14causeInterruptEi in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry14applyToParentsEPFvPS_PvES1_PK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService11getProviderEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService19_RESERVEDIOService8Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK11OSMetaClass13taggedReleaseEPKvi in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK15OSMetaClassBase9isEqualToEPKS_ in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService36Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN11OSMetaClass21_RESERVEDOSMetaClass1Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService15comparePropertyEP12OSDictionaryPKc in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService17Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK11OSMetaClass19instanceConstructedEv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry17runPropertyActionEPFiP8OSObjectPvS2_S2_S2_ES1_S2_S2_S2_S2_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject19_RESERVEDOSObject14Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService43Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService21temporaryPowerClampOnEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService24Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService26temperatureCriticalForZoneEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13checkResourceEP8OSObject in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry12copyPropertyEPKcPK15IORegistryPlanem in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13willTerminateEPS_m in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15OSMetaClassBase25_RESERVEDOSMetaClassBase6Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService18changePowerStateToEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService23getOpenProviderIteratorEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService18lockForArbitrationEb in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService19getProviderIteratorEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13askChangeDownEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService31Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService10youAreRootEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService12Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry14copyChildEntryEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN11OSMetaClass21_RESERVEDOSMetaClass4Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    _panic in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK8OSObject13taggedReleaseEPKv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK15IORegistryEntry14getParentEntryEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    _IOLog in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject19_RESERVEDOSObject12Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService19deliverNotificationEPK8OSSymbolmm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService17addNeededResourceEPKc in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService6isOpenEPKS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService10gMetaClassE in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry11setPropertyEPK8OSSymbolP8OSObject in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService11handleCloseEPS_m in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry25_RESERVEDIORegistryEntry8Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService47Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService28Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService12getResourcesEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry7isChildEPS_PK15IORegistryPlaneb in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService18systemWillShutdownEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15comparePropertyEP12OSDictionaryPK8OSString in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry7inPlaneEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService21powerStateDidChangeToEmmPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry8getDepthEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry7setNameEPKcPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry11setPropertyEPKcyj in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry11setPropertyEPKcS1_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService6PMinitEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN18IOTimerEventSource16timerEventSourceEP8OSObjectPFvS1_PS_E in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService35Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15setDeviceMemoryEP7OSArray in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService19_RESERVEDIOService9Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService16Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject19_RESERVEDOSObject10Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN11OSMetaClass21_RESERVEDOSMetaClass7Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry13attachToChildEPS_PK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16resolveInterruptEPS_i in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK11OSMetaClass13taggedReleaseEPKv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK15IORegistryEntry7getNameEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService17getClientIteratorEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService14setPowerParentEP17IOPowerConnectionbm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry15detachFromChildEPS_PK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService17registerInterruptEiP8OSObjectPFvS1_PvPS_iES2_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService42Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService8finalizeEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry11getPropertyEPK8OSStringPK15IORegistryPlanem in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject0Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService23Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry16getChildIteratorEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService17setAggressivenessEmm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService24registerInterestedDriverEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16requestTerminateEPS_m in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService21getOpenClientIteratorEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService24PM_idle_timer_expirationEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry31Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13newUserClientEP4taskPvmP12OSDictionaryPP12IOUserClient in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK8OSObject12taggedRetainEPKv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService16disableInterruptEi in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry11getPropertyEPKcPK15IORegistryPlanem in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15OSMetaClassBase25_RESERVEDOSMetaClassBase3Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService19start_PM_idle_timerEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16getInterruptTypeEiPi in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService10handleOpenEPS_mPv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZTV9IOService in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService27maxCapabilityForDomainStateEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN11OSMetaClassD2Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService30Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry8hasAliasEPK15IORegistryPlanePcPi in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService11Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject1Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK11OSMetaClass6retainEv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService39Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry14attachToParentEPS_PK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService24powerStateForDomainStateEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry21Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK8OSObject7releaseEv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK11OSMetaClass12taggedRetainEPKv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService14messageClientsEmPvj in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry23Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN11OSMetaClass21_RESERVEDOSMetaClass2Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOServiceC2EPK11OSMetaClass in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry25Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService46Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16tellNoChangeDownEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16command_receivedEPvS0_S0_S0_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService27Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15lookupInterruptEibPP21IOInterruptController in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject2Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry13childFromPathEPKcPK15IORegistryPlanePcPi in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry27Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService23currentPowerConsumptionEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService24mapDeviceMemoryWithIndexEjm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16allowPowerChangeEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry29Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13getPMworkloopEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry11setPropertyEPKcPvj in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService24getDeviceMemoryWithIndexEj in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry11Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService34Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry11detachAboveEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry16setPropertyTableEP12OSDictionary in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService15Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry13Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15nextIdleTimeoutE12UnsignedWideS0_j in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13setPowerStateEmPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject3Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry15Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry11setPropertyEPK8OSStringP8OSObject in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService17getAggressivenessEmPm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry9detachAllEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService5closeEPS_m in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry17Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK8OSObject7releaseEi in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService12clampPowerOnEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService12didTerminateEPS_mPb in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService9terminateEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry26_RESERVEDIORegistryEntry19Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16registerInterestEPK8OSSymbolPFiPvS3_mPS_S3_jES3_S3_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15OSMetaClassBase25_RESERVEDOSMetaClassBase5Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN8OSObject19_RESERVEDOSObject15Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService41Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService17applyToInterestedEPK8OSSymbolPFvP8OSObjectPvES5_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService10adjustBusyEl in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN11OSMetaClass21_RESERVEDOSMetaClass5Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService22Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry17matchPathLocationEPKcPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService17cancelPowerChangeEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry11getPropertyEPKc in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService19serializePropertiesEP11OSSerialize in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService22copyClientWithCategoryEPK8OSSymbol in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry14removePropertyEPK8OSSymbol in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15probeCandidatesEP12OSOrderedSet in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject4Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService10joinPMtreeEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13newUserClientEP4taskPvmPP12IOUserClient in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK11OSMetaClass12getMetaClassEv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry14removePropertyEPKc in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13messageClientEmP8OSObjectPvj in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService19_RESERVEDIOService6Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService12tellChangeUpEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService22powerStateWillChangeToEmmPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16stringFromReturnEi in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry21getChildFromComponentEPPKcPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService10Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20unlockForArbitrationEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN11OSMetaClassC2EPKcPKS_j in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry4initEPS_PK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService12passiveMatchEP12OSDictionaryb in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15powerChangeDoneEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13matchLocationEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService38Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry11getPropertyEPK8OSSymbol in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService19Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry25_RESERVEDIORegistryEntry7Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService31initialPowerStateForDomainStateEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry12copyPropertyEPK8OSStringPK15IORegistryPlanem in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService15getDeviceMemoryEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry20getChildSetReferenceEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry11setLocationEPK8OSSymbolPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService18doServiceTerminateEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService17comparePropertiesEP12OSDictionaryP12OSCollection in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject5Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN8OSObject19_RESERVEDOSObject13Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK15IORegistryEntry8copyNameEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService9getClientEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry14removePropertyEPK8OSString in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService14doServiceMatchEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService19unregisterInterruptEi in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry13getChildEntryEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService45Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService26Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry12copyPropertyEPK8OSSymbol in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService13startMatchingEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN11OSMetaClass21_RESERVEDOSMetaClass0Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    _current_thread in /System/Library/Extensions/System.kext/PlugIns/Mach.kext (10.7.0)
    __ZNK11OSMetaClass9serializeEP11OSSerialize in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService6PMstopEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry17getParentIteratorEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject6Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK8OSObject13taggedReleaseEPKvi in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService33Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15OSMetaClassBase25_RESERVEDOSMetaClassBase7Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService22PM_Clamp_Timer_ExpiredEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService14Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService16applyToProvidersEPFvPS_PvES1_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService6attachEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry7setNameEPK8OSSymbolPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    _OSRuntimeFinalizeCPP in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry11setLocationEPKcPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK11OSMetaClass7releaseEv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN8OSObject19_RESERVEDOSObject11Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK15IORegistryEntry12copyPropertyEPK8OSSymbolPK15IORegistryPlanem in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK11OSMetaClass7releaseEi in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN8OSObject4initEv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZNK15IORegistryEntry12compareNamesEP8OSObjectPP8OSString in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService10makeUsableEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService19registerPowerDriverEPS_P14IOPMPowerStatem in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService24acknowledgeSetPowerStateEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN8OSObject18_RESERVEDOSObject7Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN9IOService6detachEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService40Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20_RESERVEDIOService21Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry12copyLocationEPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService12requestProbeEm in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService10systemWakeEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService22acknowledgePowerChangeEPS_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry11getPropertyEPK8OSString in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK15IORegistryEntry7getPathEPcPiPK15IORegistryPlane in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK11OSMetaClass14getRetainCountEv in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN11OSMetaClass21_RESERVEDOSMetaClass3Ev in /System/Library/Extensions/System.kext/PlugIns/Libkern.kext (10.7.0)
    __ZN15IORegistryEntry25_RESERVEDIORegistryEntry9Ev in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN9IOService20callPlatformFunctionEPKcbPvS2_S2_S2_ in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZNK9IOService8getStateEv in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)
    __ZN15IORegistryEntry13setPropertiesEP8OSObject in /System/Library/Extensions/System.kext/PlugIns/IOKit.kext (10.7.0)

2011年4月20日 星期三

atomic operation in mac driver

SInt32 OSDecrementAtomic(volatile SInt32 * address);
SInt32 OSIncrementAtomic(volatile SInt32 * address);

2011年4月19日 星期二

mac driver plist

mac driver plist
mac driver:

1. CFBundleIdentifier
unique id for kext
ex:
com.deeplove.test
it does not need to match with IOClass

2. OSBundleLibraries
define depended libraries
we can use kextlibs to find linked libraries
ex:
kextlibs -xml GenericKext.kext
->
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.libkern</key>
<string>10.4</string>
</dict>
the match version number lib is define in OSBundleCompatibleVersion
ex:
<key>OSBundleCompatibleVersion</key>
<string>1.0</string>

3. IOKitPersonalities
ex:
<key>IOKitPersonalities</key>
<dict>
<key>MyIokitDriver</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.yourcompany.driver.MyIokitDriver</string>
<key>IOClass</key>
<string>com_yourcompany_driver_MyIokitDriver</string>
<key>IOKitDebug</key>
<integer>65535</integer>
<key>IOProviderClass</key>
<string>IOResources</string>
<key>IOMatchCategory</key>
<string>com_yourcompany_driver_MyIokitDriver</string>
</dict>
</dict>
CFBundleIdentifier in IOKitPersonalities must be the same  with outer CFBundleIdentifier
IOProviderClass:
 indicates the class of the provider objects that your driver can match on

IOMatchCategory:
 allows other drivers to match on the same device as your driver,
 as long as the drivers values for this property differ



2011年4月18日 星期一

create install package for kext

reference:
http://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptPackaging/packaging_tutorial.html%23//apple_ref/doc/uid/20002368-CHDCBCJA

1. create dir for kext
    cd /tmp
    sudo mkdir  tempKext

2. copy kext into dir
   cd /KEXT_PROJECT_PATH/build/Release
   sudo cp -R test.kext  /tmp/tempKext

3. use PackageMaker to create install package
    (/Developer/Application/Utilities)
    drag tempKext dir into PackageMaker window
    save editing result as .pmdoc file( PackageMaker file)

4. build
    create .pkg file (install file)

.







2011年4月12日 星期二

find element in ioregistry

from client program:


#include <IOKit/network/IOEthernetInterface.h>
#include <IOKit/IOType.h>




int findClassesInIoregistry(io_iterator_t*  iterator, char *match_name)
{
        CFDictionaryRef classToMatch;
kern_return_t kernResult; 
classToMatch = IOServiceMatching(match_name);
if (classToMatch == NULL)
        {
              return -1;
        }
// use class name to match
        kernResult = IOServiceGetMatchingServices(kIOMasterPortDefault,    
                      classToMatch, iterator);
if (kernResult != KERN_SUCCESS
        {
        
             return -1;
        }
return kIOReturnSuccess;
}


io_iterator_t ethernetInterfaceIterator;
result = findClassesInIoregistry(& ethernetInterfaceIterator, kIOEthernetInterfaceIterator);
if(result == kIOReturnSuccess)
{
        io_service_t ethernetInterface;
    while(ethernetInterface = IOIteratorNext(ethernetInterfaceIterator))
    {
        NSString *bsdName =
             (NSString*)IORegistryEntrySearchCFProperty(ethernetInterface,
                                                        kIOServicePlane
                                                        CFSTR("BSD Name"), 
                                                        kCFAllocatorDefault,
                                                   kIORegistryIterateRecursively);


       io_service_t ethernetController;
       result = IORegistryEntryGetParentEntry(ethernetInterface, 
                                           kIOServicePlane
                                           &ethernetController);
       if(result == kIOReturnSuccess)
       {
        
           IOObjectRelease(ethernetController);
       }



        IOObjectRelease(ethernetInterface);
        
    }
    IOObjectRelease(ethernetInterfaceIterator);
}



from driver program:


OSIterator *blockDriverIter =  this->getProviderIterator();
com_my_BlockStorageDriver *blockDriver;

if(blockDriverIter)

{
while (blockDriver = (com_my_BlockStorageDriver*)blockDriverIter->getNextObject()) 
        {
    
IOLog("blockDriver %p inAct %d\n", blockDriver,

blockDriver->isInactive());

   
}
blockDriverIter->release();
}






2011年4月11日 星期一

IO statistics in mac

From IORegistryExplorer, check IOBlockStorageDriver 

IOUserClient

reference sample code from Apple:
SimpleUserClient


IOExternalMethodDispatch structure:

struct IOExternalMethodDispatch
{
    IOExternalMethodAction function;
    uint32_t     checkScalarInputCount;
    uint32_t     checkStructureInputSize;
    uint32_t     checkScalarOutputCount;
    uint32_t     checkStructureOutputSize;
};

2011年4月8日 星期五

share memory between app and kernel on mac os

memory allocated in the kernel cannot be written to by applications


 if a buffer must be modified by an application, the buffer must be allocated by that program, not by the kernel

2011年4月7日 星期四

mac driver debug

1. download kernel debug kit from Apple website
ex:
kernel_debug_kit_10.6.7_10j869.dmg



2.  create kext symbol file
ex:
find address from crash report (/Library/Logs/DiagnosticReports/)

Thu Apr  7 15:19:35 2011
panic(cpu 0 caller 0xffffff80002cffca): Kernel trap at 0xffffff8000521c10, type 14=page fault, registers:
CR0: 0x000000008001003b, CR2: 0x0000000000000000, CR3: 0x0000000000100000, CR4: 0x0000000000000660
RAX: 0xffffff800918f260, RBX: 0xffffff8009a45c00, RCX: 0x00000000f25d0000, RDX: 0xffffff80088a5e20
RSP: 0xffffff804a4db790, RBP: 0xffffff804a4db7b0, RSI: 0x0000000020000001, RDI: 0x0000000000000000
R8:  0x000000000000000a, R9:  0x0000000000000000, R10: 0x0000000000000000, R11: 0xffffff80004f3b3a
R12: 0xffffff8008ce1000, R13: 0xffffff8009a45c00, R14: 0xffffff8009a459c0, R15: 0x0000000000000000
RFL: 0x0000000000010246, RIP: 0xffffff8000521c10, CS:  0x0000000000000008, SS:  0x0000000000000000
Error code: 0x0000000000000000

Backtrace (CPU 0), Frame : Return Address
0xffffff804a4db430 : 0xffffff8000204b99
0xffffff804a4db530 : 0xffffff80002cffca
0xffffff804a4db680 : 0xffffff80002e20da
0xffffff804a4db690 : 0xffffff8000521c10
0xffffff804a4db7b0 : 0xffffff8000521408
0xffffff804a4db7e0 : 0xffffff7f806e699a
0xffffff804a4db970 : 0xffffff7f806defca
0xffffff804a4db9e0 : 0xffffff7f806e76f9
0xffffff804a4dba30 : 0xffffff7f8067f5ad
0xffffff804a4dbaa0 : 0xffffff7f806807e2
0xffffff804a4dbba0 : 0xffffff7f80680191
0xffffff804a4dbbd0 : 0xffffff7f80680458
0xffffff804a4dbc50 : 0xffffff7f806e6d30
0xffffff804a4dbcb0 : 0xffffff80005267da
0xffffff804a4dbd20 : 0xffffff80005239bf
0xffffff804a4dbd40 : 0xffffff8000521e78
0xffffff804a4dbd70 : 0xffffff800052649f
0xffffff804a4dbda0 : 0xffffff8000523a07
0xffffff804a4dbde0 : 0xffffff80005267da
0xffffff804a4dbe50 : 0xffffff80005239bf
0xffffff804a4dbd40 : 0xffffff8000521e78
0xffffff804a4dbd70 : 0xffffff800052649f
0xffffff804a4dbda0 : 0xffffff8000523a07
0xffffff804a4dbde0 : 0xffffff80005267da
0xffffff804a4dbe50 : 0xffffff80005239bf
0xffffff804a4dbe70 : 0xffffff8000521e78
0xffffff804a4dbea0 : 0xffffff800052649f
0xffffff804a4dbed0 : 0xffffff8000523a07
0xffffff804a4dbf10 : 0xffffff7f806c276b
0xffffff804a4dbf40 : 0xffffff7f806c09f6
0xffffff804a4dbf60 : 0xffffff800028504e
0xffffff804a4dbfa0 : 0xffffff80002c7387
      Kernel Extensions in backtrace (with dependencies):
         com.eonpath.driver.TestC(1.0.1)@0xffffff7f806dc000->0xffffff7f806edfff
            dependency: com.apple.iokit.IOSCSIBlockCommandsDevice(2.6.5)@0xffffff7f806be000
            dependency: com.ift.driver.TestB(1.0.0)@0xffffff7f806ce000
            dependency: com.apple.iokit.IOStorageFamily(1.6.2)@0xffffff7f80679000
            dependency: com.apple.iokit.IOSCSIArchitectureModelFamily(2.6.5)@0xffffff7f806a5000
         com.apple.iokit.IOSCSIBlockCommandsDevice(2.6.5)@0xffffff7f806be000->0xffffff7f806cdfff
            dependency: com.apple.iokit.IOSCSIArchitectureModelFamily(2.6.5)@0xffffff7f806a5000
            dependency: com.apple.iokit.IOStorageFamily(1.6.2)@0xffffff7f80679000
         com.apple.iokit.IOStorageFamily(1.6.2)@0xffffff7f80679000->0xffffff7f80692fff

kextutil -n -s /tmp /System/Library/Extensions/test.kext
-s: location for symbol file

Notice: Using running kernel architecture x86_64 to generate symbols.
No kernel file specified; using running kernel for linking.
/System/Library/Extensions/mpioDriver.kext appears to be loadable (not including linkage for on-disk libraries).

Enter the hexadecimal load addresses for these extensions
(press Return to skip symbol generation for an extension):

com.apple.iokit.IOSCSIArchitectureModelFamily: 0xffffff7f806a5000
com.apple.iokit.IOStorageFamily: 0xffffff7f80679000
com.apple.iokit.IOSCSIBlockCommandsDevice: 0xffffff7f806be000
com.peter.driver.testB: 0xffffff7f806ce000
com.peter.driver.testC: 0xffffff7f806dc000

->
.sym files are created at /tmp/

3. find source code line number that triggers panic:
ex:

gdb /Volumes/KernelDebugKit/mach_kernel
--> set kext-symbol-file-path /tmp
--> add-kext ~/test.kext
--> set print asm-demangle on
--> x/i 0xffffff7f806e699a
find the function mapped to this address
--> disass 0xffffff7f806e699a
show this function's content
--> info line * 0xffffff7f806e699a
show the line number of EIP in the function

note:
0xffffff7f806e699a is address for our driver in backtrace


2011年4月6日 星期三

modify entry in ioregistry

OSDictionary *dic = OSDictionary::withCapacity(6);
OSNumber *index = OSNumber::withNumber(100, 32);
dic->setObject("TEST_INDEX", index);
index->release();
this->setProperty("TEST_DIC", dic);
dic->release();
index->setValue(1);

note:
we can not modify collection directly
Following code will trigger crash
dic->setObject("testIndex", OSNumber::withNumber(200, 32));
If we want to add or delete entry in collection,
we must create new collection and  use setProperty to replace old collection

mac crash log

location
/Library/Logs/DiagnosticReports

read log from Console App:

mac driver command

ioclasscount
displays the instance counts of OSObject-based C++ classes in the kernel
ex:
ioclasscount | grep My

->
com_MyCompany_driver_MyDriver = 1

kextutil:

load, diagnose problems with, and generate symbols for kernel extensions
ex:
kextutil test.kext

iokit driver

TestIokit.h


#include <IOKit/IOService.h>

class com_MyCompany_driver_MyDriver : public IOService
{
OSDeclareDefaultStructors(com_MyCompany_driver_MyDriver)
public:
    virtual bool init(OSDictionary *dictionary = 0);
    virtual void free(void);
    virtual IOService *probe(IOService *provider, SInt32 *score);
    virtual bool start(IOService *provider);
    virtual void stop(IOService *provider);
};

TestIokit.cpp


#include <IOKit/IOLib.h>
#include "MyDriver.h"

// This required macro defines the class's constructors, destructors,
// and several other methods I/O Kit requires.
OSDefineMetaClassAndStructors(com_MyCompany_driver_MyDriver, IOService)

// Define the driver's superclass.
#define super IOService

bool com_MyCompany_driver_MyDriver::init(OSDictionary *dict)
{
    bool result = super::init(dict);
    IOLog("Initializing\n");
    return result;
}

void com_MyCompany_driver_MyDriver::free(void)
{
    IOLog("Freeing\n");
    super::free();
}

IOService *com_MyCompany_driver_MyDriver::probe(IOService *provider,
SInt32 *score)
{
    IOService *result = super::probe(provider, score);
    IOLog("Probing\n");
    return result;
}

bool com_MyCompany_driver_MyDriver::start(IOService *provider)
{
    bool result = super::start(provider);
    IOLog("Starting\n");
    return result;
}

void com_MyCompany_driver_MyDriver::stop(IOService *provider)
{
    IOLog("Stopping\n");
    super::stop(provider);
}

TestIokit-Info.plist