ADC Home > Reference Library > Technical Q&As > Legacy Documents > Hardware & Drivers >

Legacy Documentclose button

Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.

Current information on this Reference Library topic can be found here:

Synchronous SCSI Operation

Q: Does the Macintosh provide support for synchronous SCSI operation?

A: The term "Synchronous SCSI" is often confused with invoking the SCSI Manager synchronously. "Invoking the SCSI Manager asynchronously" is a reference to how the SCSI manager and MacOS interact. If you set the scsiCompletion field of the SCSI Manager Parameter Block to nil, the SCSI Manager is invoked synchronously (see Inside Macintosh: Devices, page 4-38). "Synchronous SCSI" refers to a certain characteristic of the SCSI protocol.

The framers of the SCSI specification intended that synchronous mode be used to improve performance over long cables. In synchronous mode, the sending device is permitted to send the next byte without receiving acknowledgment that the receiving device actually received the last byte. The acknowledgment has to come back at some point, but the sender doesn't have to wait for it. This mode is commonly used for highly buffered disk controllers.

Before deciding whether to use synchronous SCSI, there are a few things you should know:

  1. Synchronous SCSI transfers are not supported with the old SCSI manager.
  2. You can determine if synchronous SCSI is supported by calling SCSIBusInquiry and checking the scsiHBAInquiry field for the scsiBusSDTR bit (see Inside Macintosh:Devices, page 4-31).
  3. If the scsiFlags field of the SCSI Manager Parameter Block Header does not have the scsiInitiateSyncData bit set, synchronous SCSI is probably not supported on the machine in question, especially if scsiProvideFail is returned.

[Jul 01 1995]

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.