| 1 | /* |
| 2 | * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. |
| 3 | * |
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ |
| 5 | * |
| 6 | * This file contains Original Code and/or Modifications of Original Code |
| 7 | * as defined in and that are subject to the Apple Public Source License |
| 8 | * Version 2.0 (the 'License'). You may not use this file except in |
| 9 | * compliance with the License. The rights granted to you under the License |
| 10 | * may not be used to create, or enable the creation or redistribution of, |
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to |
| 12 | * circumvent, violate, or enable the circumvention or violation of, any |
| 13 | * terms of an Apple operating system software license agreement. |
| 14 | * |
| 15 | * Please obtain a copy of the License at |
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. |
| 17 | * |
| 18 | * The Original Code and all software distributed under the License are |
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER |
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, |
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, |
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. |
| 23 | * Please see the License for the specific language governing rights and |
| 24 | * limitations under the License. |
| 25 | * |
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ |
| 27 | */ |
| 28 | /* |
| 29 | * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. |
| 30 | * |
| 31 | * Common symbol definitions for IOKit. |
| 32 | * |
| 33 | * HISTORY |
| 34 | * |
| 35 | */ |
| 36 | |
| 37 | |
| 38 | #ifndef _IOKIT_IOKITKEYS_H |
| 39 | #define _IOKIT_IOKITKEYS_H |
| 40 | |
| 41 | // properties found in the registry root |
| 42 | #define kIOKitBuildVersionKey "IOKitBuildVersion" |
| 43 | #define kIOKitDiagnosticsKey "IOKitDiagnostics" |
| 44 | // a dictionary keyed by plane name |
| 45 | #define kIORegistryPlanesKey "IORegistryPlanes" |
| 46 | #define kIOCatalogueKey "IOCatalogue" |
| 47 | |
| 48 | // registry plane names |
| 49 | #define kIOServicePlane "IOService" |
| 50 | #define kIOPowerPlane "IOPower" |
| 51 | #define kIODeviceTreePlane "IODeviceTree" |
| 52 | #define kIOAudioPlane "IOAudio" |
| 53 | #define kIOFireWirePlane "IOFireWire" |
| 54 | #define kIOUSBPlane "IOUSB" |
| 55 | |
| 56 | // registry ID number |
| 57 | #define kIORegistryEntryIDKey "IORegistryEntryID" |
| 58 | // property name to get array of property names |
| 59 | #define kIORegistryEntryPropertyKeysKey "IORegistryEntryPropertyKeys" |
| 60 | // property name to allow only the given keys present in an OSDictionary from |
| 61 | // a user space call to IORegistryEntry::setProperties (OSArray) |
| 62 | #define kIORegistryEntryAllowableSetPropertiesKey "IORegistryEntryAllowableSetProperties" |
| 63 | // property name to single thread a user space call to IORegistryEntry::setProperties (OSBoolean) |
| 64 | #define kIORegistryEntryDefaultLockingSetPropertiesKey "IORegistryEntryDefaultLockingSetProperties" |
| 65 | |
| 66 | |
| 67 | // IOService class name |
| 68 | #define kIOServiceClass "IOService" |
| 69 | |
| 70 | // IOResources class name |
| 71 | #define kIOResourcesClass "IOResources" |
| 72 | |
| 73 | // IOService driver probing property names |
| 74 | #define kIOClassKey "IOClass" |
| 75 | #define kIOProbeScoreKey "IOProbeScore" |
| 76 | #define kIOKitDebugKey "IOKitDebug" |
| 77 | |
| 78 | // DriverKit class keys |
| 79 | #define kIOUserClassKey "IOUserClass" |
| 80 | #define kIOUserClassesKey "IOUserClasses" |
| 81 | |
| 82 | // Properties to be supported as API |
| 83 | #define kIOSupportedPropertiesKey "IOSupportedProperties" |
| 84 | // Properties writable by dexts |
| 85 | #define kIOUserServicePropertiesKey "IOUserServiceProperties" |
| 86 | |
| 87 | |
| 88 | // IOService matching property names |
| 89 | #define kIOProviderClassKey "IOProviderClass" |
| 90 | #define kIONameMatchKey "IONameMatch" |
| 91 | #define kIOPropertyMatchKey "IOPropertyMatch" |
| 92 | #define kIOPropertyExistsMatchKey "IOPropertyExistsMatch" |
| 93 | #define kIOPathMatchKey "IOPathMatch" |
| 94 | #define kIOLocationMatchKey "IOLocationMatch" |
| 95 | #define kIOParentMatchKey "IOParentMatch" |
| 96 | #define kIOResourceMatchKey "IOResourceMatch" |
| 97 | #define kIOResourceMatchedKey "IOResourceMatched" |
| 98 | #define kIOMatchedServiceCountKey "IOMatchedServiceCountMatch" |
| 99 | |
| 100 | #define kIONameMatchedKey "IONameMatched" |
| 101 | |
| 102 | #define kIOMatchCategoryKey "IOMatchCategory" |
| 103 | #define kIODefaultMatchCategoryKey "IODefaultMatchCategory" |
| 104 | |
| 105 | #define kIOMatchedPersonalityKey "IOMatchedPersonality" |
| 106 | #define kIORematchPersonalityKey "IORematchPersonality" |
| 107 | #define kIORematchCountKey "IORematchCount" |
| 108 | #define kIODEXTMatchCountKey "IODEXTMatchCount" |
| 109 | |
| 110 | // Property specifying the entitlement to check against an IOUserClient's opening process |
| 111 | // kOSBooleanFalse - Allow access (no entitlements required) |
| 112 | // string - If the opening process has the named entitlement with value == boolean true, allow access |
| 113 | #define kIOUserClientEntitlementsKey "IOUserClientEntitlements" |
| 114 | |
| 115 | // Entitlements to check against dext process |
| 116 | // Property is an array, one or more of which may match, of: |
| 117 | // an array of entitlement strings, all must be present |
| 118 | // Any array can be a single string. |
| 119 | #define kIOServiceDEXTEntitlementsKey "IOServiceDEXTEntitlements" |
| 120 | |
| 121 | // Entitlement required to open dext connection |
| 122 | #define kIODriverKitEntitlementKey "com.apple.developer.driverkit" |
| 123 | |
| 124 | // Entitlements required to open dext IOUserClient |
| 125 | // Property is an array of strings containing CFBundleIdentifiers of service being opened |
| 126 | #define kIODriverKitUserClientEntitlementsKey "com.apple.developer.driverkit.userclient-access" |
| 127 | |
| 128 | // Allows the entitled process to open a user client connection to any dext that has specific entitlements |
| 129 | // Property is an array of strings containing entitlements, one of which needs to be present |
| 130 | // in the dext providing the user client being opened |
| 131 | #define kIODriverKitRequiredEntitlementsKey "com.apple.private.driverkit.driver-access" |
| 132 | |
| 133 | // Specifies that this driver is used for internal tests. This opts the driver out of our policy to |
| 134 | // reboot the device if a driver crashes too often. |
| 135 | #define kIODriverKitTestDriverEntitlementKey "com.apple.private.driverkit.test-driver" |
| 136 | |
| 137 | // Entitlement of a dext that allows any task to open one of its IOUserClients |
| 138 | #define kIODriverKitUserClientEntitlementAllowAnyKey "com.apple.developer.driverkit.allow-any-userclient-access" |
| 139 | |
| 140 | #define kIODriverKitUserClientEntitlementAdministratorKey "com.apple.developer.driverkit.administrator" |
| 141 | |
| 142 | // Entitlements for third party drivers on iOS |
| 143 | #define kIODriverKitUserClientEntitlementCommunicatesWithDriversKey "com.apple.developer.driverkit.communicates-with-drivers" |
| 144 | #define kIODriverKitUserClientEntitlementAllowThirdPartyUserClientsKey "com.apple.developer.driverkit.allow-third-party-userclients" |
| 145 | |
| 146 | // Other DriverKit entitlements |
| 147 | #define kIODriverKitUSBTransportEntitlementKey "com.apple.developer.driverkit.transport.usb" |
| 148 | #define kIODriverKitHIDTransportEntitlementKey "com.apple.developer.driverkit.transport.hid" |
| 149 | #define kIODriverKitHIDFamilyDeviceEntitlementKey "com.apple.developer.driverkit.family.hid.device" |
| 150 | #define kIODriverKitHIDFamilyEventServiceEntitlementKey "com.apple.developer.driverkit.family.hid.eventservice" |
| 151 | #define kIODriverKitTransportBuiltinEntitlementKey "com.apple.developer.driverkit.builtin" |
| 152 | |
| 153 | // Entitlement required to read nvram root-only properties as non-root user |
| 154 | #define kIONVRAMReadAccessKey "com.apple.private.iokit.nvram-read-access" |
| 155 | // Entitlement required to write nvram properties as non-root user |
| 156 | #define kIONVRAMWriteAccessKey "com.apple.private.iokit.nvram-write-access" |
| 157 | // Entitlement required to set properties on the IOResources object as non-root user |
| 158 | #define kIOResourcesSetPropertyKey "com.apple.private.iokit.ioresources.setproperty" |
| 159 | // Entitlement required to read/write to the system nvram region |
| 160 | #define kIONVRAMSystemAllowKey "com.apple.private.iokit.system-nvram-allow" |
| 161 | |
| 162 | // When possible, defer matching of this driver until kextd has started. |
| 163 | #define kIOMatchDeferKey "IOMatchDefer" |
| 164 | |
| 165 | // Published after processor_start() has been called on all CPUs at boot time. |
| 166 | #define kIOAllCPUInitializedKey "IOAllCPUInitialized" |
| 167 | |
| 168 | // IOService default user client class, for loadable user clients |
| 169 | #define kIOUserClientClassKey "IOUserClientClass" |
| 170 | |
| 171 | // key to find IOMappers |
| 172 | #define kIOMapperIDKey "IOMapperID" |
| 173 | |
| 174 | #ifdef XNU_KERNEL_PRIVATE |
| 175 | // Apple Kext Exclude List |
| 176 | #define kIOExcludeListBundleID "com.apple.driver.KextExcludeList" |
| 177 | #endif |
| 178 | |
| 179 | #define kIOUserClientCrossEndianKey "IOUserClientCrossEndian" |
| 180 | #define kIOUserClientCrossEndianCompatibleKey "IOUserClientCrossEndianCompatible" |
| 181 | #define kIOUserClientSharedInstanceKey "IOUserClientSharedInstance" |
| 182 | #if KERNEL_PRIVATE |
| 183 | #define kIOUserClientMessageAppSuspendedKey "IOUserClientMessageAppSuspended" |
| 184 | #endif |
| 185 | |
| 186 | #define kIOUserClientDefaultLockingKey "IOUserClientDefaultLocking" |
| 187 | #define kIOUserClientDefaultLockingSetPropertiesKey "IOUserClientDefaultLockingSetProperties" |
| 188 | #define kIOUserClientDefaultLockingSingleThreadExternalMethodKey "IOUserClientDefaultLockingSingleThreadExternalMethod" |
| 189 | |
| 190 | // diagnostic string describing the creating task |
| 191 | #define kIOUserClientCreatorKey "IOUserClientCreator" |
| 192 | // the expected cdhash value of the userspace driver executable |
| 193 | #define kIOUserServerCDHashKey "IOUserServerCDHash" |
| 194 | |
| 195 | #define kIOUserUserClientKey "IOUserUserClient" |
| 196 | |
| 197 | #define kIOUserServerOneProcessKey "IOUserServerOneProcess" |
| 198 | #define kIOUserServerPreserveUserspaceRebootKey "IOUserServerPreserveUserspaceReboot" |
| 199 | |
| 200 | |
| 201 | // IOService notification types |
| 202 | #define kIOPublishNotification "IOServicePublish" |
| 203 | #define kIOFirstPublishNotification "IOServiceFirstPublish" |
| 204 | #define kIOMatchedNotification "IOServiceMatched" |
| 205 | #define kIOFirstMatchNotification "IOServiceFirstMatch" |
| 206 | #define kIOTerminatedNotification "IOServiceTerminate" |
| 207 | #define kIOWillTerminateNotification "IOServiceWillTerminate" |
| 208 | |
| 209 | // IOService interest notification types |
| 210 | #define kIOGeneralInterest "IOGeneralInterest" |
| 211 | #define kIOBusyInterest "IOBusyInterest" |
| 212 | #define kIOAppPowerStateInterest "IOAppPowerStateInterest" |
| 213 | #define kIOPriorityPowerStateInterest "IOPriorityPowerStateInterest" |
| 214 | |
| 215 | #define kIOPlatformDeviceMessageKey "IOPlatformDeviceMessage" |
| 216 | |
| 217 | // IOService interest notification types |
| 218 | #define kIOCFPlugInTypesKey "IOCFPlugInTypes" |
| 219 | |
| 220 | #define kIOCompatibilityMatchKey "IOCompatibilityMatch" |
| 221 | #define kIOCompatibilityPropertiesKey "IOCompatibilityProperties" |
| 222 | #define kIOPathKey "IOPath" |
| 223 | |
| 224 | |
| 225 | // properties found in services that implement command pooling |
| 226 | #define kIOCommandPoolSizeKey "IOCommandPoolSize" // (OSNumber) |
| 227 | |
| 228 | // properties found in services that implement priority |
| 229 | #define kIOMaximumPriorityCountKey "IOMaximumPriorityCount" // (OSNumber) |
| 230 | |
| 231 | // properties found in services that have transfer constraints |
| 232 | #define kIOMaximumBlockCountReadKey "IOMaximumBlockCountRead" // (OSNumber) |
| 233 | #define kIOMaximumBlockCountWriteKey "IOMaximumBlockCountWrite" // (OSNumber) |
| 234 | #define kIOMaximumByteCountReadKey "IOMaximumByteCountRead" // (OSNumber) |
| 235 | #define kIOMaximumByteCountWriteKey "IOMaximumByteCountWrite" // (OSNumber) |
| 236 | #define kIOMaximumSegmentCountReadKey "IOMaximumSegmentCountRead" // (OSNumber) |
| 237 | #define kIOMaximumSegmentCountWriteKey "IOMaximumSegmentCountWrite" // (OSNumber) |
| 238 | #define kIOMaximumSegmentByteCountReadKey "IOMaximumSegmentByteCountRead" // (OSNumber) |
| 239 | #define kIOMaximumSegmentByteCountWriteKey "IOMaximumSegmentByteCountWrite" // (OSNumber) |
| 240 | #define kIOMinimumSegmentAlignmentByteCountKey "IOMinimumSegmentAlignmentByteCount" // (OSNumber) |
| 241 | #define kIOMaximumSegmentAddressableBitCountKey "IOMaximumSegmentAddressableBitCount" // (OSNumber) |
| 242 | #define kIOMinimumSaturationByteCountKey "IOMinimumSaturationByteCount" // (OSNumber) |
| 243 | #define kIOMaximumSwapWriteKey "IOMaximumSwapWrite" // (OSNumber) |
| 244 | |
| 245 | // properties found in services that wish to describe an icon |
| 246 | // |
| 247 | // IOIcon = |
| 248 | // { |
| 249 | // CFBundleIdentifier = "com.example.driver.example"; |
| 250 | // IOBundleResourceFile = "example.icns"; |
| 251 | // }; |
| 252 | // |
| 253 | // where IOBundleResourceFile is the filename of the resource |
| 254 | |
| 255 | #define kIOIconKey "IOIcon" // (OSDictionary) |
| 256 | #define kIOBundleResourceFileKey "IOBundleResourceFile" // (OSString) |
| 257 | |
| 258 | #define kIOBusBadgeKey "IOBusBadge" // (OSDictionary) |
| 259 | #define kIODeviceIconKey "IODeviceIcon" // (OSDictionary) |
| 260 | |
| 261 | // property of root that describes the machine's serial number as a string |
| 262 | #define kIOPlatformSerialNumberKey "IOPlatformSerialNumber" // (OSString) |
| 263 | |
| 264 | // property of root that describes the machine's UUID as a string |
| 265 | #define kIOPlatformUUIDKey "IOPlatformUUID" // (OSString) |
| 266 | |
| 267 | // IODTNVRAM property keys |
| 268 | #define kIONVRAMBootArgsKey "boot-args" |
| 269 | #define kIONVRAMDeletePropertyKey "IONVRAM-DELETE-PROPERTY" |
| 270 | #define kIONVRAMSyncNowPropertyKey "IONVRAM-SYNCNOW-PROPERTY" |
| 271 | #define kIONVRAMActivateCSRConfigPropertyKey "IONVRAM-ARMCSR-PROPERTY" |
| 272 | #define kIODTNVRAMPanicInfoKey "aapl,panic-info" |
| 273 | #define kIONVRAMDeletePropertyKeyWRet "IONVRAM-DELETEWRET-PROPERTY" |
| 274 | |
| 275 | // keys for complex boot information |
| 276 | #define kIOBootDeviceKey "IOBootDevice" // dict | array of dicts |
| 277 | #define kIOBootDevicePathKey "IOBootDevicePath" // arch-neutral OSString |
| 278 | #define kIOBootDeviceSizeKey "IOBootDeviceSize" // OSNumber of bytes |
| 279 | |
| 280 | // keys for OS Version information |
| 281 | #define kOSBuildVersionKey "OS Build Version" |
| 282 | |
| 283 | // |
| 284 | #define kIOStateNotificationItemCreateKey "com.apple.iokit.statenotification.create" |
| 285 | #define kIOStateNotificationItemSetKey "com.apple.iokit.statenotification.set" |
| 286 | #define kIOStateNotificationItemCopyKey "com.apple.iokit.statenotification.copy" |
| 287 | |
| 288 | #define kIOStateNotificationNameKey "com.apple.iokit.statenotification.name" |
| 289 | #define kIOStateNotificationEntitlementSetKey "com.apple.iokit.statenotification.entitlement-set" |
| 290 | #define kIOStateNotificationEntitlementGetKey "com.apple.iokit.statenotification.entitlement-get" |
| 291 | |
| 292 | // |
| 293 | #define kIOSystemStateClamshellKey "com.apple.iokit.pm.clamshell" |
| 294 | |
| 295 | #define kIOSystemStateSleepDescriptionKey "com.apple.iokit.pm.sleepdescription" |
| 296 | #define kIOSystemStateSleepDescriptionReasonKey "com.apple.iokit.pm.sleepreason" |
| 297 | #define kIOSystemStateSleepDescriptionHibernateStateKey "com.apple.iokit.pm.hibernatestate" |
| 298 | |
| 299 | #define kIOSystemStateWakeDescriptionKey "com.apple.iokit.pm.wakedescription" |
| 300 | #define kIOSystemStateWakeDescriptionWakeReasonKey "com.apple.iokit.pm.wakereason" |
| 301 | |
| 302 | #define kIOSystemStateHaltDescriptionKey "com.apple.iokit.pm.haltdescription" |
| 303 | #define kIOSystemStateHaltDescriptionHaltStateKey "com.apple.iokit.pm.haltstate" |
| 304 | |
| 305 | #define kIOSystemStatePowerSourceDescriptionKey "com.apple.iokit.pm.powersourcedescription" |
| 306 | #define kIOSystemStatePowerSourceDescriptionACAttachedKey "com.apple.iokit.pm.acattached" |
| 307 | |
| 308 | #endif /* ! _IOKIT_IOKITKEYS_H */ |
| 309 | |