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