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// IOService class name
57#define kIOServiceClass			"IOService"
58
59// IOResources class name
60#define kIOResourcesClass		"IOResources"
61
62// IOService driver probing property names
63#define kIOClassKey			"IOClass"
64#define kIOProbeScoreKey		"IOProbeScore"
65#define kIOKitDebugKey			"IOKitDebug"
66
67// IOService matching property names
68#define kIOProviderClassKey		"IOProviderClass"
69#define kIONameMatchKey			"IONameMatch"
70#define kIOPropertyMatchKey		"IOPropertyMatch"
71#define kIOPathMatchKey			"IOPathMatch"
72#define kIOLocationMatchKey		"IOLocationMatch"
73#define kIOParentMatchKey		"IOParentMatch"
74#define kIOResourceMatchKey		"IOResourceMatch"
75#define kIOMatchedServiceCountKey	"IOMatchedServiceCountMatch"
76
77#define kIONameMatchedKey		"IONameMatched"
78
79#define kIOMatchCategoryKey		"IOMatchCategory"
80#define kIODefaultMatchCategoryKey	"IODefaultMatchCategory"
81
82// IOService default user client class, for loadable user clients
83#define kIOUserClientClassKey		"IOUserClientClass"
84
85#define kIOUserClientCrossEndianKey		"IOUserClientCrossEndian"
86#define kIOUserClientCrossEndianCompatibleKey	"IOUserClientCrossEndianCompatible"
87#define kIOUserClientSharedInstanceKey		"IOUserClientSharedInstance"
88
89// IOService notification types
90#define kIOPublishNotification		"IOServicePublish"
91#define kIOFirstPublishNotification	"IOServiceFirstPublish"
92#define kIOMatchedNotification		"IOServiceMatched"
93#define kIOFirstMatchNotification	"IOServiceFirstMatch"
94#define kIOTerminatedNotification	"IOServiceTerminate"
95
96// IOService interest notification types
97#define kIOGeneralInterest		"IOGeneralInterest"
98#define kIOBusyInterest			"IOBusyInterest"
99#define kIOAppPowerStateInterest	"IOAppPowerStateInterest"
100#define kIOPriorityPowerStateInterest	"IOPriorityPowerStateInterest"
101
102#define kIOPlatformDeviceMessageKey     "IOPlatformDeviceMessage"
103
104// IOService interest notification types
105#define kIOCFPlugInTypesKey		"IOCFPlugInTypes"
106
107// properties found in services that implement command pooling
108#define kIOCommandPoolSizeKey	       "IOCommandPoolSize"          // (OSNumber)
109
110// properties found in services that have transfer constraints
111#define kIOMaximumBlockCountReadKey             "IOMaximumBlockCountRead"             // (OSNumber)
112#define kIOMaximumBlockCountWriteKey            "IOMaximumBlockCountWrite"            // (OSNumber)
113#define kIOMaximumByteCountReadKey              "IOMaximumByteCountRead"              // (OSNumber)
114#define kIOMaximumByteCountWriteKey             "IOMaximumByteCountWrite"             // (OSNumber)
115#define kIOMaximumSegmentCountReadKey           "IOMaximumSegmentCountRead"           // (OSNumber)
116#define kIOMaximumSegmentCountWriteKey          "IOMaximumSegmentCountWrite"          // (OSNumber)
117#define kIOMaximumSegmentByteCountReadKey       "IOMaximumSegmentByteCountRead"       // (OSNumber)
118#define kIOMaximumSegmentByteCountWriteKey      "IOMaximumSegmentByteCountWrite"      // (OSNumber)
119#define kIOMinimumSegmentAlignmentByteCountKey  "IOMinimumSegmentAlignmentByteCount"  // (OSNumber)
120#define kIOMaximumSegmentAddressableBitCountKey "IOMaximumSegmentAddressableBitCount" // (OSNumber)
121
122// properties found in services that wish to describe an icon
123//
124// IOIcon =
125// {
126//     CFBundleIdentifier   = "com.example.driver.example";
127//     IOBundleResourceFile = "example.icns";
128// };
129//
130// where IOBundleResourceFile is the filename of the resource
131
132#define kIOIconKey               "IOIcon"               // (OSDictionary)
133#define kIOBundleResourceFileKey "IOBundleResourceFile" // (OSString)
134
135#define kIOBusBadgeKey           "IOBusBadge"           // (OSDictionary)
136#define kIODeviceIconKey         "IODeviceIcon"         // (OSDictionary)
137
138// property of root that describes the machine's serial number as a string
139#define kIOPlatformSerialNumberKey	"IOPlatformSerialNumber"	// (OSString)
140
141// property of root that describes the machine's UUID as a string
142#define kIOPlatformUUIDKey	"IOPlatformUUID"	// (OSString)
143
144// IODTNVRAM property keys
145#define kIONVRAMDeletePropertyKey	"IONVRAM-DELETE-PROPERTY"
146#define kIODTNVRAMPanicInfoKey		"aapl,panic-info"
147
148// keys for complex boot information
149#define kIOBootDeviceKey          "IOBootDevice"		// dict | array of dicts
150#define kIOBootDevicePathKey      "IOBootDevicePath"	// arch-neutral OSString
151#define kIOBootDeviceSizeKey      "IOBootDeviceSize"	// OSNumber of bytes
152
153// keys for OS Version information
154#define kOSBuildVersionKey		"OS Build Version"
155
156#endif /* ! _IOKIT_IOKITKEYS_H */
157