Legacy Documentclose button

Important: The information in this document is obsolete and should not be used for new development.

Previous Book Contents Book Index Next

Inside Macintosh: Devices /
Chapter 4 - SCSI Manager 4.3 / SCSI Manager 4.3 Reference
Data Structures


SIM Initialization Record

You use the SIM initialization record to provide information about your SIM when you register it with the XPT using the SCSIRegisterBus function. The SIM initialization record is defined by the SIMInitInfo data type.

struct SIMInitInfo {
   UInt8             *SIMstaticPtr;
   SInt32            staticSize;
   SIMInitProc       SIMInit;
   SIMActionProc     SIMAction;
   SCSIProc          SIM_ISR;
   InterruptPollProc SIMInterruptPoll;
   SIMActionProc     NewOldCall;
   UInt16            ioPBSize;
   Boolean           oldCallCapable;
   UInt8             simInfoUnused1;
   SInt32            simInternalUse;
   SCSIProc          XPT_ISR;
   SCSIProc          EnteringSIM;
   SCSIProc          ExitingSIM;
   MakeCallbackProc  MakeCallback;
   UInt16            busID;
   UInt16            simInfoUnused3;
   SInt32            simInfoUnused4;
};
typedef struct SIMInitInfo SIMInitInfo; 
Field Description
SIMstaticPtr
A pointer to the storage allocated by the XPT for the SIM's static variables.
staticSize
The amount of memory requested by the SIM for storing its static variables.
SIMInit
A pointer to the SIM's initialization function. See the description of the SIMInit function on page 4-60 for more information.
SIMAction
A pointer to the SIM function that handles SCSIAction requests. See the description of the SIMAction function on page 4-61 for more information.
SIM_ISR
Reserved.
SIMInterruptPoll
A pointer to the SIM's interrupt polling function. The Device Manager periodically calls this routine while waiting for a synchronous request to complete if the processor's interrupt priority level is not 0. This allows the Virtual Memory Manager to initiate SCSI transactions when interrupts are disabled. See the description of the SIMInterruptPoll function on page 4-61 for more information.
NewOldCall
If the oldCallCapable field is set to true, this field contains a pointer to the SIM function that handles original SCSI Manager requests. See the description of the NewOldCall function beginning on page 4-63 for more information.
ioPBSize
The minimum size that a SCSI I/O parameter block must be for use with this SIM.
oldCallCapable
A Boolean value that indicates whether the SIM emulates original SCSI Manager functions.
simInfoUnused1
Reserved.
simInternalUse
A long word available for use by the SIM. This field is not affected or used by the SCSI Manager.
XPT_ISR
Reserved.
EnteringSIM
A pointer to the XPT EnteringSIM function. This function provides support for virtual memory. Your SIM must call this function prior to executing any other SIM code. See the description of the EnteringSIM function on page 4-58 for more information.
ExitingSIM
A pointer to the XPT ExitingSIM function. Your SIM must call this function before passing control to any code that could cause a page fault, including completion routines. See the description of the ExitingSIM function on page 4-59 for more information.
MakeCallback
A pointer to the XPT MakeCallback function. Your SIM must call this function after completing a transaction. The XPT then calls the completion routine specified in the scsiCompletion field of the parameter block header. See the description of the MakeCallback function on page 4-59 for more information.
busID
The bus number assigned by the XPT to this SIM/HBA.

Previous Book Contents Book Index Next

© Apple Computer, Inc.
3 JUL 1996