Important: The information in this document is obsolete and should not be used for new development.
SCSIOldCall
The XPT calls this function when a client calls the original SCSI Manager functionSCSISelect
.
typedef void (*SIMActionProc) (void * scsiPB, Ptr SIMGlobals);
- scsiPB
- A pointer to a SCSI I/O parameter block, which is described on page 4-23.
SIMGlobals
- A pointer to the SIM's static data storage.
--> scsiPBLength UInt16 The size of the parameter block. --> scsiFunctionCode UInt8 The SCSIOldCall
function selector code (0x84).--> scsiDevice DeviceIdent The device identification record. --> scsiCompletion CallbackProc A pointer to a completion routine.
If this field is set tonil
, the function is executed synchronously.--> scsiDriverStorage UInt8 * Optional pointer to the device driver's private storage. <-- scsiCurrentPhase UInt16 The current SCSI bus phase. --> scsiSelector SInt16 The SCSISelect
trap selector (0x02).<-- scsiOldCallResult OSErr The result code from SCSISelect
.DESCRIPTION
This function indicates the beginning of an original SCSI Manager transaction. A SIM that supports original SCSI Manager emulation should attempt to select the device described in thescsiDevice
field. Because the entire SCSI transaction is not completed by a call toSCSIOldCall
, the result code for this function is returned in thescsiOldCallResult
field rather than thescsiResult
field, as with other functions. Subsequent original SCSI Manager function calls for this transaction are made through theNewOldCall
function.If the SIM successfully selects the device, it should queue the parameter block like any other SCSI I/O parameter block. The parameter block should not be removed until the
NewOldCall
function completes aSCSIComplete
command.To provide full compatibility with the original SCSI Manager, a SIM must be able to perform a SCSI arbitration and select process independent of a SCSI message-out or command phase. If the SIM requires the CDB or message-out bytes it will not be able to perform the select operation at the time of the
SCSIOldCall
request. The SIM should returnnoErr
in thescsiOldCallResult
field and wait for a subsequent I/O request before actually selecting the device.RESULT CODES
TheSCSIOldCall
function returns an appropriateSCSISelect
result code in thescsiOldCallResult
field of the parameter block.