IOKitLib.h
Overview
IOKitLib implements non-kernel task access to common IOKit object types - IORegistryEntry, IOService, IOIterator etc. These functions are generic - families may provide API that is more specific.
IOKitLib represents IOKit objects outside the kernel with the types io_object_t, io_registry_entry_t, io_service_t, & io_connect_t. Function names usually begin with the type of object they are compatible with - eg. IOObjectRelease can be used with any io_object_t. Inside the kernel, the c++ class hierarchy allows the subclasses of each object type to receive the same requests from user level clients, for example in the kernel, IOService is a subclass of IORegistryEntry, which means any of the IORegistryEntryXXX functions in IOKitLib may be used with io_service_t's as well as io_registry_t's. There are functions available to introspect the class of the kernel object which any io_object_t et al. represents. IOKit objects returned by all functions should be released with IOObjectRelease.
Included Headers
<sys/cdefs.h>
<mach/mach_types.h>
<mach/mach_init.h>
<CoreFoundation/CFBase.h>
<CoreFoundation/CFDictionary.h>
<CoreFoundation/CFRunLoop.h>
<IOKit/IOTypes.h>
<IOKit/IOKitKeys.h>
<IOKit/OSMessageNotification.h>
<AvailabilityMacros.h>
<dispatch/dispatch.h>
Topics
Miscellaneous
IOBSDNameMatching(_:_:_:)IOConnectAddClient(_:_:)IOConnectAddRef(_:)IOConnectGetService(_:_:)IOConnectMapMemory(_:_:_:_:_:_:)IOConnectMapMemory64(_:_:_:_:_:_:)IOConnectRelease(_:)IOConnectSetCFProperties(_:_:)IOConnectSetCFProperty(_:_:_:)IOConnectSetNotificationPort(_:_:_:_:)IOConnectUnmapMemory(_:_:_:_:)IOConnectUnmapMemory64(_:_:_:_:)IOCreateReceivePort(_:_:)IODispatchCalloutFromMessage(_:_:_:)IOIteratorIsValid(_:)IOIteratorNext(_:)IOIteratorReset(_:)IOKitGetBusyState(_:_:)IOKitWaitQuiet(_:_:)IOMasterPort(_:_:)IONotificationPortCreate(_:)IONotificationPortDestroy(_:)IONotificationPortGetMachPort(_:)IONotificationPortGetRunLoopSource(_:)IONotificationPortSetDispatchQueue(_:_:)IOObjectConformsTo(_:_:)IOObjectCopyBundleIdentifierForClass(_:)IOObjectCopyClass(_:)IOObjectCopySuperclassForClass(_:)IOObjectGetClass(_:_:)IOObjectGetKernelRetainCount(_:)IOObjectGetRetainCount(_:)IOObjectGetUserRetainCount(_:)IOObjectIsEqualTo(_:_:)IOObjectRelease(_:)IOObjectRetain(_:)IORegistryCreateIterator(_:_:_:_:)IORegistryEntryCreateCFProperties(_:_:_:_:)IORegistryEntryCreateCFProperty(_:_:_:_:)IORegistryEntryCreateIterator(_:_:_:_:)IORegistryEntryFromPath(_:_:)IORegistryEntryGetChildEntry(_:_:_:)IORegistryEntryGetChildIterator(_:_:_:)IORegistryEntryGetLocationInPlane(_:_:_:)IORegistryEntryGetName(_:_:)IORegistryEntryGetNameInPlane(_:_:_:)IORegistryEntryGetParentEntry(_:_:_:)IORegistryEntryGetParentIterator(_:_:_:)IORegistryEntryGetPath(_:_:_:)IORegistryEntryGetRegistryEntryID(_:_:)IORegistryEntryIDMatching(_:)IORegistryEntryInPlane(_:_:)IORegistryEntrySearchCFProperty(_:_:_:_:_:)IORegistryEntrySetCFProperties(_:_:)IORegistryEntrySetCFProperty(_:_:_:)IORegistryGetRootEntry(_:)IORegistryIteratorEnterEntry(_:)IORegistryIteratorExitEntry(_:)IOServiceAddInterestNotification(_:_:_:_:_:_:)IOServiceAddMatchingNotification(_:_:_:_:_:_:)IOServiceClose(_:)IOServiceGetBusyState(_:_:)IOServiceGetMatchingService(_:_:)IOServiceGetMatchingServices(_:_:_:)IOServiceMatching(_:)IOServiceMatchPropertyTable(_:_:_:)IOServiceNameMatching(_:)IOServiceOpen(_:_:_:_:)IOServiceRequestProbe(_:_:)IOServiceWaitQuiet(_:_:)
Callbacks
IOAsyncCallbackIOAsyncCallback0IOAsyncCallback1IOAsyncCallback2IOServiceInterestCallbackIOServiceMatchingCallback