IOSCSIController_Reference.h



Typedefs

SCSIControllerInfo

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.

Fields

NameDescription
initiatorIdThe SCSI address of your host adapter. Usually 7 (decimal).
maxTargetsSupportedThe number of targets you controller supports. Typically 8 or 16.
maxLunsSupportedThe number of logical units per target your controller supports. Typically 8.
minTransferPeriodpSThe minimum synchronous data transfer period in picoseconds your controller supports.
maxTransferOffsetThe maximum synchronous data offset your controller supports in bytes.
maxTransferWidthThe maximum data SCSI bus width your controller supports in bytes. Must be a power of 2.
maxCommandsPerControllerThe 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.
maxCommandsPerTargetThe maximum number of outstanding commands your controller supports on a given target. Set to 0 if there is no controller limit in this category.
maxCommandsPerLunThe maximum number of outstanding commands your controller supports on a given lun. Set to 0 if there is no controller limit in this category.
tagAllocationMethodControls whether tags are allocated on a per Lun, per Target or per Controller basis. See enum SCSITagAllocation.
maxTagsThe maximum number of tags allocated to each Lun, Target or Controller depending on the tagAllocationMethod setting.
targetPrivateDataSizeIOSCSIController 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.
lunPrivateDataSizeIOSCSIController 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.
commandPrivateDataSizeIOSCSIController 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.
disableCancelCommandsSubclasses 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)