Important: The SCSI Manager is deprecated in Mac OS X v10.2 and later. You should use I/O Kit to support SCSI devices instead. For more information, see SCSI Architecture Model Device Interface Guide.
| Framework | CoreServices/CoreServices.h |
| Declared in | SCSI.h |
Carbon supports only the SCSIAction function in the SCSI Manager, although this function is no longer recommended. For Mac OS X, the I/O Kit should be used to support more complex SCSI devices.
Important: The SCSI Manager is deprecated in Mac OS X v10.2 and later. You should use I/O Kit to support SCSI devices instead. For more information, see SCSI Architecture Model Device Interface Guide.
Defines a pointer to a completion routine.
typedef void (*SCSICallbackProcPtr) ( void * scsiPB );
If you name your function MySCSICallbackProc,
you would declare it like this:
void MySCSICallbackProc ( void * scsiPB );
SCSI.hYou use the command descriptor block record to pass SCSI
commands to the SCSIAction function.
union CDB {
BytePtr cdbPtr;
UInt8 cdbBytes[16];
};
typedef union CDB CDB;
typedef CDB * CDBPtr;
cdbPtrA pointer to a buffer containing a CDB.
cdbBytesA buffer in which you can place a CDB.
The SCSI commands can be stored within this structure, or
you can provide a pointer to them. You set the scsiCDBIsPointer flag
in the SCSI parameter block if this record contains a pointer.
SCSI.h
You use the device identification record to specify a target device by its bus, SCSI ID, and logical unit number (LUN).
struct DeviceIdent {
UInt8 diReserved;
UInt8 bus;
UInt8 targetID;
UInt8 LUN;
};
typedef struct DeviceIdent DeviceIdent;
diReservedReserved.
busThe bus number of the SIM/HBA for the target device.
targetIDThe SCSI ID number of the target device.
LUNThe target LUN, or 0 if the device does not support logical units.
SCSI.h
struct DeviceIdentATA {
UInt8 diReserved;
UInt8 busNum;
UInt8 devNum;
UInt8 diReserved2;
};
typedef struct DeviceIdentATA DeviceIdentATA;
SCSI.h
You use the SCSI Manager parameter block to pass information
to the SCSIAction function.
struct SCSI_PB {
SCSIHdr * qLink;
short scsiReserved1;
UInt16 scsiPBLength;
UInt8 scsiFunctionCode;
UInt8 scsiReserved2;
volatile OSErr scsiResult;
DeviceIdent scsiDevice;
SCSICallbackUPP scsiCompletion;
UInt32 scsiFlags;
BytePtr scsiDriverStorage;
Ptr scsiXPTprivate;
long scsiReserved3;
};
typedef struct SCSI_PB SCSI_PB;
qLinkA pointer to the next entry in the request queue. This field is used internally by the SCSI Manager and must be set to 0 when the parameter block is initialized. The SCSI Manager functions always set this field to 0 before returning, so you do not need to set it to 0 again before reusing a parameter block.
scsiReserved1Reserved.
scsiPBLengthThe size of the parameter block, in bytes, including the parameter block header.
scsiFunctionCodeA function selector code that specifies the service being requested.
scsiReserved2Reserved.
scsiResultThe result code returned by the XPT or SIM when
the function completes. The value scsiRequestInProgress indicates
that the request is still in progress or queued.
scsiDeviceA 4-byte value that uniquely identifies the target
device for a request. The DeviceIdent data
type designates the bus number, target SCSI ID, and logical unit
number (LUN).
scsiCompletionA pointer to a completion routine.
scsiFlagsFlags indicating the transfer direction and any special handling required for this request.
scsiDriverStorageA pointer to the device driver's private storage. This field is not affected or used by the SCSI Manager.
scsiXPTprivatePrivate field for use in XPT.
scsiReserved3Reserved.
SCSI.h
Defines a universal procedure pointer (UPP) to a completion routine.
typedef SCSICallbackProcPtr SCSICallbackUPP;
SCSI.h
Defines the SCSI I/O parameter block.
struct SCSI_IO {
SCSIHdr * qLink;
short scsiReserved1;
UInt16 scsiPBLength;
UInt8 scsiFunctionCode;
UInt8 scsiReserved2;
volatile OSErr scsiResult;
DeviceIdent scsiDevice;
SCSICallbackUPP scsiCompletion;
UInt32 scsiFlags;
BytePtr scsiDriverStorage;
Ptr scsiXPTprivate;
long scsiReserved3;
UInt16 scsiResultFlags;
UInt16 scsiReserved3pt5;
BytePtr scsiDataPtr;
UInt32 scsiDataLength;
BytePtr scsiSensePtr;
UInt8 scsiSenseLength;
UInt8 scsiCDBLength;
UInt16 scsiSGListCount;
UInt32 scsiReserved4;
UInt8 scsiSCSIstatus;
SInt8 scsiSenseResidual;
UInt16 scsiReserved5;
long scsiDataResidual;
CDB scsiCDB;
long scsiTimeout;
BytePtr scsiReserved5pt5;
UInt16 scsiReserved5pt6;
UInt16 scsiIOFlags;
UInt8 scsiTagAction;
UInt8 scsiReserved6;
UInt16 scsiReserved7;
UInt16 scsiSelectTimeout;
UInt8 scsiDataType;
UInt8 scsiTransferType;
UInt32 scsiReserved8;
UInt32 scsiReserved9;
UInt16 scsiHandshake[8];
UInt32 scsiReserved10;
UInt32 scsiReserved11;
SCSI_IO * scsiCommandLink;
UInt8 scsiSIMpublics[8];
UInt8 scsiAppleReserved6[8];
UInt16 scsiCurrentPhase;
short scsiSelector;
OSErr scsiOldCallResult;
UInt8 scsiSCSImessage;
UInt8 XPTprivateFlags;
UInt8 XPTextras[12];
};
typedef struct SCSI_IO SCSI_IO;
typedef SCSI_IO SCSIExecIOPB;
qLinkA pointer to the next entry in the request queue. This field is used internally by the SCSI Manager and must be set to 0 when the parameter block is initialized. The SCSI Manager functions always set this field to 0 before returning, so you do not need to set it to 0 again before reusing a parameter block.
scsiReserved1Reserved.
scsiPBLengthThe size of the parameter block, in bytes, including the parameter block header.
scsiFunctionCodeA function selector code that specifies the service being requested.
scsiReserved2Reserved.
scsiResultThe result code returned by the XPT or SIM when
the function completes. The value scsiRequestInProgress indicates
that the request is still in progress or queued.
scsiDeviceA 4-byte value that uniquely identifies the target
device for a request. The DeviceIdent data
type designates the bus number, target SCSI ID, and logical unit
number (LUN).
scsiCompletionA pointer to a completion routine.
scsiFlagsFlags indicating the transfer direction and any special handling required for this request.
scsiDriverStorageA pointer to the device driver's private storage. This field is not affected or used by the SCSI Manager.
scsiXPTprivatePrivate field for use in XPT.
scsiReserved3Reserved.
scsiResultFlagsOutput flags that modify the scsiResult field.
scsiReserved3pt5Reserved.
scsiDataPtrA pointer to a data buffer or scatter/gather list.
You specify the data type using the scsiDataType field.
scsiDataLengthThe amount of data to be transferred, in bytes.
scsiSensePtrA pointer to the autosense data buffer. If autosense
is enabled (the scsiDisableAutosense flag
is not set), the SCSI Manager returns REQUEST SENSE information
in this buffer.
scsiSenseLengthThe size of the autosense data buffer, in bytes.
scsiCDBLengthThe length of the SCSI command descriptor block, in bytes.
scsiSGListCountThe number of elements in the scatter/gather list.
scsiReserved4Reserved.
scsiSCSIstatusThe status returned by the SCSI device.
scsiSenseResidualThe automatic REQUEST SENSE residual
length (that is, the number of bytes that were expected but not
transferred). This number is negative if extra bytes had to be transferred
to force the target off of the bus.
scsiReserved5Reserved for output.
scsiDataResidualThe data transfer residual length (that is, the number of bytes that were expected but not transferred). This number is negative if extra bytes had to be transferred to force the target off the bus.
scsiCDBThis field can contain either the actual CDB or
a pointer to the CDB. You set the scsiCDBIsPointer flag
if this field contains a pointer.
scsiTimeoutThe length of time the SIM should allow before
reporting a timeout of the SCSI bus. The time value is represented
in Time Manager format (positive values for milliseconds, negative
values for microseconds). The timer is started when the I/O request
is sent to the target. If the request does not complete within the
specified time, the SIM attempts to issue an ABORT message,
either by reselecting the device or by asserting the attention (/ATN)
signal. A value of 0 specifies the default timeout for the SIM.
The default timeout for the SCSI Manager 4.3 SIM is infinite (that
is, no timeout).
scsiReserved5pt5Reserved.
scsiReserved5pt6Reserved.
scsiIOFlagsAdditional I/O flags describing the data transfer.
scsiTagActionReserved.
scsiReserved6Reserved for input.
scsiReserved7Reserved for input.
scsiSelectTimeoutAn optional SELECT timeout value, in milliseconds. The default is 250 ms, as specified by SCSI-2. The accuracy of this period is dependent on the HBA.A value of 0 specifies the default timeout. Some SIMs ignore this parameter and always use a value of 250 ms.
scsiDataTypeThe data type pointed to by the scsiDataPtr field.
scsiTransferTypeThe type of transfer mode to use during the data phase.
scsiReserved8Reserved for input.
scsiReserved9Reserved for input.
scsiHandshakeHandshaking instructions for blind transfers,
consisting of an array of word values, terminated by 0. The SIM
polls for data ready after transferring the amount of data specified
in each successive scsiHandshake entry.
When it encounters a 0 value, the SIM starts over at the beginning
of the list. Handshaking always starts from the beginning of the
list every time a device transitions to data phase.
scsiReserved10Reserved for input.
scsiReserved11Reserved for input.
scsiCommandLinkA pointer to a linked parameter block. This field
provides support for SCSI linked commands. This optional feature
ensures that a set of commands sent to a device are executed in
sequential order without interference from other applications. You
create a list of commands using this pointer to link additional
parameter blocks. Each parameter block except the last should have
the scsiCDBLinked flag
set in the scsiFlags field.
A CHECK CONDITION status
from the device will abort linked command execution. Linked commands
may not be supported by all SIMs.
scsiSIMpublicsAn additional input field available for use by SIM developers.
scsiCurrentPhaseThe current SCSI bus phase reported by the SIM after handling an original SCSI Manager function. This field is used only by the XPT and SIM during original SCSI Manager emulation.
scsiSelectorThe function selector code that was passed to
the _SCSIDispatch trap
during original SCSI Manager emulation. The SIM uses this field
to determine which original SCSI Manager function to perform.
scsiOldCallResultThe result code from an emulated original SCSI
Manager function. The SIM returns results to all original SCSI Manager
functions in this field, except for the SCSIComplete result,
which it returns in scsiResult .
scsiSCSImessageThe message byte returned by an emulated SCSIComplete function.
This field is only used by the XPT and SIM during original SCSI
Manager emulation.
XPTprivateFlagsReserved.
XPTextrasReserved.
SCSI.h
Defines a SCSI bus inquiry parameter block.
struct SCSIBusInquiryPB {
SCSIHdr * qLink;
short scsiReserved1;
UInt16 scsiPBLength;
UInt8 scsiFunctionCode;
UInt8 scsiReserved2;
volatile OSErr scsiResult;
DeviceIdent scsiDevice;
SCSICallbackUPP scsiCompletion;
UInt32 scsiFlags;
BytePtr scsiDriverStorage;
Ptr scsiXPTprivate;
long scsiReserved3;
UInt16 scsiEngineCount;
UInt16 scsiMaxTransferType;
UInt32 scsiDataTypes;
UInt16 scsiIOpbSize;
UInt16 scsiMaxIOpbSize;
UInt32 scsiFeatureFlags;
UInt8 scsiVersionNumber;
UInt8 scsiHBAInquiry;
UInt8 scsiTargetModeFlags;
UInt8 scsiScanFlags;
UInt32 scsiSIMPrivatesPtr;
UInt32 scsiSIMPrivatesSize;
UInt32 scsiAsyncFlags;
UInt8 scsiHiBusID;
UInt8 scsiInitiatorID;
UInt16 scsiBIReserved0;
UInt32 scsiBIReserved1;
UInt32 scsiFlagsSupported;
UInt16 scsiIOFlagsSupported;
UInt16 scsiWeirdStuff;
UInt16 scsiMaxTarget;
UInt16 scsiMaxLUN;
char scsiSIMVendor[16];
char scsiHBAVendor[16];
char scsiControllerFamily[16];
char scsiControllerType[16];
char scsiXPTversion[4];
char scsiSIMversion[4];
char scsiHBAversion[4];
UInt8 scsiHBAslotType;
UInt8 scsiHBAslotNumber;
UInt16 scsiSIMsRsrcID;
UInt16 scsiBIReserved3;
UInt16 scsiAdditionalLength;
};
typedef struct SCSIBusInquiryPB SCSIBusInquiryPB;
qLinkA pointer to the next entry in the request queue. This field is used internally by the SCSI Manager and must be set to 0 when the parameter block is initialized. The SCSI Manager functions always set this field to 0 before returning, so you do not need to set it to 0 again before reusing a parameter block.
scsiReserved1Reserved.
scsiPBLengthThe size of the parameter block, in bytes, including the parameter block header.
scsiFunctionCodeA function selector code that specifies the service being requested.
scsiReserved2Reserved.
scsiResultThe result code returned by the XPT or SIM when
the function completes. The value scsiRequestInProgress indicates
that the request is still in progress or queued.
scsiDeviceA 4-byte value that uniquely identifies the target
device for a request. The DeviceIdent data
type designates the bus number, target SCSI ID, and logical unit
number (LUN).
scsiCompletionA pointer to a completion routine.
scsiFlagsFlags indicating the transfer direction and any special handling required for this request.
scsiDriverStorageA pointer to the device driver's private storage. This field is not affected or used by the SCSI Manager.
scsiXPTprivatePrivate field for use in XPT.
scsiReserved3Reserved.
scsiEngineCountThe number of engines on the HBA. This value is 0 for a built-in SCSI bus.
scsiMaxTransferTypeThe number of data transfer types available on the HBA.
scsiDataTypesA bit mask describing the data types supported by the SIM/HBA. Bits 3 through 15 and bit 31 are reserved by Apple Computer, Inc. Bits 16 through 30 are available for use by SIM developers.
scsiIOpbSizeThe minimum size of a SCSI I/O parameter block for this SIM.
scsiMaxIOpbSizeThe minimum size of a SCSI I/O parameter block
for all currently registered SIMs. That is, the largest registered scsiIOpbSize.
scsiFeatureFlagsThese flags describe various physical characteristics of the SCSI bus.
scsiVersionNumberThe version number of the SIM/HBA.
scsiHBAInquiryFlags describing the capabilities of the bus.
scsiTargetModeFlagsReserved.
scsiScanFlagsReserved.
scsiSIMPrivatesPtrA pointer to the SIM's private storage.
scsiSIMPrivatesSizeThe size of the SIM's private storage, in bytes.
scsiAsyncFlagsReserved.
scsiHiBusIDThe highest bus number currently registered with the XPT. If no buses are registered, this field contains 0xFF (the ID of the XPT).
scsiInitiatorIDThe SCSI ID of the HBA. This value is 7 for a built-in SCSI bus.
scsiBIReserved0scsiBIReserved1scsiFlagsSupportedA bit mask that defines which scsiFlags bits
are supported.
scsiIOFlagsSupportedA bit mask that defines which scsiIOFlags bits
are supported.
scsiWeirdStuffFlags that identify unusual aspects of a SIM's operation.
scsiMaxTargetThe highest SCSI ID value supported by the HBA.
scsiMaxLUNThe highest logical unit number supported by the HBA.
scsiSIMVendorAn ASCII text string that identifies the SIM vendor.
This field returns 'Apple Computer' for
a built-in SCSI bus.
scsiHBAVendorAn ASCII text string that identifies the HBA vendor.
This field returns 'Apple Computer' for
a built-in SCSI bus.
scsiControllerFamilyAn optional ASCII text string that identifies the family of parts to which the SCSI controller chip belongs. This information is provided at the discretion of the HBA vendor.
scsiControllerTypeAn optional ASCII text string that identifies the specific type of SCSI controller chip. This information is provided at the discretion of the HBA vendor.
scsiXPTversionAn ASCII text string that identifies the version number of the XPT. You should use the other fields of this parameter block to check for specific features, rather than relying on this value.
scsiSIMversionAn ASCII text string that identifies the version number of the SIM. You should use the other fields of this parameter block to check for specific features, rather than relying on this value.
scsiHBAversionAn ASCII text string that identifies the version number of the HBA. You should use the other fields of this parameter block to check for specific features, rather than relying on this value.
scsiHBAslotTypeThe slot type, if any, used by this HBA.
scsiHBAslotNumberThe slot number for the SIM. Device drivers should
copy this value into the dCtlSlot field
of the device control entry. This value is 0 for a built-in SCSI bus.
scsiSIMsRsrcIDThe ID for the SIM. Device drivers should copy
this value into the dCtlSlotID field
of the device control entry. This value is 0 for a built-in SCSI bus.
scsiAdditionalLengthThe additional size of this parameter block, in bytes. If this structure includes extra fields to return additional information, this field contains the number of additional bytes.
SCSI.h
Defines a SCSI abort command parameter block.
struct SCSIAbortCommandPB {
SCSIHdr * qLink;
short scsiReserved1;
UInt16 scsiPBLength;
UInt8 scsiFunctionCode;
UInt8 scsiReserved2;
volatile OSErr scsiResult;
DeviceIdent scsiDevice;
SCSICallbackUPP scsiCompletion;
UInt32 scsiFlags;
BytePtr scsiDriverStorage;
Ptr scsiXPTprivate;
long scsiReserved3;
SCSI_IO * scsiIOptr;
};
typedef struct SCSIAbortCommandPB SCSIAbortCommandPB;
qLinkA pointer to the next entry in the request queue. This field is used internally by the SCSI Manager and must be set to 0 when the parameter block is initialized. The SCSI Manager functions always set this field to 0 before returning, so you do not need to set it to 0 again before reusing a parameter block.
scsiReserved1Reserved.
scsiPBLengthThe size of the parameter block, in bytes, including the parameter block header.
scsiFunctionCodeA function selector code that specifies the service being requested.
scsiReserved2Reserved.
scsiResultThe result code returned by the XPT or SIM when
the function completes. The value scsiRequestInProgress indicates
that the request is still in progress or queued.
scsiDeviceA 4-byte value that uniquely identifies the target
device for a request. The DeviceIdent data
type designates the bus number, target SCSI ID, and logical unit
number (LUN).
scsiCompletionA pointer to a completion routine.
scsiFlagsFlags indicating the transfer direction and any special handling required for this request.
scsiDriverStorageA pointer to the device driver's private storage. This field is not affected or used by the SCSI Manager.
scsiXPTprivatePrivate field for use in XPT.
scsiReserved3Reserved.
scsiIOptrA pointer to the parameter block to be canceled.
SCSI.h
Defines a SCSI terminate I/O parameter block.
struct SCSITerminateIOPB {
SCSIHdr * qLink;
short scsiReserved1;
UInt16 scsiPBLength;
UInt8 scsiFunctionCode;
UInt8 scsiReserved2;
volatile OSErr scsiResult;
DeviceIdent scsiDevice;
SCSICallbackUPP scsiCompletion;
UInt32 scsiFlags;
BytePtr scsiDriverStorage;
Ptr scsiXPTprivate;
long scsiReserved3;
SCSI_IO * scsiIOptr;
};
typedef struct SCSITerminateIOPB SCSITerminateIOPB;
qLinkA pointer to the next entry in the request queue. This field is used internally by the SCSI Manager and must be set to 0 when the parameter block is initialized. The SCSI Manager functions always set this field to 0 before returning, so you do not need to set it to 0 again before reusing a parameter block.
scsiReserved1Reserved.
scsiPBLengthThe size of the parameter block, in bytes, including the parameter block header.
scsiFunctionCodeA function selector code that specifies the service being requested.
scsiReserved2Reserved.
scsiResultThe result code returned by the XPT or SIM when
the function completes. The value scsiRequestInProgress indicates
that the request is still in progress or queued.
scsiDeviceA 4-byte value that uniquely identifies the target
device for a request. The DeviceIdent data
type designates the bus number, target SCSI ID, and logical unit
number (LUN).
scsiCompletionA pointer to a completion routine.
scsiFlagsFlags indicating the transfer direction and any special handling required for this request.
scsiDriverStorageA pointer to the device driver's private storage. This field is not affected or used by the SCSI Manager.
scsiXPTprivatePrivate field for use in XPT.
scsiReserved3Reserved.
scsiIOptrA pointer to the parameter block to be canceled.
SCSI.h
Defines a SCSI virtual ID information parameter block.
struct SCSIGetVirtualIDInfoPB {
SCSIHdr * qLink;
short scsiReserved1;
UInt16 scsiPBLength;
UInt8 scsiFunctionCode;
UInt8 scsiReserved2;
volatile OSErr scsiResult;
DeviceIdent scsiDevice;
SCSICallbackUPP scsiCompletion;
UInt32 scsiFlags;
Ptr scsiDriverStorage;
Ptr scsiXPTprivate;
long scsiReserved3;
UInt16 scsiOldCallID;
Boolean scsiExists;
SInt8 filler;
};
typedef struct SCSIGetVirtualIDInfoPB SCSIGetVirtualIDInfoPB;
qLinkA pointer to the next entry in the request queue. This field is used internally by the SCSI Manager and must be set to 0 when the parameter block is initialized. The SCSI Manager functions always set this field to 0 before returning, so you do not need to set it to 0 again before reusing a parameter block.
scsiReserved1Reserved.
scsiPBLengthThe size of the parameter block, in bytes, including the parameter block header.
scsiFunctionCodeA function selector code that specifies the service being requested.
scsiReserved2Reserved.
scsiResultThe result code returned by the XPT or SIM when
the function completes. The value scsiRequestInProgress indicates
that the request is still in progress or queued.
scsiDeviceA 4-byte value that uniquely identifies the target
device for a request. The DeviceIdent data
type designates the bus number, target SCSI ID, and logical unit
number (LUN).
scsiCompletionA pointer to a completion routine.
scsiFlagsFlags indicating the transfer direction and any special handling required for this request.
scsiDriverStorageA pointer to the device driver's private storage. This field is not affected or used by the SCSI Manager.
scsiXPTprivatePrivate field for use in XPT.
scsiReserved3Reserved.
scsiOldCallIDThe virtual SCSI ID of the device you are searching for.
scsiExistsThe XPT returns true in this field if the scsiDevice field
contains a valid device identification record.
SCSI.h
Defines a SCSI load driver parameter block.
struct SCSILoadDriverPB {
SCSIHdr * qLink;
short scsiReserved1;
UInt16 scsiPBLength;
UInt8 scsiFunctionCode;
UInt8 scsiReserved2;
volatile OSErr scsiResult;
DeviceIdent scsiDevice;
SCSICallbackUPP scsiCompletion;
UInt32 scsiFlags;
Ptr scsiDriverStorage;
Ptr scsiXPTprivate;
long scsiReserved3;
short scsiLoadedRefNum;
Boolean scsiDiskLoadFailed;
SInt8 filler;
};
typedef struct SCSILoadDriverPB SCSILoadDriverPB;
qLinkA pointer to the next entry in the request queue. This field is used internally by the SCSI Manager and must be set to 0 when the parameter block is initialized. The SCSI Manager functions always set this field to 0 before returning, so you do not need to set it to 0 again before reusing a parameter block.
scsiReserved1Reserved.
scsiPBLengthThe size of the parameter block, in bytes, including the parameter block header.
scsiFunctionCodeA function selector code that specifies the service being requested.
scsiReserved2Reserved.
scsiResultThe result code returned by the XPT or SIM when
the function completes. The value scsiRequestInProgress indicates
that the request is still in progress or queued.
scsiDeviceA 4-byte value that uniquely identifies the target
device for a request. The DeviceIdent data
type designates the bus number, target SCSI ID, and logical unit
number (LUN).
scsiCompletionA pointer to a completion routine.
scsiFlagsFlags indicating the transfer direction and any special handling required for this request.
scsiDriverStorageA pointer to the device driver's private storage. This field is not affected or used by the SCSI Manager.
scsiXPTprivatePrivate field for use in XPT.
scsiReserved3Reserved.
scsiLoadedRefNumIf the driver is successfully loaded, this field contains the driver reference number returned by the SIM.
scsiDiskLoadFailedIf this field is set to true, the SIM should attempt to load its own driver regardless of whether there is one on the device. If this field is set to false, the SIM has the option of loading a driver from the device or using one of its own.
SCSI.h
Defines a SCSI driver identification parameter block.
struct SCSIDriverPB {
SCSIHdr * qLink;
short scsiReserved1;
UInt16 scsiPBLength;
UInt8 scsiFunctionCode;
UInt8 scsiReserved2;
volatile OSErr scsiResult;
DeviceIdent scsiDevice;
SCSICallbackUPP scsiCompletion;
UInt32 scsiFlags;
Ptr scsiDriverStorage;
Ptr scsiXPTprivate;
long scsiReserved3;
short scsiDriver;
UInt16 scsiDriverFlags;
DeviceIdent scsiNextDevice;
};
typedef struct SCSIDriverPB SCSIDriverPB;
qLinkA pointer to the next entry in the request queue. This field is used internally by the SCSI Manager and must be set to 0 when the parameter block is initialized. The SCSI Manager functions always set this field to 0 before returning, so you do not need to set it to 0 again before reusing a parameter block.
scsiReserved1Reserved.
scsiPBLengthThe size of the parameter block, in bytes, including the parameter block header.
scsiFunctionCodeA function selector code that specifies the service being requested.
scsiReserved2Reserved.
scsiResultThe result code returned by the XPT or SIM when
the function completes. The value scsiRequestInProgress indicates
that the request is still in progress or queued.
scsiDeviceA 4-byte value that uniquely identifies the target
device for a request. The DeviceIdent data
type designates the bus number, target SCSI ID, and logical unit
number (LUN).
scsiCompletionA pointer to a completion routine.
scsiFlagsFlags indicating the transfer direction and any special handling required for this request.
scsiDriverStorageA pointer to the device driver's private storage. This field is not affected or used by the SCSI Manager.
scsiXPTprivatescsiReserved3Reserved.
scsiDriverThe driver reference number of the device driver associated with this device identification record.
scsiDriverFlagsDriver information flags. These flags are not interpreted by the XPT but can be used to provide information about the driver to other clients.
scsiNextDeviceThe device identification record of the next device in the driver registration list.
SCSI.hUsed in the scsiFlags field of the SCSI_PB structure.
enum {
scsiDirectionMask = 0xC0000000,
scsiDirectionNone = 0xC0000000,
scsiDirectionReserved = 0x00000000,
scsiDirectionOut = 0x80000000,
scsiDirectionIn = 0x40000000,
scsiDisableAutosense = 0x20000000,
scsiFlagReservedA = 0x10000000,
scsiFlagReserved0 = 0x08000000,
scsiCDBLinked = 0x04000000,
scsiQEnable = 0x02000000,
scsiCDBIsPointer = 0x01000000,
scsiFlagReserved1 = 0x00800000,
scsiInitiateSyncData = 0x00400000,
scsiDisableSyncData = 0x00200000,
scsiSIMQHead = 0x00100000,
scsiSIMQFreeze = 0x00080000,
scsiSIMQNoFreeze = 0x00040000,
scsiDoDisconnect = 0x00020000,
scsiDontDisconnect = 0x00010000,
scsiDataReadyForDMA = 0x00008000,
scsiFlagReserved3 = 0x00004000,
scsiDataPhysical = 0x00002000,
scsiSensePhysical = 0x00001000,
scsiFlagReserved5 = 0x00000800,
scsiFlagReserved6 = 0x00000400,
scsiFlagReserved7 = 0x00000200,
scsiFlagReserved8 = 0x00000100
};
scsiDirectionMaskA bit field that specifies transfer direction, using these constants: scsiDirectionIn, scsiDirectionOut, and scsiDirectionNone
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDirectionNoneNo data phase expected.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDirectionOutData out.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDirectionInData in.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDisableAutosenseDisable the automatic REQUEST SENSE feature.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiCDBLinkedThe parameter block contains a linked CDB. This option may not be supported by all SIMs.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiQEnableEnable target queue actions. This option may not be supported by all SIMs.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiCDBIsPointerSet if the scsiCDB field of a SCSI I/O parameter block contains a pointer. If clear, the scsiCDB field contains the actual CDB. In either case, the scsiCDBLength field contains the number of bytes in the SCSI command descriptor block.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiInitiateSyncDataSet if the SIM should attempt to initiate a synchronous data transfer by sending the SDTR message. If successful, the device normally remains in the synchronous transfer mode until it is reset or until you specify asynchronous mode by setting the scsiDisableSyncData flag. Because SDTR negotiation occurs every time this flag is set, you should set it only when negotiation is actually needed.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDisableSyncDataDisable synchronous data transfer. The SIM sends an SDTR message with a REQ/ACK offset of 0 to indicate asynchronous data transfer mode. You should set this flag only when negotiation is actually needed.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiSIMQHeadPlace the parameter block at the head of the SIM queue. This can be used to insert error handling at the head of a frozen queue.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiSIMQFreezeFreeze the SIM queue after completing this transaction.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiSIMQNoFreezeDisable SIM queue freezing for this transaction.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDoDisconnectExplicitly allow device to disconnect.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDontDisconnectExplicitly prohibit device disconnection. If this flag and the scsiDoDisconnect flag are both 0, the SIM determines whether to allow or prohibit disconnection, based on performance criteria.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDataReadyForDMAData buffer is locked and non-cacheable.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDataPhysicalData buffer address is physical.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiSensePhysicalAutosense data pointer is physical.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
Used in the scsiFunctionCode field of the parameter block passed to the SCSIAction function.
enum {
SCSINop = 0x00,
SCSIExecIO = 0x01,
SCSIBusInquiry = 0x03,
SCSIReleaseQ = 0x04,
SCSIAbortCommand = 0x10,
SCSIResetBus = 0x11,
SCSIResetDevice = 0x12,
SCSITerminateIO = 0x13
};
enum {
SCSIGetVirtualIDInfo = 128,
SCSILoadDriver = 130,
SCSIOldCall = 132,
SCSICreateRefNumXref = 133,
SCSILookupRefNumXref = 134,
SCSIRemoveRefNumXref = 135,
SCSIRegisterWithNewXPT = 136
};
SCSINopNo operation.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
SCSIExecIOExecute a SCSI I/O transaction.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
SCSIBusInquiryBus inquiry.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
SCSIReleaseQRelease a frozen SIM queue.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
SCSIAbortCommandAbort a SCSI command.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
SCSIResetBusReset the SCSI bus.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
SCSIResetDeviceReset a SCSI device.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
SCSITerminateIOTerminate I/O transaction.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
SCSIGetVirtualIDInfoReturn DeviceIdent of a virtual SCSI ID.
SCSILoadDriverLoad a driver from a SCSI device.
SCSIOldCallSIM support function for original SCSI Manager emulation.
SCSICreateRefNumXrefRegister a device driver.
SCSILookupRefNumXrefFind a driver reference number.
SCSIRemoveRefNumXrefDeregister a device driver.
SCSIRegisterWithNewXPTXPT was replaced; SIM needs to reregister.
Used in the diReserved field of the DeviceIdent structure to identify the type of device described by the structure.
enum {
kBusTypeSCSI = 0,
kBusTypeATA = 1,
kBusTypePCMCIA = 2,
kBusTypeMediaBay = 3
};
kBusTypeSCSIDeviceIdent holds information about a SCSI device.
Available in Mac OS X v10.1 and later.
Not available to 64-bit applications.
Declared in SCSI.h
kBusTypeATADeviceIdent holds information about an ATA device.
Available in Mac OS X v10.1 and later.
Not available to 64-bit applications.
Declared in SCSI.h
kBusTypePCMCIANot recommended.
Available in Mac OS X v10.1 and later.
Not available to 64-bit applications.
Declared in SCSI.h
kBusTypeMediaBayNot recommended.
Available in Mac OS X v10.1 and later.
Not available to 64-bit applications.
Declared in SCSI.h
Used in scsiResultFlags field of the SCSI_IO structure.
enum {
scsiSIMQFrozen = 0x0001,
scsiAutosenseValid = 0x0002,
scsiBusNotFree = 0x0004
};
scsiSIMQFrozenThe SIM queue for this LUN is frozen because of an error. You must call the SCSIReleaseQ function to release the queue and resume processing requests.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiAutosenseValidAn automatic REQUEST SENSE was performed after this I/O because of a CHECK CONDITION status message from the device. The data contained in the scsiSensePtr buffer is valid.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusNotFreeThe SCSI Manager was unable to clear the bus after an error. You may need to call the SCSIResetBus function to restore operation.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
Used in the scsiIOFlags field of the SCSI_IO structure.
enum {
scsiNoParityCheck = 0x0002,
scsiDisableSelectWAtn = 0x0004,
scsiSavePtrOnDisconnect = 0x0008,
scsiNoBucketIn = 0x0010,
scsiNoBucketOut = 0x0020,
scsiDisableWide = 0x0040,
scsiInitiateWide = 0x0080,
scsiRenegotiateSense = 0x0100,
scsiDisableDiscipline = 0x0200,
scsiIOFlagReserved0080 = 0x0080,
scsiIOFlagReserved8000 = 0x8000
};
scsiNoParityCheckDisable parity error detection for this transaction.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDisableSelectWAtnDo not send the IDENTIFY message for LUN selection. The LUN is still required in the scsiDevice field so that the request can be placed in the proper queue. The LUN field in the CDB is untouched. The purpose is to provide compatibility with older devices that do not support this aspect of the SCSI-2 specification.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiSavePtrOnDisconnectPerform a SAVE DATA POINTER operation automatically in response to a DISCONNECT message from the target. The purpose of this flag is to provide compatibility with devices that do not properly implement this aspect of the SCSI-2 specification.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiNoBucketInProhibit bit-bucketing during the data-in phase of the transaction. Bit-bucketing is the practice of throwing away excess data bytes when a target tries to supply more data than the initiator expects. For example, if the CDB requests more data than you specified in the scsiDataLength field, the SCSI Manager normally throws away the excess and returns the scsiDataRunError result code. If this flag is set, the SCSI Manager refuses any extra data, terminates the I/O request, and leaves the bus in the data-in phase. You must reset the bus to restore operation. This flag is intended only for debugging purposes.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiNoBucketOutProhibit bit-bucketing during the data-out phase of the transaction. If a target requests more data than you specified in the scsiDataLength field, the SCSI Manager normally sends an arbitrary number of meaningless bytes (0xEE) until the target releases the bus. If this flag is set, the SCSI Manager terminates the I/O request when the last byte is sent and leaves the bus in the data-out phase. You must reset the bus to restore operation. This flag is intended only for debugging purposes.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDisableWideDisable wide data transfer negotiation for this transaction if it had been previously enabled. This option may not be supported by all SIMs.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiInitiateWideAttempt wide data transfer negotiation for this transaction if it is not already enabled. This option may not be supported by all SIMs.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiRenegotiateSenseAttempt to renegotiate synchronous or wide transfers before issuing a REQUEST SENSE. This is necessary when the error was caused by problems operating in synchronous or wide transfer mode. It is optional because some devices flush sense data after performing negotiation.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
Used in the scsiDataType field of the SCSI_IO parameter block.
enum {
scsiDataBuffer = 0,
scsiDataTIB = 1,
scsiDataSG = 2,
scsiDataIOTable = 3
};
scsiDataBufferThe scsiDataPtr field contains a pointer to a contiguous data buffer, and the scsiDataLength field contains the length of the buffer, in bytes.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDataTIBThe scsiDataPtr field contains a pointer to a transfer instruction block. This is used by the XPT during original SCSI Manager emulation, when communicating with a SIM that supports this.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDataSGThe scsiDataPtr field contains a pointer to a scatter/gather list. The scsiDataLength field contains the total number of bytes to be transferred, and the scsiSGListCount field contains the number of elements in the scatter/gather list.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
Used in the scsiDataTypes field of the SCSIBusInquiryPB structure.
enum {
scsiBusDataTIB = (1 << scsiDataTIB),
scsiBusDataBuffer = (1 << scsiDataBuffer),
scsiBusDataSG = (1 << scsiDataSG),
scsiBusDataIOTable = (1 << scsiDataIOTable),
scsiBusDataReserved = 0x80000000
};
These types correspond to the scsiDataType field of the SCSI I/O parameter block.
Used in the scsiTransferType field of the SCSI_IO structure.
enum {
scsiTransferBlind = 0,
scsiTransferPolled = 1
};
scsiTransferBlindUse DMA, if available; otherwise, perform a blind transfer using the handshaking information contained in the scsiHandshake field.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiTransferPolledUse polled transfer mode. The scsiHandshake field is not required for this mode.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
Used in the featureFlags field of the SCSIBusInquiryPB structure.
enum {
scsiBusLVD = 0x00000400,
scsiBusUltra3SCSI = 0x00000200,
scsiBusUltra2SCSI = 0x00000100,
scsiBusInternalExternalMask = 0x000000C0,
scsiBusInternalExternalUnknown = 0x00000000,
scsiBusInternalExternal = 0x000000C0,
scsiBusInternal = 0x00000080,
scsiBusExternal = 0x00000040,
scsiBusCacheCoherentDMA = 0x00000020,
scsiBusOldCallCapable = 0x00000010,
scsiBusUltraSCSI = 0x00000008,
scsiBusDifferential = 0x00000004,
scsiBusFastSCSI = 0x00000002,
scsiBusDMAavailable = 0x00000001
};
scsiBusInternalExternalUnknownThe internal/external state of the bus is unknown.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusInternalExternalThe bus is both internal and external.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusInternalThe bus is at least partly internal to the computer.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusExternalThe bus extends outside of the computer.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusCacheCoherentDMADMA is cache coherent.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusOldCallCapableThe SIM supports the original SCSI Manager interface.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusDifferentialThe bus uses a differential SCSI interface.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusFastSCSIThe bus supports SCSI-2 fast data transfers.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusDMAavailablesDMA is available.
Used in the scsiHBAInquiry field of the SCSIBusInquiryPB parameter block.
enum {
scsiBusMDP = 0x80,
scsiBusWide32 = 0x40,
scsiBusWide16 = 0x20,
scsiBusSDTR = 0x10,
scsiBusLinkedCDB = 0x08,
scsiBusTagQ = 0x02,
scsiBusSoftReset = 0x01
};
scsiBusMDPSupports the MODIFY DATA POINTER message.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusWide32Supports 32-bit wide transfers.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusWide16Supports 16-bit wide transfers.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusSDTRSupports synchronous transfers.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusLinkedCDBSupports linked commands.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusTagQSupports tagged queuing.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusSoftResetSupports soft reset.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
Used in the scsiWeirdStuff field of the SCSIBusInquiryPB parameter block.
enum {
scsiOddDisconnectUnsafeRead1 = 0x0001,
scsiOddDisconnectUnsafeWrite1 = 0x0002,
scsiBusErrorsUnsafe = 0x0004,
scsiRequiresHandshake = 0x0008,
scsiTargetDrivenSDTRSafe = 0x0010,
scsiOddCountForPhysicalUnsafe = 0x0020,
scsiAbortCmdFixed = 0x0040,
scsiMeshACKTimingFixed = 0x0080
};
scsiOddDisconnectUnsafeRead1Indicates that a disconnect or other phase change on a odd byte boundary during a read operation will result in inaccurate residual counts or data loss. If your device can disconnect on odd bytes, use polled transfers instead of blind.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiOddDisconnectUnsafeWrite1Indicates that a disconnect or other phase change on a odd byte boundary during a write operation will result in inaccurate residual counts or data loss. If your device can disconnect on odd bytes, use polled transfers instead of blind.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiBusErrorsUnsafeIndicates that a delay of more than 16 microseconds or a phase change during a blind transfer on a non-handshaked boundary may cause a system crash. If you cannot predict where delays or disconnects will occur, use polled transfers.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiRequiresHandshakeIndicates that a delay of more than 16 microseconds or a phase change during a blind transfer on a non-handshaked boundary may result in inaccurate residual counts or data loss. If you cannot predict where delays or disconnects will occur, use polled transfers.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiTargetDrivenSDTRSafeIndicates that the SIM supports target-initiated synchronous data transfer negotiation. If your device supports this feature and this bit is not set, you must set the scsiDisableSelectWAtn flag in the scsiIOFlags field.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
Used in the scsiHBAslotType field of the SCSIBusInquiryPB parameter block.
enum {
scsiMotherboardBus = 0x00,
scsiNuBus = 0x01,
scsiPDSBus = 0x03,
scsiPCIBus = 0x04,
scsiPCMCIABus = 0x05,
scsiFireWireBridgeBus = 0x06,
scsiUSBBus = 0x07
};
scsiMotherboardBusA built-in SCSI bus.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiNuBusA NuBus slot.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiPDSBusA processor-direct slot.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiPCIBusA SIM on a PCI bus card.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiPCMCIABusA SIM on a PCMCIA card.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiFireWireBridgeBusA SIM connected through a FireWire bridge.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiUSBBusA SIM connected on a USB bus.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
Used in the scsiCurrentPhase field of the SCSI_IO structure.
enum {
kDataOutPhase = ,
kDataInPhase = 1,
kCommandPhase = 2,
kStatusPhase = 3,
kPhaseIllegal0 = 4,
kPhaseIllegal1 = 5,
kMessageOutPhase = 6,
kMessageInPhase = 7,
kBusFreePhase = 8,
kArbitratePhase = 9,
kSelectPhase = 10,
kMessageInPhaseNACK = 11
};
enum {
scsiErrorBase = -7936
};
enum {
scsiExecutionErrors = scsiErrorBase,
scsiNotExecutedErrors = scsiTooManyBuses,
scsiParameterErrors = scsiPBLengthError
};
enum {
scsiVERSION = 43
};
enum {
vendorUnique = 0xC0
};
Used in the scsiDriverFlags field of the SCSIDriverPB parameter block.
enum {
scsiDeviceSensitive = 0x0001,
scsiDeviceNoOldCallAccess = 0x0002
};
scsiDeviceSensitiveOnly the device driver should access this device. SCSI utilities and other applications that bypass drivers should check this flag before accessing a device.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
scsiDeviceNoOldCallAccessThis driver or device does not accept original SCSI Manager requests.
Available in Mac OS X v10.0 and later.
Not available to 64-bit applications.
Declared in SCSI.h
The table below shows the result codes most commonly returned by the SCSI Manager.