/* * Copyright (c) 1998-2001 Apple Computer, 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*/ #define kIOPropertyProtocolCharacteristicsKey "Protocol Characteristics" /*! @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 ATAPI Physical Interconnect Location Internal
@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 Domain Identifier 0
@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 and Fibre Channel Interface. Example:@/textblock Protocol Characteristics Physical Interconnect SCSI Parallel Interface Physical Interconnect Location Internal SCSI Target Identifier 3
@textblock*/ #define kIOPropertySCSILogicalUnitNumberKey "SCSI Logical Unit Number" /*! @defined kIOPropertyFibreChannelNodeWorldWideNameKey @discussion This key is the unique 64-bit World Wide Name for the device server node located at this port. Requirement: Mandatory for Fibre Channel Interface. Example:@/textblock Protocol Characteristics Physical Interconnect SCSI Parallel Interface Physical Interconnect Location Internal SCSI Logical Unit Number 2
@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 Node 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. Requirement: Optional (only necessary for Fibre Channel Interface). Example:@/textblock Protocol Characteristics Physical Interconnect Fibre Channel Interface Physical Interconnect Location External Port World Wide Name 0011223344556677
@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. 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*/ #define kIOPropertyFibreChannelALPAKey "AL_PA" /*! @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 Fibre Channel Interface Physical Interconnect Location External ALPA 04
@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 SCSI Parallel Interface Physical Interconnect Location Internal
@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 Fibre Channel Interface Physical Interconnect Location External Multiple Initiators True
@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 ATA Physical Interconnect Location Internal
@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 Fibre Channel Interface Physical Interconnect Location 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 SCSI Parallel Interface Physical Interconnect Location Internal/External
@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 File
@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 Virtual Interface Physical Interconnect Location RAM
@textblock*/ #define kIOPropertyPhysicalInterconnectTypeATA "ATA" /*! @defined kIOPropertyPhysicalInterconnectTypeSerialATA @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 kIOPropertyPhysicalInterconnectTypeSerialATA "SATA" /*! @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 SATA 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 ATAPI Physical Interconnect Location Internal
@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 USB Physical Interconnect Location External
@textblock*/ #define kIOPropertyPhysicalInterconnectTypeFireWire "FireWire" /*! @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 FireWire 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 SCSI Parallel 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 Fibre Channel Interface Physical Interconnect Location External
@textblock*/ #define kIOPropertyPhysicalInterconnectTypeVirtual "Virtual Interface" #endif /* _IOKIT_IO_STORAGE_PROTOCOL_CHARACTERISTICS_H_ */@/textblock Protocol Characteristics Physical Interconnect Virtual Interface Physical Interconnect Location File