Important: The information in this document is obsolete and should not be used for new development.
SCSI Bus Inquiry Parameter Block
You use the SCSI bus inquiry parameter block with theSCSIBusInquiry
function to get information about a bus. The SCSI bus inquiry parameter block is defined by theSCSIBusInquiryPB
data type.
struct SCSIBusInquiryPB { SCSIPBHdr UInt16 scsiEngineCount; UInt16 scsiMaxTransferType; UInt32 scsiDataTypes; UInt16 scsiIOpbSize; UInt16 scsiMaxIOpbSize; UInt32 scsiFeatureFlags; UInt8 scsiVersionNumber; UInt8 scsiHBAInquiry; UInt8 scsiTargetModeFlags; UInt8 scsiScanFlags; UInt32 scsiSIMPrivatesPtr; UInt32 scsiSIMPrivatesSize; UInt32 scsiAsyncFlags; UInt8 scsiHiBusID; UInt8 scsiInitiatorID; UInt16 scsiBIReserved0; UInt32 scsiBIReserved1; UInt32 scsiFlagsSupported; UInt16 scsiIOFlagsSupported; UInt16 scsiWeirdStuff; UInt16 scsiMaxTarget; UInt16 scsiMaxLUN; SInt8 scsiSIMVendor[16]; SInt8 scsiHBAVendor[16]; SInt8 scsiControllerFamily[16]; SInt8 scsiControllerType[16]; SInt8 scsiXPTversion[4]; SInt8 scsiSIMversion[4]; SInt8 scsiHBAversion[4]; UInt8 scsiHBAslotType; UInt8 scsiHBAslotNumber; UInt16 scsiSIMsRsrcID; UInt16 scsiBIReserved3; UInt16 scsiAdditionalLength; }; typedef struct SCSIBusInquiryPB SCSIBusInquiryPB;
Field Description
SCSIPBHdr
- A macro that includes the SCSI Manager parameter block header, described on page 4-21.
scsiEngineCount
- The number of engines on the HBA. This value is 0 for a built-in SCSI bus. See the CAM specification for information about HBA engines.
scsiMaxTransferType
- The number of data transfer types available on the HBA.
scsiDataTypes
- A bit mask describing the data types supported by the SIM/HBA. Bits 3 through 15 and bit 31 are reserved by Apple Computer, Inc. Bits 16 through 30 are available for use by SIM developers. The following bits are currently defined. These types correspond to the
scsiDataType
field of the SCSI I/O parameter block.enum { scsiBusDataBuffer = 0x00000001, scsiBusDataTIB = 0x00000002, scsiBusDataSG = 0x00000004, /* bits 3 to 15 are reserved by Apple */ /* bits 16 to 30 are available for 3rd parties */ scsiBusDataReserved = 0x80000000 };
scsiIOpbSize
- The minimum size of a SCSI I/O parameter block for this SIM.
scsiMaxIOpbSize
- The minimum size of a SCSI I/O parameter block for all currently registered SIMs. That is, the largest registered
scsiIOpbSize.
scsiFeatureFlags
- These flags describe various physical characteristics of the SCSI bus.
scsiBusInternal
The bus is at least partly internal to the computer.scsiBusExternal
The bus extends outside of the computer.scsiBusInternalExternal
The bus is both internal and external.scsiBusInternalExternalUnknown
The internal/external state of the bus is unknown.scsiBusCacheCoherentDMA
DMA is cache coherent.scsiBusOldCallCapable
The SIM supports the original SCSI Manager interface.scsiBusDifferential
The bus uses a differential SCSI interface.scsiBusFastSCSI
The bus supports SCSI-2 fast data transfers.scsiBusDMAavailable
DMA is available.scsiVersionNumber
- The version number of the SIM/HBA.
scsiHBAInquiry
- Flags describing the capabilities of the bus.
scsiBusMDP
Supports theMODIFY DATA POINTER
message.scsiBusWide32
Supports 32-bit wide transfers.scsiBusWide16
Supports 16-bit wide transfers.scsiBusSDTR
Supports synchronous transfers.scsiBusLinkedCDB
Supports linked commands.scsiBusTagQ
Supports tagged queuing.scsiBusSoftReset
Supports soft reset.scsiTargetModeFlags
- Reserved.
scsiScanFlags
- Reserved.
scsiSIMPrivatesPtr
- A pointer to the SIM's private storage.
scsiSIMPrivatesSize
- The size of the SIM's private storage, in bytes.
scsiAsyncFlags
- Reserved.
scsiHiBusID
- The highest bus number currently registered with the XPT. If no buses are registered, this field contains 0xFF (the ID of the XPT).
scsiInitiatorID
- The SCSI ID of the HBA. This value is 7 for a built-in SCSI bus.
scsiFlagsSupported
- A bit mask that defines which
scsiFlags
bits are supported.scsiIOFlagsSupported
- A bit mask that defines which
scsiIOFlags
bits are supported.scsiWeirdStuff
- Flags that identify unusual aspects of a SIM's operation.
scsiOddDisconnectUnsafeRead1
Indicates that a disconnect or other phase change on a odd byte boundary during a read operation will result in inaccurate residual counts or data loss. If your device can disconnect on odd bytes, use polled transfers instead of blind.scsiOddDisconnectUnsafeWrite1
Indicates that a disconnect or other phase change on a odd byte boundary during a write operation will result in inaccurate residual counts or data loss. If your device can disconnect on odd bytes, use polled transfers instead of blind.scsiBusErrorsUnsafe
Indicates that a delay of more than 16 microseconds or a phase change during a blind transfer on a non-handshaked boundary may cause a system crash.
If you cannot predict where delays or disconnects will occur, use polled transfers.scsiRequiresHandshake
Indicates that a delay of more than 16 microseconds or a phase change during a blind transfer on a
non-handshaked boundary may result in inaccurate residual counts or data loss. If you cannot predict where delays or disconnects will occur, use polled transfers.scsiTargetDrivenSDTRSafe
Indicates that the SIM supports target-initiated synchronous data transfer negotiation. If your device supports this feature and this bit is not set, you must set thescsiDisableSelectWAtn
flag in thescsiIOFlags
field.scsiMaxTarget
- The highest SCSI ID value supported by the HBA.
scsiMaxLUN
- The highest logical unit number supported by the HBA.
scsiSIMVendor[16]
- An ASCII text string that identifies the SIM vendor. This field returns
'Apple Computer'
for a built-in SCSI bus.scsiHBAVendor[16]
- An ASCII text string that identifies the HBA vendor. This field returns
'Apple Computer'
for a built-in SCSI bus.scsiControllerFamily[16]
- An optional ASCII text string that identifies the family of parts to which the SCSI controller chip belongs. This information is provided at the discretion of the HBA vendor.
scsiControllerType[16]
- An optional ASCII text string that identifies the specific type of SCSI controller chip. This information is provided at the discretion of the HBA vendor.
scsiXPTversion[4]
- An ASCII text string that identifies the version number of the XPT. You should use the other fields of this parameter block to check for specific features, rather than relying on this value.
scsiSIMversion[4]
- An ASCII text string that identifies the version number of the SIM. You should use the other fields of this parameter block to check for specific features, rather than relying on this value.
scsiHBAversion[4]
- An ASCII text string that identifies the version number of the HBA. You should use the other fields of this parameter block to check for specific features, rather than relying on this value.
scsiHBAslotType
- The slot type, if any, used by this HBA. You specify the type using one of the following constants:
scsiMotherboardBus
A built-in SCSI bus.scsiNuBus
A NuBus slot.scsiPDSBus
A processor-direct slot.scsiHBAslotNumber
- The slot number for the SIM. Device drivers should copy this value into the
dCtlSlot
field of the device control entry. This value is 0 for a built-in SCSI bus.scsiSIMsRsrcID
- The sResource ID for the SIM. Device drivers should copy this value into the
dCtlSlotID
field of the device control entry. This value is 0 for a built-in SCSI bus.scsiAdditionalLength
- The additional size of this parameter block, in bytes. If this structure includes extra fields to return additional information, this field contains the number of additional bytes.