]> git.saurik.com Git - apple/xnu.git/blob - iokit/IOKit/IOKitKeys.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / iokit / IOKit / 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 */