/*
* Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
*
- * @APPLE_LICENSE_HEADER_START@
- *
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License"). You may not use this file except in compliance with the
- * License. Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- *
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
*/
/*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
*
- * Common symbol definitions for IOKit.
+ * Common symbol definitions for IOKit.
*
* HISTORY
*
#define _IOKIT_IOKITKEYS_H
// properties found in the registry root
-#define kIOKitBuildVersionKey "IOKitBuildVersion"
-#define kIOKitDiagnosticsKey "IOKitDiagnostics"
- // a dictionary keyed by plane name
-#define kIORegistryPlanesKey "IORegistryPlanes"
-#define kIOCatalogueKey "IOCatalogue"
+#define kIOKitBuildVersionKey "IOKitBuildVersion"
+#define kIOKitDiagnosticsKey "IOKitDiagnostics"
+// a dictionary keyed by plane name
+#define kIORegistryPlanesKey "IORegistryPlanes"
+#define kIOCatalogueKey "IOCatalogue"
// registry plane names
-#define kIOServicePlane "IOService"
-#define kIOPowerPlane "IOPower"
-#define kIODeviceTreePlane "IODeviceTree"
-#define kIOAudioPlane "IOAudio"
-#define kIOFireWirePlane "IOFireWire"
-#define kIOUSBPlane "IOUSB"
+#define kIOServicePlane "IOService"
+#define kIOPowerPlane "IOPower"
+#define kIODeviceTreePlane "IODeviceTree"
+#define kIOAudioPlane "IOAudio"
+#define kIOFireWirePlane "IOFireWire"
+#define kIOUSBPlane "IOUSB"
+
+// registry ID number
+#define kIORegistryEntryIDKey "IORegistryEntryID"
+// property name to get array of property names
+#define kIORegistryEntryPropertyKeysKey "IORegistryEntryPropertyKeys"
// IOService class name
-#define kIOServiceClass "IOService"
+#define kIOServiceClass "IOService"
// IOResources class name
-#define kIOResourcesClass "IOResources"
+#define kIOResourcesClass "IOResources"
// IOService driver probing property names
-#define kIOClassKey "IOClass"
-#define kIOProbeScoreKey "IOProbeScore"
-#define kIOKitDebugKey "IOKitDebug"
+#define kIOClassKey "IOClass"
+#define kIOProbeScoreKey "IOProbeScore"
+#define kIOKitDebugKey "IOKitDebug"
-// IOService matching property names
-#define kIOProviderClassKey "IOProviderClass"
-#define kIONameMatchKey "IONameMatch"
-#define kIOPropertyMatchKey "IOPropertyMatch"
-#define kIOPathMatchKey "IOPathMatch"
-#define kIOLocationMatchKey "IOLocationMatch"
-#define kIOResourceMatchKey "IOResourceMatch"
-#define kIOMatchedServiceCountKey "IOMatchedServiceCountMatch"
+// Properties to be supported as API
+#define kIOSupportedPropertiesKey "IOSupportedProperties"
+// Properties writable by dexts
+#define kIOUserServicePropertiesKey "IOUserServiceProperties"
-#define kIONameMatchedKey "IONameMatched"
-#define kIOMatchCategoryKey "IOMatchCategory"
-#define kIODefaultMatchCategoryKey "IODefaultMatchCategory"
+// IOService matching property names
+#define kIOProviderClassKey "IOProviderClass"
+#define kIONameMatchKey "IONameMatch"
+#define kIOPropertyMatchKey "IOPropertyMatch"
+#define kIOPropertyExistsMatchKey "IOPropertyExistsMatch"
+#define kIOPathMatchKey "IOPathMatch"
+#define kIOLocationMatchKey "IOLocationMatch"
+#define kIOParentMatchKey "IOParentMatch"
+#define kIOResourceMatchKey "IOResourceMatch"
+#define kIOResourceMatchedKey "IOResourceMatched"
+#define kIOMatchedServiceCountKey "IOMatchedServiceCountMatch"
+
+#define kIONameMatchedKey "IONameMatched"
+
+#define kIOMatchCategoryKey "IOMatchCategory"
+#define kIODefaultMatchCategoryKey "IODefaultMatchCategory"
+
+#define kIOMatchedPersonalityKey "IOMatchedPersonality"
+#define kIORematchPersonalityKey "IORematchPersonality"
+#define kIORematchCountKey "IORematchCount"
+#define kIODEXTMatchCountKey "IODEXTMatchCount"
+
+// Entitlements to check against dext process
+// Property is an array, one or more of which may match, of:
+// an array of entitlement strings, all must be present
+// Any array can be a single string.
+#define kIOServiceDEXTEntitlementsKey "IOServiceDEXTEntitlements"
+
+// Entitlement required to open dext connection
+#define kIODriverKitEntitlementKey "com.apple.developer.driverkit"
+
+// Entitlements required to open dext IOUserClient
+// Property is an array of strings containing CFBundleIdentifiers of service being opened
+#define kIODriverKitUserClientEntitlementsKey "com.apple.developer.driverkit.userclient-access"
+
+// Other DriverKit entitlements
+#define kIODriverKitUSBTransportEntitlementKey "com.apple.developer.driverkit.transport.usb"
+#define kIODriverKitHIDTransportEntitlementKey "com.apple.developer.driverkit.transport.hid"
+#define kIODriverKitHIDFamilyDeviceEntitlementKey "com.apple.developer.driverkit.family.hid.device"
+#define kIODriverKitHIDFamilyEventServiceEntitlementKey "com.apple.developer.driverkit.family.hid.eventservice"
+#define kIODriverKitTransportBuiltinEntitlementKey "com.apple.developer.driverkit.builtin"
+
+
+// When possible, defer matching of this driver until kextd has started.
+#define kIOMatchDeferKey "IOMatchDefer"
// IOService default user client class, for loadable user clients
-#define kIOUserClientClassKey "IOUserClientClass"
+#define kIOUserClientClassKey "IOUserClientClass"
+
+// key to find IOMappers
+#define kIOMapperIDKey "IOMapperID"
+
+#define kIOUserClientCrossEndianKey "IOUserClientCrossEndian"
+#define kIOUserClientCrossEndianCompatibleKey "IOUserClientCrossEndianCompatible"
+#define kIOUserClientSharedInstanceKey "IOUserClientSharedInstance"
+#if KERNEL_PRIVATE
+#define kIOUserClientMessageAppSuspendedKey "IOUserClientMessageAppSuspended"
+#endif
+// diagnostic string describing the creating task
+#define kIOUserClientCreatorKey "IOUserClientCreator"
+// the expected cdhash value of the userspace driver executable
+#define kIOUserServerCDHashKey "IOUserServerCDHash"
+
+#define kIOUserUserClientKey "IOUserUserClient"
+
// IOService notification types
-#define kIOPublishNotification "IOServicePublish"
-#define kIOFirstPublishNotification "IOServiceFirstPublish"
-#define kIOMatchedNotification "IOServiceMatched"
-#define kIOFirstMatchNotification "IOServiceFirstMatch"
-#define kIOTerminatedNotification "IOServiceTerminate"
+#define kIOPublishNotification "IOServicePublish"
+#define kIOFirstPublishNotification "IOServiceFirstPublish"
+#define kIOMatchedNotification "IOServiceMatched"
+#define kIOFirstMatchNotification "IOServiceFirstMatch"
+#define kIOTerminatedNotification "IOServiceTerminate"
+#define kIOWillTerminateNotification "IOServiceWillTerminate"
// IOService interest notification types
-#define kIOGeneralInterest "IOGeneralInterest"
-#define kIOBusyInterest "IOBusyInterest"
-#define kIOAppPowerStateInterest "IOAppPowerStateInterest"
+#define kIOGeneralInterest "IOGeneralInterest"
+#define kIOBusyInterest "IOBusyInterest"
+#define kIOAppPowerStateInterest "IOAppPowerStateInterest"
+#define kIOPriorityPowerStateInterest "IOPriorityPowerStateInterest"
+
+#define kIOPlatformDeviceMessageKey "IOPlatformDeviceMessage"
// IOService interest notification types
-#define kIOCFPlugInTypesKey "IOCFPlugInTypes"
+#define kIOCFPlugInTypesKey "IOCFPlugInTypes"
// properties found in services that implement command pooling
-#define kIOCommandPoolSizeKey "IOCommandPoolSize"
+#define kIOCommandPoolSizeKey "IOCommandPoolSize" // (OSNumber)
+
+// properties found in services that implement priority
+#define kIOMaximumPriorityCountKey "IOMaximumPriorityCount" // (OSNumber)
+
+// properties found in services that have transfer constraints
+#define kIOMaximumBlockCountReadKey "IOMaximumBlockCountRead" // (OSNumber)
+#define kIOMaximumBlockCountWriteKey "IOMaximumBlockCountWrite" // (OSNumber)
+#define kIOMaximumByteCountReadKey "IOMaximumByteCountRead" // (OSNumber)
+#define kIOMaximumByteCountWriteKey "IOMaximumByteCountWrite" // (OSNumber)
+#define kIOMaximumSegmentCountReadKey "IOMaximumSegmentCountRead" // (OSNumber)
+#define kIOMaximumSegmentCountWriteKey "IOMaximumSegmentCountWrite" // (OSNumber)
+#define kIOMaximumSegmentByteCountReadKey "IOMaximumSegmentByteCountRead" // (OSNumber)
+#define kIOMaximumSegmentByteCountWriteKey "IOMaximumSegmentByteCountWrite" // (OSNumber)
+#define kIOMinimumSegmentAlignmentByteCountKey "IOMinimumSegmentAlignmentByteCount" // (OSNumber)
+#define kIOMaximumSegmentAddressableBitCountKey "IOMaximumSegmentAddressableBitCount" // (OSNumber)
+#define kIOMinimumSaturationByteCountKey "IOMinimumSaturationByteCount" // (OSNumber)
+#define kIOMaximumSwapWriteKey "IOMaximumSwapWrite" // (OSNumber)
+
+// properties found in services that wish to describe an icon
+//
+// IOIcon =
+// {
+// CFBundleIdentifier = "com.example.driver.example";
+// IOBundleResourceFile = "example.icns";
+// };
+//
+// where IOBundleResourceFile is the filename of the resource
+
+#define kIOIconKey "IOIcon" // (OSDictionary)
+#define kIOBundleResourceFileKey "IOBundleResourceFile" // (OSString)
+
+#define kIOBusBadgeKey "IOBusBadge" // (OSDictionary)
+#define kIODeviceIconKey "IODeviceIcon" // (OSDictionary)
+
+// property of root that describes the machine's serial number as a string
+#define kIOPlatformSerialNumberKey "IOPlatformSerialNumber" // (OSString)
+
+// property of root that describes the machine's UUID as a string
+#define kIOPlatformUUIDKey "IOPlatformUUID" // (OSString)
+
+// IODTNVRAM property keys
+#define kIONVRAMBootArgsKey "boot-args"
+#define kIONVRAMDeletePropertyKey "IONVRAM-DELETE-PROPERTY"
+#define kIONVRAMSyncNowPropertyKey "IONVRAM-SYNCNOW-PROPERTY"
+#define kIONVRAMActivateCSRConfigPropertyKey "IONVRAM-ARMCSR-PROPERTY"
+#define kIODTNVRAMPanicInfoKey "aapl,panic-info"
+
+// keys for complex boot information
+#define kIOBootDeviceKey "IOBootDevice" // dict | array of dicts
+#define kIOBootDevicePathKey "IOBootDevicePath" // arch-neutral OSString
+#define kIOBootDeviceSizeKey "IOBootDeviceSize" // OSNumber of bytes
+
+// keys for OS Version information
+#define kOSBuildVersionKey "OS Build Version"
#endif /* ! _IOKIT_IOKITKEYS_H */
-