Previous Book Contents Book Index Next

Inside Macintosh: Devices /
Chapter 4 - SCSI Manager 4.3 / SCSI Manager 4.3 Reference
SCSI Manager 4.3 Functions / Client Functions


You use the SCSIResetBus function to reset a SCSI bus.

OSErr SCSIAction(SCSI_PB *scsiPB);
A pointer to a SCSI Manager parameter block.
-->scsiPBLengthUInt16The size of the parameter block.
-->scsiFunctionCodeUInt8The SCSIResetBus function selector code (0x11).
<--scsiResultOSErrThe returned result code.
-->scsiDeviceDeviceIdentThe device identification record. Only the bus number is required.
-->scsiCompletionCallbackProcA pointer to a completion routine. If set to nil, the function is executed synchronously.
-->scsiDriverStorageUInt8 *Optional pointer to the device driver's private storage.

The SCSIResetBus function directs the HBA to assert the SCSI bus reset signal, causing all devices on the bus to clear pending I/O and forcing the bus into the bus free phase. In addition, the SIM calls the completion routines for all requests that were already delivered to devices. The appropriate LUN queue is frozen for each of the requests that were reset, unless the scsiSIMQNoFreeze flag is set.

The SCSIResetBus function interrupts SCSI communications and can cause data loss. You should use this function only to restore operation in the event that a device refuses to release the bus. You can use the SCSIResetDevice function to reset a single device when the SCSI bus is operational and the device is still responding to selection.

noErr0No error
scsiBusInvalid-7869The bus ID is invalid
scsiRequestInvalid-7870The parameter block request is invalid
scsiPBLengthError-7872The parameter block is too small for this SIM
scsiQLinkInvalid-7881The qLink field was not 0

Previous Book Contents Book Index Next

© Apple Computer, Inc.
3 JUL 1996