]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/IOKitKeys.h
xnu-6153.101.6.tar.gz
[apple/xnu.git] / iokit / IOKit / IOKitKeys.h
index 39519446a9cbbc3c51ba2e68d42fb3a0b29dd922..34da31735a939090ee57f207db5fc1ae143d0271 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
  *
  * @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
  * 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,
  * 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 kIOParentMatchKey              "IOParentMatch"
-#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"
 
-#define kIOUserClientCrossEndianKey            "IOUserClientCrossEndian"
-#define kIOUserClientCrossEndianCompatibleKey  "IOUserClientCrossEndianCompatible"
-#define kIOUserClientSharedInstanceKey         "IOUserClientSharedInstance"
 
 // 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 kIOPriorityPowerStateInterest  "IOPriorityPowerStateInterest"
+#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"          // (OSNumber)
+#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 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 = 
+// IOIcon =
 // {
 //     CFBundleIdentifier   = "com.example.driver.example";
 //     IOBundleResourceFile = "example.icns";
 #define kIODeviceIconKey         "IODeviceIcon"         // (OSDictionary)
 
 // property of root that describes the machine's serial number as a string
-#define kIOPlatformSerialNumberKey     "IOPlatformSerialNumber"        // (OSString)
+#define kIOPlatformSerialNumberKey      "IOPlatformSerialNumber"        // (OSString)
+
+// property of root that describes the machine's UUID as a string
+#define kIOPlatformUUIDKey      "IOPlatformUUID"        // (OSString)
 
 // IODTNVRAM property keys
-#define kIONVRAMDeletePropertyKey      "IONVRAM-DELETE-PROPERTY"
-#define kIODTNVRAMPanicInfoKey         "aapl,panic-info"
+#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
+#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 */