Important: The information in this document is obsolete and should not be used for new development.
NewOldCall
The XPT calls this function when a client calls any of the original SCSI Manager functions other thanSCSISelect
(which is handled bySCSIOldCall
). TheNewOldCall
function must conform to the following type definition:
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. <-- scsiResult OSErr The SCSIComplete
result code.--> 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 _SCSIDispatch
trap selector.<-- scsiOldCallResult OSErr The function result code. <-- scsiSCSImessage UInt8 The SCSIComplete
message byte.DESCRIPTION
After an original SCSI Manager transaction begins, theNewOldCall
function receives all subsequent original SCSI Manager function requests until the transaction is completed. The XPT converts all original SCSI Manager function requests (exceptSCSIGet
andSCSIStat
) into SCSI Manager 4.3 parameter block requests and sends them to the appropriate SIM.A SIM uses the
scsiSelector
field of the parameter block to determine which function to perform and should return the current bus phase and message byte in the appropriate fields after each request.The XPT converts a
SCSIReset
request into aSCSIResetBus
request and sends it to all SIMs that support original SCSI Manager emulation. The XPT handlesSCSIStat
requests itself, using the information returned in thescsiCurrentPhase
field.RESULT CODES
Result codes from all emulated functions exceptSCSIComplete
are returned in thescsiOldCallResult
field. TheSCSIComplete
result is returned inscsiResult
. This indicates to the XPT that the transaction is complete and that the SIM is ready to start a new original SCSI Manager transaction. See the chapter "SCSI Manager" in this book for a list of original SCSI Manager result codes.