/*
* 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
* compliance with the License. The rights granted to you under the License
* may not be used to create, or enable the creation or redistribution of,
* 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,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* 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.
*
* Common symbol definitions for IOKit.
*
* HISTORY
*
*/
#ifndef _IOKIT_IOKITKEYS_H
#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"
// registry plane names
#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"
// property name to allow only the given keys present in an OSDictionary from
// a user space call to IORegistryEntry::setProperties (OSArray)
#define kIORegistryEntryAllowableSetPropertiesKey "IORegistryEntryAllowableSetProperties"
// property name to single thread a user space call to IORegistryEntry::setProperties (OSBoolean)
#define kIORegistryEntryDefaultLockingSetPropertiesKey "IORegistryEntryDefaultLockingSetProperties"
// IOService class name
#define kIOServiceClass "IOService"
// IOResources class name
#define kIOResourcesClass "IOResources"
// IOService driver probing property names
#define kIOClassKey "IOClass"
#define kIOProbeScoreKey "IOProbeScore"
#define kIOKitDebugKey "IOKitDebug"
// DriverKit class keys
#define kIOUserClassKey "IOUserClass"
#define kIOUserClassesKey "IOUserClasses"
// Properties to be supported as API
#define kIOSupportedPropertiesKey "IOSupportedProperties"
// Properties writable by dexts
#define kIOUserServicePropertiesKey "IOUserServiceProperties"
// 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"
// Property specifying the entitlement to check against an IOUserClient's opening process
// kOSBooleanFalse - Allow access (no entitlements required)
// string - If the opening process has the named entitlement with value == boolean true, allow access
#define kIOUserClientEntitlementsKey "IOUserClientEntitlements"
// 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"
// Allows the entitled process to open a user client connection to any dext that has specific entitlements
// Property is an array of strings containing entitlements, one of which needs to be present
// in the dext providing the user client being opened
#define kIODriverKitRequiredEntitlementsKey "com.apple.private.driverkit.driver-access"
// Specifies that this driver is used for internal tests. This opts the driver out of our policy to
// reboot the device if a driver crashes too often.
#define kIODriverKitTestDriverEntitlementKey "com.apple.private.driverkit.test-driver"
// Entitlement of a dext that allows any task to open one of its IOUserClients
#define kIODriverKitUserClientEntitlementAllowAnyKey "com.apple.developer.driverkit.allow-any-userclient-access"
#define kIODriverKitUserClientEntitlementAdministratorKey "com.apple.developer.driverkit.administrator"
// Entitlements for third party drivers on iOS
#define kIODriverKitUserClientEntitlementCommunicatesWithDriversKey "com.apple.developer.driverkit.communicates-with-drivers"
#define kIODriverKitUserClientEntitlementAllowThirdPartyUserClientsKey "com.apple.developer.driverkit.allow-third-party-userclients"
// 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"
// Entitlement required to read nvram root-only properties as non-root user
#define kIONVRAMReadAccessKey "com.apple.private.iokit.nvram-read-access"
// Entitlement required to write nvram properties as non-root user
#define kIONVRAMWriteAccessKey "com.apple.private.iokit.nvram-write-access"
// Entitlement required to set properties on the IOResources object as non-root user
#define kIOResourcesSetPropertyKey "com.apple.private.iokit.ioresources.setproperty"
// Entitlement required to read/write to the system nvram region
#define kIONVRAMSystemAllowKey "com.apple.private.iokit.system-nvram-allow"
// When possible, defer matching of this driver until kextd has started.
#define kIOMatchDeferKey "IOMatchDefer"
// Published after processor_start() has been called on all CPUs at boot time.
#define kIOAllCPUInitializedKey "IOAllCPUInitialized"
// IOService default user client class, for loadable user clients
#define kIOUserClientClassKey "IOUserClientClass"
// key to find IOMappers
#define kIOMapperIDKey "IOMapperID"
#ifdef XNU_KERNEL_PRIVATE
// Apple Kext Exclude List
#define kIOExcludeListBundleID "com.apple.driver.KextExcludeList"
#endif
#define kIOUserClientCrossEndianKey "IOUserClientCrossEndian"
#define kIOUserClientCrossEndianCompatibleKey "IOUserClientCrossEndianCompatible"
#define kIOUserClientSharedInstanceKey "IOUserClientSharedInstance"
#if KERNEL_PRIVATE
#define kIOUserClientMessageAppSuspendedKey "IOUserClientMessageAppSuspended"
#endif
#define kIOUserClientDefaultLockingKey "IOUserClientDefaultLocking"
#define kIOUserClientDefaultLockingSetPropertiesKey "IOUserClientDefaultLockingSetProperties"
#define kIOUserClientDefaultLockingSingleThreadExternalMethodKey "IOUserClientDefaultLockingSingleThreadExternalMethod"
// diagnostic string describing the creating task
#define kIOUserClientCreatorKey "IOUserClientCreator"
// the expected cdhash value of the userspace driver executable
#define kIOUserServerCDHashKey "IOUserServerCDHash"
#define kIOUserUserClientKey "IOUserUserClient"
#define kIOUserServerOneProcessKey "IOUserServerOneProcess"
#define kIOUserServerPreserveUserspaceRebootKey "IOUserServerPreserveUserspaceReboot"
// IOService notification types
#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 kIOPlatformDeviceMessageKey "IOPlatformDeviceMessage"
// IOService interest notification types
#define kIOCFPlugInTypesKey "IOCFPlugInTypes"
#define kIOCompatibilityMatchKey "IOCompatibilityMatch"
#define kIOCompatibilityPropertiesKey "IOCompatibilityProperties"
#define kIOPathKey "IOPath"
// properties found in services that implement command pooling
#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 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 =
// {
// CFBundleIdentifier = "com.example.driver.example";
// IOBundleResourceFile = "example.icns";
// };
//
// where IOBundleResourceFile is the filename of the resource
#define kIOIconKey "IOIcon" // (OSDictionary)
#define kIOBundleResourceFileKey "IOBundleResourceFile" // (OSString)
#define kIOBusBadgeKey "IOBusBadge" // (OSDictionary)
#define kIODeviceIconKey "IODeviceIcon" // (OSDictionary)
// property of root that describes the machine's serial number as a string
#define kIOPlatformSerialNumberKey "IOPlatformSerialNumber" // (OSString)
// property of root that describes the machine's UUID as a string
#define kIOPlatformUUIDKey "IOPlatformUUID" // (OSString)
// IODTNVRAM property keys
#define kIONVRAMBootArgsKey "boot-args"
#define kIONVRAMDeletePropertyKey "IONVRAM-DELETE-PROPERTY"
#define kIONVRAMSyncNowPropertyKey "IONVRAM-SYNCNOW-PROPERTY"
#define kIONVRAMActivateCSRConfigPropertyKey "IONVRAM-ARMCSR-PROPERTY"
#define kIODTNVRAMPanicInfoKey "aapl,panic-info"
#define kIONVRAMDeletePropertyKeyWRet "IONVRAM-DELETEWRET-PROPERTY"
// keys for complex boot information
#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"
//
#define kIOStateNotificationItemCreateKey "com.apple.iokit.statenotification.create"
#define kIOStateNotificationItemSetKey "com.apple.iokit.statenotification.set"
#define kIOStateNotificationItemCopyKey "com.apple.iokit.statenotification.copy"
#define kIOStateNotificationNameKey "com.apple.iokit.statenotification.name"
#define kIOStateNotificationEntitlementSetKey "com.apple.iokit.statenotification.entitlement-set"
#define kIOStateNotificationEntitlementGetKey "com.apple.iokit.statenotification.entitlement-get"
//
#define kIOSystemStateClamshellKey "com.apple.iokit.pm.clamshell"
#define kIOSystemStateSleepDescriptionKey "com.apple.iokit.pm.sleepdescription"
#define kIOSystemStateSleepDescriptionReasonKey "com.apple.iokit.pm.sleepreason"
#define kIOSystemStateSleepDescriptionHibernateStateKey "com.apple.iokit.pm.hibernatestate"
// Must match IOHibernatePrivate.h!
enum {
kIOSystemStateSleepDescriptionHibernateStateInactive = 0,
kIOSystemStateSleepDescriptionHibernateStateHibernating = 1,/* writing image */
kIOSystemStateSleepDescriptionHibernateStateWakingFromHibernate = 2 /* booted and restored image */
};
#define kIOSystemStateWakeDescriptionKey "com.apple.iokit.pm.wakedescription"
#define kIOSystemStateWakeDescriptionWakeReasonKey "com.apple.iokit.pm.wakereason"
#define kIOSystemStateWakeDescriptionContinuousTimeOffsetKey "com.apple.iokit.pm.wakedescription.continuous-time-offset"
#define kIOSystemStateHaltDescriptionKey "com.apple.iokit.pm.haltdescription"
#define kIOSystemStateHaltDescriptionHaltStateKey "com.apple.iokit.pm.haltstate"
#define kIOSystemStatePowerSourceDescriptionKey "com.apple.iokit.pm.powersourcedescription"
#define kIOSystemStatePowerSourceDescriptionACAttachedKey "com.apple.iokit.pm.acattached"
#endif /* ! _IOKIT_IOKITKEYS_H */