X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/21362eb3e66fd2c787aee132bce100a44d71a99c..ea3f04195ba4a5034c9c8e9b726d4f7ce96f1832:/iokit/IOKit/IOKitKeys.h diff --git a/iokit/IOKit/IOKitKeys.h b/iokit/IOKit/IOKitKeys.h index babf6dbc9..34da31735 100644 --- a/iokit/IOKit/IOKitKeys.h +++ b/iokit/IOKit/IOKitKeys.h @@ -2,7 +2,7 @@ * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in @@ -11,10 +11,10 @@ * unlawful or unlicensed copies of an Apple operating system, or to * circumvent, violate, or enable the circumvention or violation of, any * terms of an Apple operating system software license agreement. - * + * * Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -22,13 +22,13 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* - * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. * - * Common symbol definitions for IOKit. + * Common symbol definitions for IOKit. * * HISTORY * @@ -39,81 +39,150 @@ #define _IOKIT_IOKITKEYS_H // properties found in the registry root -#define kIOKitBuildVersionKey "IOKitBuildVersion" -#define kIOKitDiagnosticsKey "IOKitDiagnostics" - // a dictionary keyed by plane name -#define kIORegistryPlanesKey "IORegistryPlanes" -#define kIOCatalogueKey "IOCatalogue" +#define kIOKitBuildVersionKey "IOKitBuildVersion" +#define kIOKitDiagnosticsKey "IOKitDiagnostics" +// a dictionary keyed by plane name +#define kIORegistryPlanesKey "IORegistryPlanes" +#define kIOCatalogueKey "IOCatalogue" // registry plane names -#define kIOServicePlane "IOService" -#define kIOPowerPlane "IOPower" -#define kIODeviceTreePlane "IODeviceTree" -#define kIOAudioPlane "IOAudio" -#define kIOFireWirePlane "IOFireWire" -#define kIOUSBPlane "IOUSB" +#define kIOServicePlane "IOService" +#define kIOPowerPlane "IOPower" +#define kIODeviceTreePlane "IODeviceTree" +#define kIOAudioPlane "IOAudio" +#define kIOFireWirePlane "IOFireWire" +#define kIOUSBPlane "IOUSB" + +// registry ID number +#define kIORegistryEntryIDKey "IORegistryEntryID" +// property name to get array of property names +#define kIORegistryEntryPropertyKeysKey "IORegistryEntryPropertyKeys" // IOService class name -#define kIOServiceClass "IOService" +#define kIOServiceClass "IOService" // IOResources class name -#define kIOResourcesClass "IOResources" +#define kIOResourcesClass "IOResources" // IOService driver probing property names -#define kIOClassKey "IOClass" -#define kIOProbeScoreKey "IOProbeScore" -#define kIOKitDebugKey "IOKitDebug" +#define kIOClassKey "IOClass" +#define kIOProbeScoreKey "IOProbeScore" +#define kIOKitDebugKey "IOKitDebug" -// IOService matching property names -#define kIOProviderClassKey "IOProviderClass" -#define kIONameMatchKey "IONameMatch" -#define kIOPropertyMatchKey "IOPropertyMatch" -#define kIOPathMatchKey "IOPathMatch" -#define kIOLocationMatchKey "IOLocationMatch" -#define kIOParentMatchKey "IOParentMatch" -#define kIOResourceMatchKey "IOResourceMatch" -#define kIOMatchedServiceCountKey "IOMatchedServiceCountMatch" +// Properties to be supported as API +#define kIOSupportedPropertiesKey "IOSupportedProperties" +// Properties writable by dexts +#define kIOUserServicePropertiesKey "IOUserServiceProperties" -#define kIONameMatchedKey "IONameMatched" -#define kIOMatchCategoryKey "IOMatchCategory" -#define kIODefaultMatchCategoryKey "IODefaultMatchCategory" +// IOService matching property names +#define kIOProviderClassKey "IOProviderClass" +#define kIONameMatchKey "IONameMatch" +#define kIOPropertyMatchKey "IOPropertyMatch" +#define kIOPropertyExistsMatchKey "IOPropertyExistsMatch" +#define kIOPathMatchKey "IOPathMatch" +#define kIOLocationMatchKey "IOLocationMatch" +#define kIOParentMatchKey "IOParentMatch" +#define kIOResourceMatchKey "IOResourceMatch" +#define kIOResourceMatchedKey "IOResourceMatched" +#define kIOMatchedServiceCountKey "IOMatchedServiceCountMatch" + +#define kIONameMatchedKey "IONameMatched" + +#define kIOMatchCategoryKey "IOMatchCategory" +#define kIODefaultMatchCategoryKey "IODefaultMatchCategory" + +#define kIOMatchedPersonalityKey "IOMatchedPersonality" +#define kIORematchPersonalityKey "IORematchPersonality" +#define kIORematchCountKey "IORematchCount" +#define kIODEXTMatchCountKey "IODEXTMatchCount" + +// Entitlements to check against dext process +// Property is an array, one or more of which may match, of: +// an array of entitlement strings, all must be present +// Any array can be a single string. +#define kIOServiceDEXTEntitlementsKey "IOServiceDEXTEntitlements" + +// Entitlement required to open dext connection +#define kIODriverKitEntitlementKey "com.apple.developer.driverkit" + +// Entitlements required to open dext IOUserClient +// Property is an array of strings containing CFBundleIdentifiers of service being opened +#define kIODriverKitUserClientEntitlementsKey "com.apple.developer.driverkit.userclient-access" + +// Other DriverKit entitlements +#define kIODriverKitUSBTransportEntitlementKey "com.apple.developer.driverkit.transport.usb" +#define kIODriverKitHIDTransportEntitlementKey "com.apple.developer.driverkit.transport.hid" +#define kIODriverKitHIDFamilyDeviceEntitlementKey "com.apple.developer.driverkit.family.hid.device" +#define kIODriverKitHIDFamilyEventServiceEntitlementKey "com.apple.developer.driverkit.family.hid.eventservice" +#define kIODriverKitTransportBuiltinEntitlementKey "com.apple.developer.driverkit.builtin" + + +// When possible, defer matching of this driver until kextd has started. +#define kIOMatchDeferKey "IOMatchDefer" // IOService default user client class, for loadable user clients -#define kIOUserClientClassKey "IOUserClientClass" +#define kIOUserClientClassKey "IOUserClientClass" + +// key to find IOMappers +#define kIOMapperIDKey "IOMapperID" + +#define kIOUserClientCrossEndianKey "IOUserClientCrossEndian" +#define kIOUserClientCrossEndianCompatibleKey "IOUserClientCrossEndianCompatible" +#define kIOUserClientSharedInstanceKey "IOUserClientSharedInstance" +#if KERNEL_PRIVATE +#define kIOUserClientMessageAppSuspendedKey "IOUserClientMessageAppSuspended" +#endif +// diagnostic string describing the creating task +#define kIOUserClientCreatorKey "IOUserClientCreator" +// the expected cdhash value of the userspace driver executable +#define kIOUserServerCDHashKey "IOUserServerCDHash" + +#define kIOUserUserClientKey "IOUserUserClient" + // IOService notification types -#define kIOPublishNotification "IOServicePublish" -#define kIOFirstPublishNotification "IOServiceFirstPublish" -#define kIOMatchedNotification "IOServiceMatched" -#define kIOFirstMatchNotification "IOServiceFirstMatch" -#define kIOTerminatedNotification "IOServiceTerminate" +#define kIOPublishNotification "IOServicePublish" +#define kIOFirstPublishNotification "IOServiceFirstPublish" +#define kIOMatchedNotification "IOServiceMatched" +#define kIOFirstMatchNotification "IOServiceFirstMatch" +#define kIOTerminatedNotification "IOServiceTerminate" +#define kIOWillTerminateNotification "IOServiceWillTerminate" // IOService interest notification types -#define kIOGeneralInterest "IOGeneralInterest" -#define kIOBusyInterest "IOBusyInterest" -#define kIOAppPowerStateInterest "IOAppPowerStateInterest" -#define kIOPriorityPowerStateInterest "IOPriorityPowerStateInterest" +#define kIOGeneralInterest "IOGeneralInterest" +#define kIOBusyInterest "IOBusyInterest" +#define kIOAppPowerStateInterest "IOAppPowerStateInterest" +#define kIOPriorityPowerStateInterest "IOPriorityPowerStateInterest" + +#define kIOPlatformDeviceMessageKey "IOPlatformDeviceMessage" // IOService interest notification types -#define kIOCFPlugInTypesKey "IOCFPlugInTypes" +#define kIOCFPlugInTypesKey "IOCFPlugInTypes" // properties found in services that implement command pooling -#define kIOCommandPoolSizeKey "IOCommandPoolSize" // (OSNumber) +#define kIOCommandPoolSizeKey "IOCommandPoolSize" // (OSNumber) + +// properties found in services that implement priority +#define kIOMaximumPriorityCountKey "IOMaximumPriorityCount" // (OSNumber) // properties found in services that have transfer constraints -#define kIOMaximumBlockCountReadKey "IOMaximumBlockCountRead" // (OSNumber) -#define kIOMaximumBlockCountWriteKey "IOMaximumBlockCountWrite" // (OSNumber) -#define kIOMaximumByteCountReadKey "IOMaximumByteCountRead" // (OSNumber) -#define kIOMaximumByteCountWriteKey "IOMaximumByteCountWrite" // (OSNumber) -#define kIOMaximumSegmentCountReadKey "IOMaximumSegmentCountRead" // (OSNumber) -#define kIOMaximumSegmentCountWriteKey "IOMaximumSegmentCountWrite" // (OSNumber) -#define kIOMaximumSegmentByteCountReadKey "IOMaximumSegmentByteCountRead" // (OSNumber) -#define kIOMaximumSegmentByteCountWriteKey "IOMaximumSegmentByteCountWrite" // (OSNumber) +#define kIOMaximumBlockCountReadKey "IOMaximumBlockCountRead" // (OSNumber) +#define kIOMaximumBlockCountWriteKey "IOMaximumBlockCountWrite" // (OSNumber) +#define kIOMaximumByteCountReadKey "IOMaximumByteCountRead" // (OSNumber) +#define kIOMaximumByteCountWriteKey "IOMaximumByteCountWrite" // (OSNumber) +#define kIOMaximumSegmentCountReadKey "IOMaximumSegmentCountRead" // (OSNumber) +#define kIOMaximumSegmentCountWriteKey "IOMaximumSegmentCountWrite" // (OSNumber) +#define kIOMaximumSegmentByteCountReadKey "IOMaximumSegmentByteCountRead" // (OSNumber) +#define kIOMaximumSegmentByteCountWriteKey "IOMaximumSegmentByteCountWrite" // (OSNumber) +#define kIOMinimumSegmentAlignmentByteCountKey "IOMinimumSegmentAlignmentByteCount" // (OSNumber) +#define kIOMaximumSegmentAddressableBitCountKey "IOMaximumSegmentAddressableBitCount" // (OSNumber) +#define kIOMinimumSaturationByteCountKey "IOMinimumSaturationByteCount" // (OSNumber) +#define kIOMaximumSwapWriteKey "IOMaximumSwapWrite" // (OSNumber) // properties found in services that wish to describe an icon // -// IOIcon = +// IOIcon = // { // CFBundleIdentifier = "com.example.driver.example"; // IOBundleResourceFile = "example.icns"; @@ -128,15 +197,24 @@ #define kIODeviceIconKey "IODeviceIcon" // (OSDictionary) // property of root that describes the machine's serial number as a string -#define kIOPlatformSerialNumberKey "IOPlatformSerialNumber" // (OSString) +#define kIOPlatformSerialNumberKey "IOPlatformSerialNumber" // (OSString) + +// property of root that describes the machine's UUID as a string +#define kIOPlatformUUIDKey "IOPlatformUUID" // (OSString) // IODTNVRAM property keys -#define kIONVRAMDeletePropertyKey "IONVRAM-DELETE-PROPERTY" -#define kIODTNVRAMPanicInfoKey "aapl,panic-info" +#define kIONVRAMBootArgsKey "boot-args" +#define kIONVRAMDeletePropertyKey "IONVRAM-DELETE-PROPERTY" +#define kIONVRAMSyncNowPropertyKey "IONVRAM-SYNCNOW-PROPERTY" +#define kIONVRAMActivateCSRConfigPropertyKey "IONVRAM-ARMCSR-PROPERTY" +#define kIODTNVRAMPanicInfoKey "aapl,panic-info" // keys for complex boot information -#define kIOBootDeviceKey "IOBootDevice" // dict | array of dicts -#define kIOBootDevicePathKey "IOBootDevicePath" // arch-neutral OSString -#define kIOBootDeviceSizeKey "IOBootDeviceSize" // OSNumber of bytes +#define kIOBootDeviceKey "IOBootDevice" // dict | array of dicts +#define kIOBootDevicePathKey "IOBootDevicePath" // arch-neutral OSString +#define kIOBootDeviceSizeKey "IOBootDeviceSize" // OSNumber of bytes + +// keys for OS Version information +#define kOSBuildVersionKey "OS Build Version" #endif /* ! _IOKIT_IOKITKEYS_H */