typedef struct SCSIControllerInfo { UInt32 initiatorId; UInt32 maxTargetsSupported; UInt32 maxLunsSupported; UInt32 minTransferPeriodpS; UInt32 maxTransferOffset; UInt32 maxTransferWidth; UInt32 maxCommandsPerController; UInt32 maxCommandsPerTarget; UInt32 maxCommandsPerLun; UInt32 tagAllocationMethod; UInt32 maxTags; UInt32 targetPrivateDataSize; UInt32 lunPrivateDataSize; UInt32 commandPrivateDataSize; bool disableCancelCommands; UInt32 reserved[64]; } SCSIControllerInfo;
Parameter structure passed for configure() function.
Name Description initiatorId The SCSI address of your host adapter. Usually 7 (decimal). maxTargetsSupported The number of targets you controller supports. Typically 8 or 16. maxLunsSupported The number of logical units per target your controller supports. Typically 8. minTransferPeriodpS The minimum synchronous data transfer period in picoseconds your controller supports. maxTransferOffset The maximum synchronous data offset your controller supports in bytes. maxTransferWidth The maximum data SCSI bus width your controller supports in bytes. Must be a power of 2. maxCommandsPerController The maximum number of outstanding commands your controller supports across all targets and luns. Set to 0 if there is no controller limit in this category. maxCommandsPerTarget The maximum number of outstanding commands your controller supports on a given target. Set to 0 if there is no controller limit in this category. maxCommandsPerLun The maximum number of outstanding commands your controller supports on a given lun. Set to 0 if there is no controller limit in this category. tagAllocationMethod Controls whether tags are allocated on a per Lun, per Target or per Controller basis. See enum SCSITagAllocation. maxTags The maximum number of tags allocated to each Lun, Target or Controller depending on the tagAllocationMethod setting. targetPrivateDataSize IOSCSIController will optionally allocate per-target storage for your driver based on the setting of this field. The amount of storage needed is specified in bytes. lunPrivateDataSize IOSCSIController will optionally allocate per-lun storage for your driver based on the setting of this field. The amount of storage needed is specified in bytes. commandPrivateDataSize IOSCSIController will optionally allocate per-command storage for your driver based on the setting of this field. The amount of storage needed is specified in bytes.
Note: The amount of per-command storage allowed is under review. We anticipate that typical SCSI controllers will need not more than 1024 bytes per command.disableCancelCommands Subclasses of IOSCSIController which do their own management of aborts/resets can set this field to true to avoid receiving cancelCommand() requests.
© 2000 Apple Computer, Inc. (Last Updated 2/23/2000)