#include <IOKit/ndrvsupport/IONDRVLibraries.h>
IOKit/ndrvsupport/IONDRVLibraries.h
enum(anonymous)
NameRegistry error codes
| nrLockedErr | -2536 | |
| nrNotEnoughMemoryErr | -2537 | |
| nrInvalidNodeErr | -2538 | |
| nrNotFoundErr | -2539 | |
| nrNotCreatedErr | -2540 | |
| nrNameErr | -2541 | |
| nrNotSlotDeviceErr | -2542 | |
| nrDataTruncatedErr | -2543 | |
| nrPowerErr | -2544 | |
| nrPowerSwitchAbortErr | -2545 | |
| nrTypeMismatchErr | -2546 | |
| nrNotModifiedErr | -2547 | |
| nrOverrunErr | -2548 | |
| nrResultCodeBase | -2549 | |
| nrPathNotFound | -2550 | a path component lookup failed |
| nrPathBufferTooSmall | -2551 | buffer for path is too small |
| nrInvalidEntryIterationOp | -2552 | invalid entry iteration operation |
| nrPropertyAlreadyExists | -2553 | property already exists |
| nrIterationDone | -2554 | iteration operation is done |
| nrExitedIteratorScope | -2555 | outer scope of iterator was exited |
| nrTransactionAborted | -2556 | transaction was aborted |
| gestaltUndefSelectorErr | -5551 | undefined selector was passed to Gestalt |
enum(anonymous)
| kNVRAMProperty | 32 | matches NR |
function_IONDRVLibrariesInitialize
IOReturn _IONDRVLibrariesInitialize(IOService * provider)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Initializes the NDRV library emulation (Name Registry, Video Services Library, and driver services state) for the given provider before a native driver is started. Returns an IOReturn code. Implemented by the IONDRVSupport family, not in xnu.
function_IONDRVLibrariesFinalize
IOReturn _IONDRVLibrariesFinalize(IOService * provider)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Tears down the NDRV library emulation state established by _IONDRVLibrariesInitialize for the given provider, after the native driver is stopped. Returns an IOReturn code.
macrokAAPLRegEntryIDKey
#define kAAPLRegEntryIDKey "AAPL,RegEntryID"
typedefRegPropertyValue
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*****************************************************************************
Foundation Types
Value of a property
typedef void * RegPropertyValue
enum(anonymous)
*****************************************************************************
Root Entry Name Definitions (Applies to all Names in the RootNameSpace)
+ Names are a colon-separated list of name components. Name components
may not themselves contain colons.
+ Names are presented as null-terminated ASCII character strings.
+ Names follow similar parsing rules to Apple file system absolute
and relative paths. However the '::' parent directory syntax is
not currently supported.
Max length of Entry Name
| kRegCStrMaxEntryNameLength | 47 |
typedefRegCStrEntryNamePtr
typedef char * RegCStrEntryNamePtr
typedefRegCStrEntryNameBuf
length of RegCStrEntryNameBuf = kRegCStrMaxEntryNameLength+1
typedef char RegCStrEntryNameBuf[48]
typedefRegCStrPathName
typedef char RegCStrPathName
typedefRegPathNameSize
typedef UInt32 RegPathNameSize
enum(anonymous)
| kRegPathNameSeparator | 58 | 0x3A |
| kRegEntryNameTerminator | 0 | '\0' |
| kRegPathNameTerminator | 0 | '\0' |
enum(anonymous)
*****************************************************************************
Property Name and ID Definitions
(Applies to all Properties Regardless of NameSpace)
| kRegMaximumPropertyNameLength | 31 | Max length of Property Name |
| kRegPropertyNameTerminator | 0 | '\0' |
typedefRegPropertyNameBuf
typedef char RegPropertyNameBuf[32]
typedefRegPropertyName
typedef char RegPropertyName
typedefRegPropertyNamePtr
typedef char * RegPropertyNamePtr
enum(anonymous)
| kRegMaxPropertyNameLength | 31 |
typedefRegIterationOp
*****************************************************************************
Iteration Operations
These specify direction when traversing the name relationships
typedef UInt32 RegIterationOp
typedefRegEntryIterationOp
typedef RegIterationOp RegEntryIterationOp
enum(anonymous)
| kRegIterRoot | 2 | Absolute locations "Upward" Relationships |
| kRegIterParents | 3 | include all parent(s) of entry |
| kRegIterChildren | 4 | "Downward" Relationships include all children |
| kRegIterSubTrees | 5 | include all sub trees of entry |
| kRegIterDescendants | 5 | include all descendants of entry |
| kRegIterSibling | 6 | "Horizontal" Relationships include all siblings |
| kRegIterContinue | 1 | Keep doing the same thing |
typedefRegModifiers
*****************************************************************************
Name Entry and Property Modifiers
Modifiers describe special characteristics of names
and properties. Modifiers might be supported for
some names and not others.
Device Drivers should not rely on functionality
specified as a modifier.
typedef UInt32 RegModifiers
typedefRegEntryModifiers
typedef RegModifiers RegEntryModifiers
typedefRegPropertyModifiers
typedef RegModifiers RegPropertyModifiers
enum(anonymous)
| kRegNoModifiers | 0 | no entry modifiers in place |
| kRegUniversalModifierMask | 65535 | mods to all entries |
| kRegNameSpaceModifierMask | 16711680 | mods to all entries within namespace |
| kRegModifierMask | 4278190080 | mods to just this entry |
enum(anonymous)
Universal Property Modifiers
| kRegPropertyValueIsSavedToNVRAM | 32 | property is non-volatile (saved in NVRAM) |
| kRegPropertyValueIsSavedToDisk | 64 | property is non-volatile (saved on disk) |
typedefRegEntryIter
typedef IORegistryIterator * RegEntryIter
typedefRegPropertyIter
typedef OSIterator * RegPropertyIter
functionRegistryEntryIDCopy
OSStatus RegistryEntryIDCopy(const RegEntryID * entryID, RegEntryID * to)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: copies the registry entry reference entryID into to, so both refer to the same entry. In this environment a RegEntryID refers to an IORegistryEntry in the device tree plane. Returns noErr or a NameRegistry error code (nr*).
functionRegistryEntryIDInit
OSStatus RegistryEntryIDInit(RegEntryID * entryID)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: initializes a RegEntryID to the null (invalid) state. Must be applied to a RegEntryID before first use; the id is later disposed with RegistryEntryIDDispose.
functionRegistryEntryIDCompare
Boolean RegistryEntryIDCompare(const RegEntryID * id1, const RegEntryID * id2)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: returns true if id1 and id2 refer to the same registry entry (or both are null), false otherwise.
functionRegistryPropertyGetSize
OSStatus RegistryPropertyGetSize( const RegEntryID * entryID, const RegPropertyName * propertyName, RegPropertyValueSize * propertySize )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: returns in *propertySize the size in bytes of the named property of the entry entryID. Returns noErr on success or a NameRegistry error code (nr*), e.g. when the property does not exist.
functionRegistryPropertyGet
OSStatus RegistryPropertyGet( const RegEntryID * entryID, const RegPropertyName * propertyName, void * propertyValue, RegPropertyValueSize * propertySize )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: copies the value of the named property of entry entryID into propertyValue. On entry *propertySize is the size of the caller's buffer; on return it is set to the property's size. Returns noErr or a NameRegistry error code (nr*).
functionRegistryPropertyCreate
OSStatus RegistryPropertyCreate( const RegEntryID * entryID, const RegPropertyName * propertyName, const void * propertyValue, RegPropertyValueSize propertySize )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: creates a property named propertyName on entry entryID with the propertySize bytes at propertyValue as its value. Property names are limited to kRegMaximumPropertyNameLength (31) characters. Returns noErr or a NameRegistry error code (nr*).
functionRegistryPropertyDelete
OSStatus RegistryPropertyDelete( const RegEntryID * entryID, const RegPropertyName * propertyName )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: removes the property named propertyName from entry entryID. Returns noErr or a NameRegistry error code (nr*).
functionRegistryPropertySet
OSStatus RegistryPropertySet( const RegEntryID * entryID, const RegPropertyName * propertyName, const void * propertyValue, RegPropertyValueSize propertySize )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: sets the value of the property named propertyName on entry entryID to the propertySize bytes at propertyValue. Returns noErr or a NameRegistry error code (nr*).
functionRegistryPropertyGetMod
OSStatus RegistryPropertyGetMod( const RegEntryID * entry, const RegPropertyName * name, RegPropertyModifiers * modifiers )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: returns in *modifiers the modifier flags of the named property, e.g. kRegPropertyValueIsSavedToNVRAM or kRegPropertyValueIsSavedToDisk for non-volatile properties. Returns noErr or a NameRegistry error code (nr*).
functionRegistryPropertySetMod
OSStatus RegistryPropertySetMod( const RegEntryID * entry, const RegPropertyName * name, RegPropertyModifiers modifiers )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: sets the modifier flags of the named property. Setting kRegPropertyValueIsSavedToNVRAM marks the property non-volatile, so its value is preserved in NVRAM; drivers used this for saved display settings. Returns noErr or a NameRegistry error code (nr*).
functionRegistryPropertyIterateCreate
OSStatus RegistryPropertyIterateCreate(const RegEntryID * entry, RegPropertyIter * cookie)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: creates an iterator over the properties of the given entry, returned in *cookie. In this environment a RegPropertyIter is an OSIterator. Dispose of it with RegistryPropertyIterateDispose. Returns noErr or a NameRegistry error code (nr*).
functionRegistryPropertyIterateDispose
OSStatus RegistryPropertyIterateDispose(RegPropertyIter * cookie)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: releases a property iterator created by RegistryPropertyIterateCreate. Returns noErr or a NameRegistry error code (nr*).
functionRegistryPropertyIterate
OSStatus RegistryPropertyIterate( RegPropertyIter * cookie, RegPropertyName * foundProperty, Boolean * done )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: advances a property iterator, copying the next property's name into foundProperty. *done is set true when the iteration is exhausted (no property is then returned). Returns noErr or a NameRegistry error code (nr*).
functionRegistryEntryIterateCreate
OSStatus RegistryEntryIterateCreate(RegEntryIter * cookie)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: creates an iterator over registry entries, returned in *cookie. In this environment a RegEntryIter is an IORegistryIterator over the device tree plane. Advance it with RegistryEntryIterate; dispose of it with RegistryEntryIterateDispose. Returns noErr or a NameRegistry error code (nr*).
functionRegistryEntryIterateDispose
OSStatus RegistryEntryIterateDispose(RegEntryIter * cookie)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: releases an entry iterator created by RegistryEntryIterateCreate. Returns noErr or a NameRegistry error code (nr*).
functionRegistryEntryIterate
OSStatus RegistryEntryIterate( RegEntryIter * cookie, RegEntryIterationOp relationship, RegEntryID * foundEntry, Boolean * done )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: advances an entry iterator according to relationship (kRegIterChildren, kRegIterSubTrees/kRegIterDescendants, kRegIterParents, kRegIterRoot, or kRegIterContinue to repeat the previous operation), returning the next entry in *foundEntry. *done is set true when the iteration is exhausted. Returns noErr or a NameRegistry error code (nr*).
functionRegistryCStrEntryToName
OSStatus RegistryCStrEntryToName( const RegEntryID * entryID, RegEntryID * parentEntry, RegCStrEntryName * nameComponent, Boolean * done )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: returns the name component of entry entryID as a C string in nameComponent (at most kRegCStrMaxEntryNameLength, 47, characters) and a reference to its parent entry in parentEntry; *done indicates when the root has been reached. Repeated application walks an entry's path toward the root. Returns noErr or a NameRegistry error code (nr*).
functionRegistryCStrEntryLookup
OSStatus RegistryCStrEntryLookup( const RegEntryID * parentEntry, const RegCStrPathName * path, RegEntryID * newEntry )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: looks up the entry named by path, a colon-separated path of entry name components interpreted relative to parentEntry (absolute and relative forms follow classic path parsing; the '::' parent syntax is not supported), returning it in *newEntry. Returns noErr or a NameRegistry error code (nr*), e.g. nrPathNotFound.
functionRegistryEntryIDDispose
OSStatus RegistryEntryIDDispose(RegEntryID * entryID)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Name Registry emulation: disposes of a registry entry reference obtained from lookup, iteration, or RegistryEntryIDCopy, releasing its underlying object and returning the id to the null state. Returns noErr or a NameRegistry error code (nr*).
enum(anonymous)
| paramErr | -50 | error in user parameter list |
| noHardwareErr | -200 | Sound Manager Error Returns |
| notEnoughHardwareErr | -201 | Sound Manager Error Returns |
| userCanceledErr | -128 | |
| qErr | -1 | queue element not found during deletion |
| vTypErr | -2 | invalid queue element |
| corErr | -3 | core routine number out of range |
| unimpErr | -4 | unimplemented core routine |
| SlpTypeErr | -5 | invalid queue element |
| seNoDB | -8 | no debugger installed to handle debugger command |
| controlErr | -17 | I/O System Errors |
| statusErr | -18 | I/O System Errors |
| readErr | -19 | I/O System Errors |
| writErr | -20 | I/O System Errors |
| badUnitErr | -21 | I/O System Errors |
| unitEmptyErr | -22 | I/O System Errors |
| openErr | -23 | I/O System Errors |
| closErr | -24 | I/O System Errors |
| dRemovErr | -25 | tried to remove an open driver |
| dInstErr | -26 | DrvrInstall couldn't find driver in resources |
| badCksmErr | -69 | addr mark checksum didn't check |
enum(anonymous)
| durationMicrosecond | -1 | Microseconds are negative |
| durationMillisecond | 1 | Milliseconds are positive |
| durationSecond | 1000 | 1000 * durationMillisecond |
| durationMinute | 60000 | 60 * durationSecond, |
| durationHour | 3600000 | 60 * durationMinute, |
| durationDay | 86400000 | 24 * durationHour, |
| durationNoWait | 0 | don't block |
| durationForever | 2147483647 | no time limit |
enum(anonymous)
| clutType | 0 | 0 if lookup table |
| fixedType | 1 | 1 if fixed table |
| directType | 2 | 2 if direct values |
| RGBDirect | 16 | 16 & 32 bits/pixel pixelType value |
typedefHardwareCursorDescriptorRec
typedef struct IOHardwareCursorDescriptor HardwareCursorDescriptorRec
typedefHardwareCursorDescriptorPtr
typedef HardwareCursorDescriptorRec * HardwareCursorDescriptorPtr
typedefHardwareCursorInfoRec
typedef struct IOHardwareCursorInfo HardwareCursorInfoRec
typedefHardwareCursorInfoPtr
typedef HardwareCursorInfoRec * HardwareCursorInfoPtr
typedefInterruptServiceType
typedef ResType InterruptServiceType
typedefInterruptServiceIDType
typedef struct _VSLService * InterruptServiceIDType
typedefInterruptServiceIDPtr
typedef InterruptServiceIDType * InterruptServiceIDPtr
enum(anonymous)
| kVBLInterruptServiceType | 1986161696 | |
| kHBLInterruptServiceType | 1751280672 | |
| kFrameInterruptServiceType | 1718772077 | |
| kConnectInterruptServiceType | 1684236576 | Renamed -- Use kFBCheckInterruptServiceType |
| kFBConnectInterruptServiceType | 1684236576 | Demand to check configuration (Hardware unchanged) |
| kFBChangedInterruptServiceType | 1667788391 | Demand to rebuild (Hardware has reinitialized on dependent change) |
| kFBOfflineInterruptServiceType | 1919249782 | Demand to remove framebuffer (Hardware not available on dependent change -- but must not buserror) |
| kFBOnlineInterruptServiceType | 1633969184 | Notice that hardware is available (after being removed) |
enum(anonymous)
| kVSLClamshellStateGestaltType | 1668047213 |
functionVSLNewInterruptService
OSErr VSLNewInterruptService( RegEntryID * serviceDevice, InterruptServiceType serviceType, InterruptServiceIDPtr serviceID )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Video Services Library emulation: registers a new interrupt service of the given type (kVBLInterruptServiceType, kHBLInterruptServiceType, kFrameInterruptServiceType, kFBConnectInterruptServiceType, kFBChangedInterruptServiceType, kFBOfflineInterruptServiceType, kFBOnlineInterruptServiceType) for the device identified by serviceDevice, returning an opaque id in *serviceID. NDRV framebuffer drivers used this to publish VBL and connection-change interrupt sources consumed by IONDRVFramebuffer. Returns an OSErr.
functionVSLDisposeInterruptService
OSErr VSLDisposeInterruptService(InterruptServiceIDType serviceID)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Video Services Library emulation: disposes of an interrupt service created by VSLNewInterruptService. Returns an OSErr.
functionVSLDoInterruptService
OSErr VSLDoInterruptService(InterruptServiceIDType serviceID)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Video Services Library emulation: called by the driver each time the condition of the given interrupt service occurs (e.g. a vertical blank), delivering the event to the service's registered consumer. Returns an OSErr.
functionVSLPrepareCursorForHardwareCursor
Boolean VSLPrepareCursorForHardwareCursor( void * cursorRef, IOHardwareCursorDescriptor * hardwareDescriptor, IOHardwareCursorInfo * hwCursorInfo )
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu SDK header IOKit/ndrvsupport/IONDRVLibraries.h (implementation lives in the IONDRVSupport family, not in xnu)
Legacy Mac OS NDRV compatibility shim, part of the emulation environment IONDRVSupport provides for PowerPC-era native ('ndrv') display drivers; obsolete on current systems. Video Services Library emulation: converts the cursor image identified by cursorRef into the hardware cursor format described by hardwareDescriptor, filling in hwCursorInfo (colors, dimensions, pixel data). Returns true if the cursor could be converted to the described hardware format, false otherwise. Used by NDRV framebuffer drivers implementing hardware cursors.
enum(anonymous)
| developStage | 32 | Version Release Stage Codes |
| alphaStage | 64 | |
| betaStage | 96 | |
| finalStage | 128 |
typedefIOCommandID
typedef struct OpaqueIOCommandID* IOCommandID
typedefIOCommandKind
typedef UInt32 IOCommandKind
typedefIOCommandCode
typedef UInt32 IOCommandCode