/* * Copyright (c) 1998-2013 Apple Inc. All rights reserved. * * @APPLE_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. 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_LICENSE_HEADER_END@ */ #ifndef _IOKIT_IO_STORAGE_PROTOCOL_CHARACTERISTICS_H_ #define _IOKIT_IO_STORAGE_PROTOCOL_CHARACTERISTICS_H_ /* * Protocol Characteristics - Characteristics defined for protocols. */ /*! @defined kIOPropertyProtocolCharacteristicsKey @discussion This key is used to define Protocol Characteristics for a particular protocol and it has an associated dictionary which lists the protocol characteristics. Requirement: Mandatory Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		ATAPI
		Physical Interconnect Location
		Internal
	

@/textblock
*/ #define kIOPropertyProtocolCharacteristicsKey "Protocol Characteristics" /*! @defined kIOPropertySCSIInitiatorIdentifierKey @discussion An identifier that will uniquely identify this SCSI Initiator for the SCSI Domain. Requirement: Mandatory for SCSI Parallel Interface, SAS, and Fibre Channel Interface. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SCSI Parallel Interface
		Physical Interconnect Location
		Internal
		SCSI Initiator Identifier
		7
	

@/textblock
*/ #define kIOPropertySCSIInitiatorIdentifierKey "SCSI Initiator Identifier" /*! @defined kIOPropertySCSIDomainIdentifierKey @discussion An identifier that will uniquely identify this SCSI Domain for the Physical Interconnect type. This identifier is only guaranteed to be unique for any given Physical Interconnect and is not guaranteed to be the same across restarts or shutdowns. Requirement: Mandatory for SCSI Parallel Interface and Fibre Channel Interface. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SCSI Parallel Interface
		Physical Interconnect Location
		Internal
		SCSI Domain Identifier
		0
	

@/textblock
*/ #define kIOPropertySCSIDomainIdentifierKey "SCSI Domain Identifier" /*! @defined kIOPropertySCSITargetIdentifierKey @discussion This is the SCSI Target Identifier for a given SCSI Target Device. Requirement: Mandatory for SCSI Parallel Interface and Fibre Channel Interface. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SCSI Parallel Interface
		Physical Interconnect Location
		Internal
		SCSI Target Identifier
		3
	

@/textblock
*/ #define kIOPropertySCSITargetIdentifierKey "SCSI Target Identifier" /*! @defined kIOPropertySCSILogicalUnitNumberKey @discussion This key is the SCSI Logical Unit Number for the device server controlled by the driver. Requirement: Mandatory for SCSI Parallel Interface, SAS, and Fibre Channel Interface. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SCSI Parallel Interface
		Physical Interconnect Location
		Internal
		SCSI Logical Unit Number
		2
	

@/textblock
*/ #define kIOPropertySCSILogicalUnitNumberKey "SCSI Logical Unit Number" /*! @defined kIOPropertySASAddressKey @discussion This key is the unique 64-bit SAS Address for the device server node located at this port, or for the initiating host port. Requirement: Mandatory for SAS. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SAS
		Physical Interconnect Location
		External
		SAS Address
		0011223344556677
	

@/textblock
Example2:
@textblock

	Controller Characteristics
	
		SAS Address
		0011223344556677
	

@/textblock
*/ #define kIOPropertySASAddressKey "SAS Address" /*! @defined kIOPropertySCSIPortIdentifierKey @discussion This key is the unique port identifier for the device server node located at this port, or for the initiating host port. The format for this data is allowed to be vendor-specific, as long as it is guaranteed to be unique. Length is arbitrary, to allow for itnerfaces with non-standard identifier rules. It is recommended to have this be a copy of an existing standard unique identifier for this port, should one already exist for your interface type Requirement: Mandatory. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Fibre Channel Interface
		Physical Interconnect Location
		External
		Node World Wide Name
		0011223344556677
		Unique SCSI Port Identifier
		0011223344556677
	

@/textblock
Example2:
@textblock

	Controller Characteristics
	
		Unique SCSI Port Identifier
		0011223344556677
	

@/textblock
*/ #define kIOPropertySCSIPortIdentifierKey "Unique SCSI Port Identifier" /*! @defined kIOPropertyFibreChannelNodeWorldWideNameKey @discussion This key is the unique 64-bit World Wide Name for the device server node located at this port, or for the initiating host port. Requirement: Mandatory for Fibre Channel Interface. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Fibre Channel Interface
		Physical Interconnect Location
		External
		Node World Wide Name
		0011223344556677
	

@/textblock
Example2:
@textblock

	Controller Characteristics
	
		Node World Wide Name
		0011223344556677
	

@/textblock
*/ #define kIOPropertyFibreChannelNodeWorldWideNameKey "Node World Wide Name" /*! @defined kIOPropertyFibreChannelPortWorldWideNameKey @discussion This key is the unique 64-bit World Wide Name for the port. Requirement: Mandatory for Fibre Channel Interface. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Fibre Channel Interface
		Physical Interconnect Location
		External
		Port World Wide Name
		0011223344556677
	

@/textblock
Example2:
@textblock

	Controller Characteristics
	
		Port World Wide Name
		0011223344556677
	

@/textblock
*/ #define kIOPropertyFibreChannelPortWorldWideNameKey "Port World Wide Name" /*! @defined kIOPropertyFibreChannelAddressIdentifierKey @discussion This key is the 24-bit Address Identifier (S_ID or D_ID) as defined in the FC-FS specification. It contains the address identifier of the source or destination Nx_Port. Note: This value can change. It is not a static value. Requirement: Optional (only necessary for Fibre Channel Interface). Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Fibre Channel Interface
		Physical Interconnect Location
		External
		Address Identifier
		001122
	

@/textblock
Example2:
@textblock

	Controller Characteristics
	
		Address Identifier
		001122
	

@/textblock
*/ #define kIOPropertyFibreChannelAddressIdentifierKey "Address Identifier" /*! @defined kIOPropertyFibreChannelALPAKey @discussion This key is the 8-bit Arbitrated Loop Physical Address (AL_PA) value as defined in the FC-AL-2 specification. Note: This value can change. It is not a static value. Requirement: Optional (only necessary for Fibre Channel Interface). Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Fibre Channel Interface
		Physical Interconnect Location
		External
		AL_PA
		04
	

@/textblock
Example2:
@textblock

	Controller Characteristics
	
		AL_PA
		04
	

@/textblock
*/ #define kIOPropertyFibreChannelALPAKey "AL_PA" /*! @defined kIOPropertyPortStatusKey @discussion This key is associated with the current port status of the physical link. The port status is either "Link Established", "No Link Established", or "Link Failed". Note: This value can change when the port status changes. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Status
		Link Established
	

@/textblock
*/ #define kIOPropertyPortStatusKey "Port Status" /*! @defined kIOPropertyPortSpeedKey @discussion This key is associated with the current port speed. The port speed can be any valid speed for the interconnect. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic (1 Gigabit)
	

@/textblock
*/ #define kIOPropertyPortSpeedKey "Port Speed" /*! @defined kIOPropertyPortTopologyKey @discussion This key is associated with the current port topology. The port topology can be any valid topology for the interconnect. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Topology
		Automatic (N_Port)
	

@/textblock
*/ #define kIOPropertyPortTopologyKey "Port Topology" /*! @defined kIOPropertyPortDescriptionKey @discussion This key is associated with an human readable port description. Examples include "Channel A", "Port 1", etc. Requirement: Optional for all interconnects. Example:
@textblock

	Controller Characteristics
	
		Port Description
		Channel A
	

@/textblock
*/ #define kIOPropertyPortDescriptionKey "Port Description" /*! @defined kIOPropertySCSIParallelSignalingTypeKey @discussion This key is associated with the signaling type used for this SCSI Parallel bus. Valid values include "High Voltage Differential", "Low Voltage Differential", and "Single Ended". Requirement: Optional for SCSI Parallel Interface. Not defined for any other physical interconnect. Example:
@textblock

	Controller Characteristics
	
		SCSI Parallel Signaling Type
		High Voltage Differential
	

@/textblock
*/ #define kIOPropertySCSIParallelSignalingTypeKey "SCSI Parallel Signaling Type" /*! @defined kIOPropertyFibreChannelCableDescriptionKey @discussion This key is associated with the cabling type used for this Fibre Channel port. Valid values include "Copper" and "Fiber Optic". Requirement: Optional for Fibre Channel Interface. Not defined for any other physical interconnect. Example:
@textblock

	Controller Characteristics
	
		Fibre Channel Cabling Type
		Copper
	

@/textblock
*/ #define kIOPropertyFibreChannelCableDescriptionKey "Fibre Channel Cabling Type" /*! @defined kIOPropertyPhysicalInterconnectTypeKey @discussion This key is used to define the Physical Interconnect to which a device is attached. Requirement: Mandatory. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SCSI Parallel Interface
		Physical Interconnect Location
		Internal
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeKey "Physical Interconnect" /*! @defined kIOPropertyPhysicalInterconnectLocationKey @discussion This key is used to define the Physical Interconnect Location. Requirement: Mandatory. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SCSI Parallel Interface
		Physical Interconnect Location
		Internal
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectLocationKey "Physical Interconnect Location" /*! @defined kIOPropertySCSIProtocolMultiInitKey @discussion This protocol characteristics key is used to inform the system that the protocol supports having multiple devices that act as initiators. Requirement: Optional. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Fibre Channel Interface
		Physical Interconnect Location
		External
		Multiple Initiators
		True
	

@/textblock
*/ #define kIOPropertySCSIProtocolMultiInitKey "Multiple Initiators" /* * Values - Values for the characteristics defined above. */ /*! @defined kIOPropertyInternalKey @discussion This key defines the value of Internal for the key kIOPropertyPhysicalInterconnectLocationKey. If the device is connected to an internal bus, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		ATA
		Physical Interconnect Location
		Internal
	

@/textblock
*/ #define kIOPropertyInternalKey "Internal" /*! @defined kIOPropertyExternalKey @discussion This key defines the value of External for the key kIOPropertyPhysicalInterconnectLocationKey. If the device is connected to an external bus, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Fibre Channel Interface
		Physical Interconnect Location
		External
	

@/textblock
*/ #define kIOPropertyExternalKey "External" /*! @defined kIOPropertyInternalExternalKey @discussion This key defines the value of Internal/External for the key kIOPropertyPhysicalInterconnectLocationKey. If the device is connected to a bus and it is indeterminate whether it is internal or external, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SCSI Parallel Interface
		Physical Interconnect Location
		Internal/External
	

@/textblock
*/ #define kIOPropertyInternalExternalKey "Internal/External" /*! @defined kIOPropertyInterconnectFileKey @discussion This key defines the value of File for the key kIOPropertyPhysicalInterconnectLocationKey. If the device is a file that is being represented as a storage device, this key should be set. NOTE: This key should only be used when the Physical Interconnect is set to Virtual Interface. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Virtual Interface
		Physical Interconnect Location
		File
	

@/textblock
*/ #define kIOPropertyInterconnectFileKey "File" /*! @defined kIOPropertyInterconnectRAMKey @discussion This key defines the value of RAM for the key kIOPropertyPhysicalInterconnectLocationKey. If the device is system memory that is being represented as a storage device, this key should be set. NOTE: This key should only be used when the Physical Interconnect is set to Virtual Interface. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Virtual Interface
		Physical Interconnect Location
		RAM
	

@/textblock
*/ #define kIOPropertyInterconnectRAMKey "RAM" /*! @defined kIOPropertyPhysicalInterconnectTypeATA @discussion This key defines the value of ATA for the key kIOPropertyPhysicalInterconnectTypeKey. If the device is connected to an ATA bus, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		ATA
		Physical Interconnect Location
		Internal
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeATA "ATA" /*! @defined kIOPropertyPhysicalInterconnectTypeSerialATA @discussion This key defines the value of SATA for the key kIOPropertyPhysicalInterconnectTypeKey. If the device is connected to a SATA bus, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SATA
		Physical Interconnect Location
		Internal
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeSerialATA "SATA" /*! @defined kIOPropertyPhysicalInterconnectTypeSerialAttachedSCSI @discussion This key defines the value of SAS for the key kIOPropertyPhysicalInterconnectTypeKey. If the device is connected to a SAS bus, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SAS
		Physical Interconnect Location
		External
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeSerialAttachedSCSI "SAS" /*! @defined kIOPropertyPhysicalInterconnectTypeATAPI @discussion This key defines the value of ATAPI for the key kIOPropertyPhysicalInterconnectTypeKey. If the device is connected to an ATA bus and follows the ATAPI command specification, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		ATAPI
		Physical Interconnect Location
		Internal
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeATAPI "ATAPI" /*! @defined kIOPropertyPhysicalInterconnectTypeUSB @discussion This key defines the value of USB for the key kIOPropertyPhysicalInterconnectTypeKey. If the device is connected to a USB port, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		USB
		Physical Interconnect Location
		External
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeUSB "USB" /*! @defined kIOPropertyPhysicalInterconnectTypeFireWire @discussion This key defines the value of USB for the key kIOPropertyPhysicalInterconnectTypeKey. If the device is connected to a FireWire port, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		FireWire
		Physical Interconnect Location
		External
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeFireWire "FireWire" /*! @defined kIOPropertyPhysicalInterconnectTypeSecureDigital @discussion This key defines the value of Secure Digital for the key kIOPropertyPhysicalInterconnectTypeSecureDigital. If the device is connected to a Secure Digital port and follows the Secure Digital specification, this key should be set. Example:
 @textblock
 
    Protocol Characteristics
    
        Physical Interconnect
        Secure Digital
        Physical Interconnect Location
        Internal
    
 
 @/textblock
 
*/ #define kIOPropertyPhysicalInterconnectTypeSecureDigital "Secure Digital" /*! @defined kIOPropertyPhysicalInterconnectTypeSCSIParallel @discussion This key defines the value of SCSI Parallel Interface for the key kIOPropertyPhysicalInterconnectTypeKey. If the device is connected to a SCSI Parallel port, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		SCSI Parallel Interface
		Physical Interconnect Location
		External
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeSCSIParallel "SCSI Parallel Interface" /*! @defined kIOPropertyPhysicalInterconnectTypeFibreChannel @discussion This key defines the value of Fibre Channel Interface for the key kIOPropertyPhysicalInterconnectTypeKey. If the device is connected to a Fibre Channel port, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Fibre Channel Interface
		Physical Interconnect Location
		External
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeFibreChannel "Fibre Channel Interface" /*! @defined kIOPropertyPhysicalInterconnectTypeVirtual @discussion This key defines the value of Virtual Interface for the key kIOPropertyPhysicalInterconnectTypeVirtual. If the device is being made to look like a storage device, but is not such in actuality, such as a File or RAM, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		Virtual Interface
		Physical Interconnect Location
		File
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypeVirtual "Virtual Interface" /*! @defined kIOPropertyPhysicalInterconnectTypePCI @discussion This key defines the value of PCI for the key kIOPropertyPhysicalInterconnectTypePCI. If the device is connected via PCI, this key should be set. Example:
@textblock

	Protocol Characteristics
	
		Physical Interconnect
		PCI
		Physical Interconnect Location
		Internal
	

@/textblock
*/ #define kIOPropertyPhysicalInterconnectTypePCI "PCI" /*! @defined kIOPropertyPortStatusLinkEstablishedKey @discussion This key defines the value of Link Established for the key kIOPropertyPortStatusKey. Example:
@textblock

	Controller Characteristics
	
		Port Status
		Link Established
	

@/textblock
*/ #define kIOPropertyPortStatusLinkEstablishedKey "Link Established" /*! @defined kIOPropertyPortStatusNoLinkEstablishedKey @discussion This key defines the value of No Link Established for the key kIOPropertyPortStatusKey. Example:
@textblock

	Controller Characteristics
	
		Port Status
		No Link Established
	

@/textblock
*/ #define kIOPropertyPortStatusNoLinkEstablishedKey "No Link Established" /*! @defined kIOPropertyPortStatusLinkFailedKey @discussion This key defines the value of Link Failed for the key kIOPropertyPortStatusKey. Example:
@textblock

	Controller Characteristics
	
		Port Status
		Link Failed
	

@/textblock
*/ #define kIOPropertyPortStatusLinkFailedKey "Link Failed" /*! @defined kIOPropertyPortSpeedAutomaticKey @discussion This key defines the value of Automatic for the key kIOPropertyPortSpeedKey. If the speed of the port is automatically adjusted by the host/device and a definitive speed is not known, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic
	

@/textblock
*/ #define kIOPropertyPortSpeedAutomaticKey "Automatic" /*! @defined kIOPropertyPortSpeed1GigabitKey @discussion This key defines the value of 1 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 1 Gigabit per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		1 Gigabit
	

@/textblock
*/ #define kIOPropertyPortSpeed1GigabitKey "1 Gigabit" /*! @defined kIOPropertyPortSpeed1_5GigabitKey @discussion This key defines the value of 1.5 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 1.5 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		1.5 Gigabit
	

@/textblock
*/ #define kIOPropertyPortSpeed1_5GigabitKey "1.5 Gigabit" /*! @defined kIOPropertyPortSpeed2GigabitKey @discussion This key defines the value of 2 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 2 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		2 Gigabit
	

@/textblock
*/ #define kIOPropertyPortSpeed2GigabitKey "2 Gigabit" /*! @defined kIOPropertyPortSpeed3GigabitKey @discussion This key defines the value of 3 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 3 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		3 Gigabit
	

@/textblock
*/ #define kIOPropertyPortSpeed3GigabitKey "3 Gigabit" /*! @defined kIOPropertyPortSpeed4GigabitKey @discussion This key defines the value of 4 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 4 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		4 Gigabit
	

@/textblock
*/ #define kIOPropertyPortSpeed4GigabitKey "4 Gigabit" /*! @defined kIOPropertyPortSpeed6GigabitKey @discussion This key defines the value of 6 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 6 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		6 Gigabit
	

@/textblock
*/ #define kIOPropertyPortSpeed6GigabitKey "6 Gigabit" /*! @defined kIOPropertyPortSpeed8GigabitKey @discussion This key defines the value of 8 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 8 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		8 Gigabit
	

@/textblock
*/ #define kIOPropertyPortSpeed8GigabitKey "8 Gigabit" /*! @defined kIOPropertyPortSpeed10GigabitKey @discussion This key defines the value of 10 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 10 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		10 Gigabit
	

@/textblock
*/ #define kIOPropertyPortSpeed10GigabitKey "10 Gigabit" /*! @defined kIOPropertyPortSpeed12GigabitKey @discussion This key defines the value of 12 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 12 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
 @textblock
 
 Controller Characteristics
 
 Port Speed
 12 Gigabit
 
 
 @/textblock
 
*/ #define kIOPropertyPortSpeed12GigabitKey "12 Gigabit" /*! @defined kIOPropertyPortSpeed16GigabitKey @discussion This key defines the value of 16 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 16 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
 @textblock
 
 Controller Characteristics
 
 Port Speed
 16 Gigabit
 
 
 @/textblock
 
*/ #define kIOPropertyPortSpeed16GigabitKey "16 Gigabit" /*! @defined kIOPropertyPortSpeed40GigabitKey @discussion This key defines the value of 40 Gigabit for the key kIOPropertyPortSpeedKey. If the speed of the port is 40 Gigabits per second and is not automatically determined (i.e. the user configured the port to be exactly this speed), this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
 @textblock
 
 Controller Characteristics
 
 Port Speed
 40 Gigabit
 
 
 @/textblock
 
*/ #define kIOPropertyPortSpeed40GigabitKey "40 Gigabit" /*! @defined kIOPropertyPortSpeedAutomatic1GigabitKey @discussion This key defines the value of Automatic (1 Gigabit) for the key kIOPropertyPortSpeedKey. If the speed of the port is 1 Gigabit per second and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic (1 Gigabit)
	

@/textblock
*/ #define kIOPropertyPortSpeedAutomatic1GigabitKey "Automatic (1 Gigabit)" /*! @defined kIOPropertyPortSpeedAutomatic1_5GigabitKey @discussion This key defines the value of Automatic (1.5 Gigabit) for the key kIOPropertyPortSpeedKey. If the speed of the port is 1.5 Gigabits per second and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic (1.5 Gigabit)
	

@/textblock
*/ #define kIOPropertyPortSpeedAutomatic1_5GigabitKey "Automatic (1.5 Gigabit)" /*! @defined kIOPropertyPortSpeedAutomatic2GigabitKey @discussion This key defines the value of Automatic (2 Gigabit) for the key kIOPropertyPortSpeedKey. If the speed of the port is 2 Gigabits per second and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic (2 Gigabit)
	

@/textblock
*/ #define kIOPropertyPortSpeedAutomatic2GigabitKey "Automatic (2 Gigabit)" /*! @defined kIOPropertyPortSpeedAutomatic3GigabitKey @discussion This key defines the value of Automatic (3 Gigabit) for the key kIOPropertyPortSpeedKey. If the speed of the port is 3 Gigabits per second and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic (3 Gigabit)
	

@/textblock
*/ #define kIOPropertyPortSpeedAutomatic3GigabitKey "Automatic (3 Gigabit)" /*! @defined kIOPropertyPortSpeedAutomatic4GigabitKey @discussion This key defines the value of Automatic (4 Gigabit) for the key kIOPropertyPortSpeedKey. If the speed of the port is 4 Gigabits per second and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic (4 Gigabit)
	

@/textblock
*/ #define kIOPropertyPortSpeedAutomatic4GigabitKey "Automatic (4 Gigabit)" /*! @defined kIOPropertyPortSpeedAutomatic6GigabitKey @discussion This key defines the value of Automatic (6 Gigabit) for the key kIOPropertyPortSpeedKey. If the speed of the port is 6 Gigabits per second and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic (6 Gigabit)
	

@/textblock
*/ #define kIOPropertyPortSpeedAutomatic6GigabitKey "Automatic (6 Gigabit)" /*! @defined kIOPropertyPortSpeedAutomatic8GigabitKey @discussion This key defines the value of Automatic (8 Gigabit) for the key kIOPropertyPortSpeedKey. If the speed of the port is 8 Gigabits per second and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic (8 Gigabit)
	

@/textblock
*/ #define kIOPropertyPortSpeedAutomatic8GigabitKey "Automatic (8 Gigabit)" /*! @defined kIOPropertyPortSpeedAutomatic10GigabitKey @discussion This key defines the value of Automatic (10 Gigabit) for the key kIOPropertyPortSpeedKey. If the speed of the port is 10 Gigabits per second and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Speed
		Automatic (10 Gigabit)
	

@/textblock
*/ #define kIOPropertyPortSpeedAutomatic10GigabitKey "Automatic (10 Gigabit)" /*! @defined kIOPropertyPortTopologyAutomaticKey @discussion This key defines the value of Automatic for the key kIOPropertyPortTopologyKey. If the topology of the port is automatically adjusted by the host/device and a definitive topology is not known, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Topology
		Automatic
	

@/textblock
*/ #define kIOPropertyPortTopologyAutomaticKey "Automatic" /*! @defined kIOPropertyPortTopologyNPortKey @discussion This key defines the value of N_Port for the key kIOPropertyPortTopologyKey. If the topology of the port is an N_Port, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Topology
		N_Port
	

@/textblock
*/ #define kIOPropertyPortTopologyNPortKey "N_Port" /*! @defined kIOPropertyPortTopologyNLPortKey @discussion This key defines the value of NL_Port for the key kIOPropertyPortTopologyKey. If the topology of the port is an NL_Port, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Topology
		NL_Port
	

@/textblock
*/ #define kIOPropertyPortTopologyNLPortKey "NL_Port" /*! @defined kIOPropertyPortTopologyAutomaticNPortKey @discussion This key defines the value of Automatic (N_Port) for the key kIOPropertyPortTopologyKey. If the topology of the port is N_Port and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Topology
		Automatic (N_Port)
	

@/textblock
*/ #define kIOPropertyPortTopologyAutomaticNPortKey "Automatic (N_Port)" /*! @defined kIOPropertyPortTopologyAutomaticNLPortKey @discussion This key defines the value of Automatic (NL_Port) for the key kIOPropertyPortTopologyKey. If the topology of the port is NL_Port and is automatically determined by host software, this key should be used. Note: This value can change. It is not a static value. Requirement: Optional for any interconnect. Example:
@textblock

	Controller Characteristics
	
		Port Topology
		Automatic (NL_Port)
	

@/textblock
*/ #define kIOPropertyPortTopologyAutomaticNLPortKey "Automatic (NL_Port)" /*! @defined kIOPropertySCSIParallelSignalingTypeHVDKey @discussion This key defines the value of High Voltage Differential for the key kIOPropertySCSIParallelSignalingTypeKey. If the signaling type of the port is High Voltage Differential, this key should be used. Requirement: Optional for SCSI Parallel Interface interconnect. Example:
@textblock

	Controller Characteristics
	
		SCSI Parallel Signaling Type
		High Voltage Differential
	

@/textblock
*/ #define kIOPropertySCSIParallelSignalingTypeHVDKey "High Voltage Differential" /*! @defined kIOPropertySCSIParallelSignalingTypeLVDKey @discussion This key defines the value of Low Voltage Differential for the key kIOPropertySCSIParallelSignalingTypeKey. If the signaling type of the port is Low Voltage Differential, this key should be used. Requirement: Optional for SCSI Parallel Interface interconnect. Example:
@textblock

	Controller Characteristics
	
		SCSI Parallel Signaling Type
		Low Voltage Differential
	

@/textblock
*/ #define kIOPropertySCSIParallelSignalingTypeLVDKey "Low Voltage Differential" /*! @defined kIOPropertySCSIParallelSignalingTypeSEKey @discussion This key defines the value of Single Ended for the key kIOPropertySCSIParallelSignalingTypeKey. If the signaling type of the port is Single Ended, this key should be used. Requirement: Optional for SCSI Parallel Interface interconnect. Example:
@textblock

	Controller Characteristics
	
		SCSI Parallel Signaling Type
		Single Ended
	

@/textblock
*/ #define kIOPropertySCSIParallelSignalingTypeSEKey "Single Ended" /*! @defined kIOPropertyFibreChannelCableDescriptionCopperKey @discussion This key defines the value of Copper for the key kIOPropertyFibreChannelCableDescriptionKey. If the cabling is Copper, this key should be used. Requirement: Optional for Fibre Channel Interface interconnect. Example:
@textblock

	Controller Characteristics
	
		Fibre Channel Cabling Type
		Copper
	

@/textblock
*/ #define kIOPropertyFibreChannelCableDescriptionCopperKey "Copper" /*! @defined kIOPropertyFibreChannelCableDescriptionFiberOpticKey @discussion This key defines the value of Fiber Optic for the key kIOPropertyFibreChannelCableDescriptionKey. If the cabling is Fiber Optic, this key should be used. Requirement: Optional for Fibre Channel Interface interconnect. Example:
@textblock

	Controller Characteristics
	
		Fibre Channel Cabling Type
		Fiber Optic
	

@/textblock
*/ #define kIOPropertyFibreChannelCableDescriptionFiberOpticKey "Fiber Optic" #endif /* _IOKIT_IO_STORAGE_PROTOCOL_CHARACTERISTICS_H_ */