]>
Commit | Line | Data |
---|---|---|
1c79356b A |
1 | /* |
2 | * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. | |
3 | * | |
2d21ac55 | 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ |
0a7de745 | 5 | * |
2d21ac55 A |
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. | |
0a7de745 | 14 | * |
2d21ac55 A |
15 | * Please obtain a copy of the License at |
16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | |
0a7de745 | 17 | * |
2d21ac55 A |
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 | |
8f6c56a5 A |
20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, |
21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
2d21ac55 A |
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. | |
0a7de745 | 25 | * |
2d21ac55 | 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ |
1c79356b A |
27 | */ |
28 | /* | |
0a7de745 | 29 | * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. |
1c79356b | 30 | * |
0a7de745 | 31 | * Common symbol definitions for IOKit. |
1c79356b A |
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 | |
0a7de745 A |
42 | #define kIOKitBuildVersionKey "IOKitBuildVersion" |
43 | #define kIOKitDiagnosticsKey "IOKitDiagnostics" | |
44 | // a dictionary keyed by plane name | |
45 | #define kIORegistryPlanesKey "IORegistryPlanes" | |
46 | #define kIOCatalogueKey "IOCatalogue" | |
1c79356b A |
47 | |
48 | // registry plane names | |
0a7de745 A |
49 | #define kIOServicePlane "IOService" |
50 | #define kIOPowerPlane "IOPower" | |
51 | #define kIODeviceTreePlane "IODeviceTree" | |
52 | #define kIOAudioPlane "IOAudio" | |
53 | #define kIOFireWirePlane "IOFireWire" | |
54 | #define kIOUSBPlane "IOUSB" | |
1c79356b | 55 | |
b0d623f7 | 56 | // registry ID number |
0a7de745 | 57 | #define kIORegistryEntryIDKey "IORegistryEntryID" |
39037602 A |
58 | // property name to get array of property names |
59 | #define kIORegistryEntryPropertyKeysKey "IORegistryEntryPropertyKeys" | |
b0d623f7 | 60 | |
1c79356b | 61 | // IOService class name |
0a7de745 | 62 | #define kIOServiceClass "IOService" |
1c79356b A |
63 | |
64 | // IOResources class name | |
0a7de745 | 65 | #define kIOResourcesClass "IOResources" |
1c79356b A |
66 | |
67 | // IOService driver probing property names | |
0a7de745 A |
68 | #define kIOClassKey "IOClass" |
69 | #define kIOProbeScoreKey "IOProbeScore" | |
70 | #define kIOKitDebugKey "IOKitDebug" | |
1c79356b | 71 | |
ea3f0419 A |
72 | // Properties to be supported as API |
73 | #define kIOSupportedPropertiesKey "IOSupportedProperties" | |
74 | // Properties writable by dexts | |
75 | #define kIOUserServicePropertiesKey "IOUserServiceProperties" | |
76 | ||
77 | ||
1c79356b | 78 | // IOService matching property names |
0a7de745 A |
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" | |
1c79356b | 94 | |
cb323159 A |
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 | ||
eb6b6ca3 A |
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 | ||
cb323159 A |
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 | ||
f427ee49 A |
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" | |
cb323159 A |
131 | |
132 | // When possible, defer matching of this driver until kextd has started. | |
133 | #define kIOMatchDeferKey "IOMatchDefer" | |
134 | ||
f427ee49 A |
135 | // Published after processor_start() has been called on all CPUs at boot time. |
136 | #define kIOAllCPUInitializedKey "IOAllCPUInitialized" | |
137 | ||
1c79356b | 138 | // IOService default user client class, for loadable user clients |
0a7de745 | 139 | #define kIOUserClientClassKey "IOUserClientClass" |
1c79356b | 140 | |
b0d623f7 | 141 | // key to find IOMappers |
0a7de745 | 142 | #define kIOMapperIDKey "IOMapperID" |
b0d623f7 | 143 | |
f427ee49 A |
144 | #ifdef XNU_KERNEL_PRIVATE |
145 | // Apple Kext Exclude List | |
146 | #define kIOExcludeListBundleID "com.apple.driver.KextExcludeList" | |
147 | #endif | |
148 | ||
0a7de745 A |
149 | #define kIOUserClientCrossEndianKey "IOUserClientCrossEndian" |
150 | #define kIOUserClientCrossEndianCompatibleKey "IOUserClientCrossEndianCompatible" | |
151 | #define kIOUserClientSharedInstanceKey "IOUserClientSharedInstance" | |
cb323159 A |
152 | #if KERNEL_PRIVATE |
153 | #define kIOUserClientMessageAppSuspendedKey "IOUserClientMessageAppSuspended" | |
154 | #endif | |
f427ee49 | 155 | #define kIOUserClientDefaultLockingKey "IOUserClientDefaultLocking" |
b0d623f7 | 156 | // diagnostic string describing the creating task |
0a7de745 | 157 | #define kIOUserClientCreatorKey "IOUserClientCreator" |
cb323159 A |
158 | // the expected cdhash value of the userspace driver executable |
159 | #define kIOUserServerCDHashKey "IOUserServerCDHash" | |
160 | ||
161 | #define kIOUserUserClientKey "IOUserUserClient" | |
162 | ||
0c530ab8 | 163 | |
1c79356b | 164 | // IOService notification types |
0a7de745 A |
165 | #define kIOPublishNotification "IOServicePublish" |
166 | #define kIOFirstPublishNotification "IOServiceFirstPublish" | |
167 | #define kIOMatchedNotification "IOServiceMatched" | |
168 | #define kIOFirstMatchNotification "IOServiceFirstMatch" | |
169 | #define kIOTerminatedNotification "IOServiceTerminate" | |
170 | #define kIOWillTerminateNotification "IOServiceWillTerminate" | |
1c79356b A |
171 | |
172 | // IOService interest notification types | |
0a7de745 A |
173 | #define kIOGeneralInterest "IOGeneralInterest" |
174 | #define kIOBusyInterest "IOBusyInterest" | |
175 | #define kIOAppPowerStateInterest "IOAppPowerStateInterest" | |
176 | #define kIOPriorityPowerStateInterest "IOPriorityPowerStateInterest" | |
1c79356b | 177 | |
0c530ab8 A |
178 | #define kIOPlatformDeviceMessageKey "IOPlatformDeviceMessage" |
179 | ||
1c79356b | 180 | // IOService interest notification types |
0a7de745 | 181 | #define kIOCFPlugInTypesKey "IOCFPlugInTypes" |
1c79356b | 182 | |
f427ee49 A |
183 | #define kIOCompatibilityMatchKey "IOCompatibilityMatch" |
184 | #define kIOCompatibilityPropertiesKey "IOCompatibilityProperties" | |
185 | #define kIOPathKey "IOPath" | |
186 | ||
187 | ||
1c79356b | 188 | // properties found in services that implement command pooling |
0a7de745 | 189 | #define kIOCommandPoolSizeKey "IOCommandPoolSize" // (OSNumber) |
39236c6e A |
190 | |
191 | // properties found in services that implement priority | |
0a7de745 | 192 | #define kIOMaximumPriorityCountKey "IOMaximumPriorityCount" // (OSNumber) |
0b4e3aa0 A |
193 | |
194 | // properties found in services that have transfer constraints | |
0c530ab8 A |
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) | |
39037602 | 205 | #define kIOMinimumSaturationByteCountKey "IOMinimumSaturationByteCount" // (OSNumber) |
d9a64523 | 206 | #define kIOMaximumSwapWriteKey "IOMaximumSwapWrite" // (OSNumber) |
1c79356b | 207 | |
9bccf70c A |
208 | // properties found in services that wish to describe an icon |
209 | // | |
0a7de745 | 210 | // IOIcon = |
9bccf70c A |
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) | |
1c79356b | 220 | |
9bccf70c A |
221 | #define kIOBusBadgeKey "IOBusBadge" // (OSDictionary) |
222 | #define kIODeviceIconKey "IODeviceIcon" // (OSDictionary) | |
223 | ||
55e303ae | 224 | // property of root that describes the machine's serial number as a string |
0a7de745 | 225 | #define kIOPlatformSerialNumberKey "IOPlatformSerialNumber" // (OSString) |
55e303ae | 226 | |
2d21ac55 | 227 | // property of root that describes the machine's UUID as a string |
0a7de745 | 228 | #define kIOPlatformUUIDKey "IOPlatformUUID" // (OSString) |
2d21ac55 | 229 | |
91447636 | 230 | // IODTNVRAM property keys |
cb323159 | 231 | #define kIONVRAMBootArgsKey "boot-args" |
0a7de745 A |
232 | #define kIONVRAMDeletePropertyKey "IONVRAM-DELETE-PROPERTY" |
233 | #define kIONVRAMSyncNowPropertyKey "IONVRAM-SYNCNOW-PROPERTY" | |
234 | #define kIONVRAMActivateCSRConfigPropertyKey "IONVRAM-ARMCSR-PROPERTY" | |
235 | #define kIODTNVRAMPanicInfoKey "aapl,panic-info" | |
91447636 A |
236 | |
237 | // keys for complex boot information | |
0a7de745 A |
238 | #define kIOBootDeviceKey "IOBootDevice" // dict | array of dicts |
239 | #define kIOBootDevicePathKey "IOBootDevicePath" // arch-neutral OSString | |
240 | #define kIOBootDeviceSizeKey "IOBootDeviceSize" // OSNumber of bytes | |
91447636 | 241 | |
2d21ac55 | 242 | // keys for OS Version information |
0a7de745 | 243 | #define kOSBuildVersionKey "OS Build Version" |
2d21ac55 | 244 | |
9bccf70c | 245 | #endif /* ! _IOKIT_IOKITKEYS_H */ |