/ duct-tape / xnu / iokit / IOKit / IOKitKeys.h
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 */