IOKitKeys.h
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 61 // IOService class name 62 #define kIOServiceClass "IOService" 63 64 // IOResources class name 65 #define kIOResourcesClass "IOResources" 66 67 // IOService driver probing property names 68 #define kIOClassKey "IOClass" 69 #define kIOProbeScoreKey "IOProbeScore" 70 #define kIOKitDebugKey "IOKitDebug" 71 72 // Properties to be supported as API 73 #define kIOSupportedPropertiesKey "IOSupportedProperties" 74 // Properties writable by dexts 75 #define kIOUserServicePropertiesKey "IOUserServiceProperties" 76 77 78 // IOService matching property names 79 #define kIOProviderClassKey "IOProviderClass" 80 #define kIONameMatchKey "IONameMatch" 81 #define kIOPropertyMatchKey "IOPropertyMatch" 82 #define kIOPropertyExistsMatchKey "IOPropertyExistsMatch" 83 #define kIOPathMatchKey "IOPathMatch" 84 #define kIOLocationMatchKey "IOLocationMatch" 85 #define kIOParentMatchKey "IOParentMatch" 86 #define kIOResourceMatchKey "IOResourceMatch" 87 #define kIOResourceMatchedKey "IOResourceMatched" 88 #define kIOMatchedServiceCountKey "IOMatchedServiceCountMatch" 89 90 #define kIONameMatchedKey "IONameMatched" 91 92 #define kIOMatchCategoryKey "IOMatchCategory" 93 #define kIODefaultMatchCategoryKey "IODefaultMatchCategory" 94 95 #define kIOMatchedPersonalityKey "IOMatchedPersonality" 96 #define kIORematchPersonalityKey "IORematchPersonality" 97 #define kIORematchCountKey "IORematchCount" 98 #define kIODEXTMatchCountKey "IODEXTMatchCount" 99 100 // Entitlements to check against dext process 101 // Property is an array, one or more of which may match, of: 102 // an array of entitlement strings, all must be present 103 // Any array can be a single string. 104 #define kIOServiceDEXTEntitlementsKey "IOServiceDEXTEntitlements" 105 106 // Entitlement required to open dext connection 107 #define kIODriverKitEntitlementKey "com.apple.developer.driverkit" 108 109 // Entitlements required to open dext IOUserClient 110 // Property is an array of strings containing CFBundleIdentifiers of service being opened 111 #define kIODriverKitUserClientEntitlementsKey "com.apple.developer.driverkit.userclient-access" 112 113 // Entitlement of a dext that allows any task to open one of its IOUserClients 114 #define kIODriverKitUserClientEntitlementAllowAnyKey "com.apple.developer.driverkit.allow-any-userclient-access" 115 116 // Other DriverKit entitlements 117 #define kIODriverKitUSBTransportEntitlementKey "com.apple.developer.driverkit.transport.usb" 118 #define kIODriverKitHIDTransportEntitlementKey "com.apple.developer.driverkit.transport.hid" 119 #define kIODriverKitHIDFamilyDeviceEntitlementKey "com.apple.developer.driverkit.family.hid.device" 120 #define kIODriverKitHIDFamilyEventServiceEntitlementKey "com.apple.developer.driverkit.family.hid.eventservice" 121 #define kIODriverKitTransportBuiltinEntitlementKey "com.apple.developer.driverkit.builtin" 122 123 // Entitlement required to read nvram root-only properties as non-root user 124 #define kIONVRAMReadAccessKey "com.apple.private.iokit.nvram-read-access" 125 // Entitlement required to write nvram properties as non-root user 126 #define kIONVRAMWriteAccessKey "com.apple.private.iokit.nvram-write-access" 127 // Entitlement required to set properties on the IOResources object as non-root user 128 #define kIOResourcesSetPropertyKey "com.apple.private.iokit.ioresources.setproperty" 129 // Entitlement required to read/write to the system nvram region 130 #define kIONVRAMSystemAllowKey "com.apple.private.iokit.system-nvram-allow" 131 132 // When possible, defer matching of this driver until kextd has started. 133 #define kIOMatchDeferKey "IOMatchDefer" 134 135 // Published after processor_start() has been called on all CPUs at boot time. 136 #define kIOAllCPUInitializedKey "IOAllCPUInitialized" 137 138 // IOService default user client class, for loadable user clients 139 #define kIOUserClientClassKey "IOUserClientClass" 140 141 // key to find IOMappers 142 #define kIOMapperIDKey "IOMapperID" 143 144 #ifdef XNU_KERNEL_PRIVATE 145 // Apple Kext Exclude List 146 #define kIOExcludeListBundleID "com.apple.driver.KextExcludeList" 147 #endif 148 149 #define kIOUserClientCrossEndianKey "IOUserClientCrossEndian" 150 #define kIOUserClientCrossEndianCompatibleKey "IOUserClientCrossEndianCompatible" 151 #define kIOUserClientSharedInstanceKey "IOUserClientSharedInstance" 152 #if KERNEL_PRIVATE 153 #define kIOUserClientMessageAppSuspendedKey "IOUserClientMessageAppSuspended" 154 #endif 155 #define kIOUserClientDefaultLockingKey "IOUserClientDefaultLocking" 156 // diagnostic string describing the creating task 157 #define kIOUserClientCreatorKey "IOUserClientCreator" 158 // the expected cdhash value of the userspace driver executable 159 #define kIOUserServerCDHashKey "IOUserServerCDHash" 160 161 #define kIOUserUserClientKey "IOUserUserClient" 162 163 164 // IOService notification types 165 #define kIOPublishNotification "IOServicePublish" 166 #define kIOFirstPublishNotification "IOServiceFirstPublish" 167 #define kIOMatchedNotification "IOServiceMatched" 168 #define kIOFirstMatchNotification "IOServiceFirstMatch" 169 #define kIOTerminatedNotification "IOServiceTerminate" 170 #define kIOWillTerminateNotification "IOServiceWillTerminate" 171 172 // IOService interest notification types 173 #define kIOGeneralInterest "IOGeneralInterest" 174 #define kIOBusyInterest "IOBusyInterest" 175 #define kIOAppPowerStateInterest "IOAppPowerStateInterest" 176 #define kIOPriorityPowerStateInterest "IOPriorityPowerStateInterest" 177 178 #define kIOPlatformDeviceMessageKey "IOPlatformDeviceMessage" 179 180 // IOService interest notification types 181 #define kIOCFPlugInTypesKey "IOCFPlugInTypes" 182 183 #define kIOCompatibilityMatchKey "IOCompatibilityMatch" 184 #define kIOCompatibilityPropertiesKey "IOCompatibilityProperties" 185 #define kIOPathKey "IOPath" 186 187 188 // properties found in services that implement command pooling 189 #define kIOCommandPoolSizeKey "IOCommandPoolSize" // (OSNumber) 190 191 // properties found in services that implement priority 192 #define kIOMaximumPriorityCountKey "IOMaximumPriorityCount" // (OSNumber) 193 194 // properties found in services that have transfer constraints 195 #define kIOMaximumBlockCountReadKey "IOMaximumBlockCountRead" // (OSNumber) 196 #define kIOMaximumBlockCountWriteKey "IOMaximumBlockCountWrite" // (OSNumber) 197 #define kIOMaximumByteCountReadKey "IOMaximumByteCountRead" // (OSNumber) 198 #define kIOMaximumByteCountWriteKey "IOMaximumByteCountWrite" // (OSNumber) 199 #define kIOMaximumSegmentCountReadKey "IOMaximumSegmentCountRead" // (OSNumber) 200 #define kIOMaximumSegmentCountWriteKey "IOMaximumSegmentCountWrite" // (OSNumber) 201 #define kIOMaximumSegmentByteCountReadKey "IOMaximumSegmentByteCountRead" // (OSNumber) 202 #define kIOMaximumSegmentByteCountWriteKey "IOMaximumSegmentByteCountWrite" // (OSNumber) 203 #define kIOMinimumSegmentAlignmentByteCountKey "IOMinimumSegmentAlignmentByteCount" // (OSNumber) 204 #define kIOMaximumSegmentAddressableBitCountKey "IOMaximumSegmentAddressableBitCount" // (OSNumber) 205 #define kIOMinimumSaturationByteCountKey "IOMinimumSaturationByteCount" // (OSNumber) 206 #define kIOMaximumSwapWriteKey "IOMaximumSwapWrite" // (OSNumber) 207 208 // properties found in services that wish to describe an icon 209 // 210 // IOIcon = 211 // { 212 // CFBundleIdentifier = "com.example.driver.example"; 213 // IOBundleResourceFile = "example.icns"; 214 // }; 215 // 216 // where IOBundleResourceFile is the filename of the resource 217 218 #define kIOIconKey "IOIcon" // (OSDictionary) 219 #define kIOBundleResourceFileKey "IOBundleResourceFile" // (OSString) 220 221 #define kIOBusBadgeKey "IOBusBadge" // (OSDictionary) 222 #define kIODeviceIconKey "IODeviceIcon" // (OSDictionary) 223 224 // property of root that describes the machine's serial number as a string 225 #define kIOPlatformSerialNumberKey "IOPlatformSerialNumber" // (OSString) 226 227 // property of root that describes the machine's UUID as a string 228 #define kIOPlatformUUIDKey "IOPlatformUUID" // (OSString) 229 230 // IODTNVRAM property keys 231 #define kIONVRAMBootArgsKey "boot-args" 232 #define kIONVRAMDeletePropertyKey "IONVRAM-DELETE-PROPERTY" 233 #define kIONVRAMSyncNowPropertyKey "IONVRAM-SYNCNOW-PROPERTY" 234 #define kIONVRAMActivateCSRConfigPropertyKey "IONVRAM-ARMCSR-PROPERTY" 235 #define kIODTNVRAMPanicInfoKey "aapl,panic-info" 236 237 // keys for complex boot information 238 #define kIOBootDeviceKey "IOBootDevice" // dict | array of dicts 239 #define kIOBootDevicePathKey "IOBootDevicePath" // arch-neutral OSString 240 #define kIOBootDeviceSizeKey "IOBootDeviceSize" // OSNumber of bytes 241 242 // keys for OS Version information 243 #define kOSBuildVersionKey "OS Build Version" 244 245 #endif /* ! _IOKIT_IOKITKEYS_H */