const OSSymbol * gIORematchPersonalityKey;
const OSSymbol * gIORematchCountKey;
const OSSymbol * gIODEXTMatchCountKey;
+const OSSymbol * gIOSupportedPropertiesKey;
+const OSSymbol * gIOUserServicePropertiesKey;
#if !CONFIG_EMBEDDED
const OSSymbol * gIOServiceLegacyMatchingRegistryIDKey;
#endif
const OSSymbol * gIOServiceDEXTEntitlementsKey;
const OSSymbol * gIODriverKitEntitlementKey;
const OSSymbol * gIODriverKitUserClientEntitlementsKey;
+const OSSymbol * gIODriverKitUserClientEntitlementAllowAnyKey;
const OSSymbol * gIOMatchDeferKey;
const OSSymbol * gIOGeneralInterest;
gIOInterruptSpecifiersKey
= OSSymbol::withCStringNoCopy("IOInterruptSpecifiers");
+ gIOSupportedPropertiesKey = OSSymbol::withCStringNoCopy(kIOSupportedPropertiesKey);
+ gIOUserServicePropertiesKey = OSSymbol::withCStringNoCopy(kIOUserServicePropertiesKey);
+
gIOMapperIDKey = OSSymbol::withCStringNoCopy(kIOMapperIDKey);
gIOKitDebugKey = OSSymbol::withCStringNoCopy( kIOKitDebugKey );
gIOServiceDEXTEntitlementsKey = OSSymbol::withCStringNoCopy( kIOServiceDEXTEntitlementsKey );
gIODriverKitEntitlementKey = OSSymbol::withCStringNoCopy( kIODriverKitEntitlementKey );
gIODriverKitUserClientEntitlementsKey = OSSymbol::withCStringNoCopy( kIODriverKitUserClientEntitlementsKey );
+ gIODriverKitUserClientEntitlementAllowAnyKey = OSSymbol::withCStringNoCopy( kIODriverKitUserClientEntitlementAllowAnyKey );
gIOMatchDeferKey = OSSymbol::withCStringNoCopy( kIOMatchDeferKey );
gIOPlatformFunctionHandlerSet = OSSymbol::withCStringNoCopy(kIOPlatformFunctionHandlerSet);
}
if (doPhase2) {
if (kIOServiceNeedWillTerminate & victim->__state[1]) {
- _workLoopAction((IOWorkLoop::Action) &actionWillStop,
- victim, (void *)(uintptr_t) options, NULL );
+ if (NULL == victim->reserved->uvars) {
+ _workLoopAction((IOWorkLoop::Action) &actionWillStop,
+ victim, (void *)(uintptr_t) options);
+ } else {
+ actionWillStop(victim, options, NULL, NULL, NULL);
+ }
}
OSArray * notifiers;