Legacy Documentclose button

Important: The information in this document is obsolete and should not be used for new development.

Previous Book Contents Book Index Next

Inside Macintosh: Devices /
Chapter 4 - SCSI Manager 4.3 / SCSI Manager 4.3 Reference
Data Structures


SCSI Bus Inquiry Parameter Block

You use the SCSI bus inquiry parameter block with the SCSIBusInquiry function to get information about a bus. The SCSI bus inquiry parameter block is defined by the SCSIBusInquiryPB 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 the MODIFY 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 the scsiDisableSelectWAtn flag in the scsiIOFlags 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.

Previous Book Contents Book Index Next

© Apple Computer, Inc.
3 JUL 1996