ADC Home > Reference Library > Reference > Darwin > Kernel Framework Reference
|
IOFireWireSerialBusProtocolTransport |
Inherits from: |
IOSCSIProtocolServices
|
Declared In: |
SCSI Protocol Driver Family for FireWire SBP2 Devices.
IOFireWireSerialBusProtocolTransport contains all the bus specific support for FireWire SBP2 compliant devices. To add vendor specific features or workarounds you will sub-class the appropriate methods of this family.
This method is intended to abort an in progress SCSI Task.
Allocate Resources.
cleanUp is called to tear down IOFireWireSerialBusProtocolTransport.
See IOService for discussion.
CoalesceSenseData convert a SBP-2 status block into a SPC-2 sense block.
accessor function for fORB.
This qualifies and sets appropriate data then calls CommandCompleted.
xxx.
Deallocate Resources.
See IOService for discussion.
Handle specified feature supported by the protocol layer.
See IOService for discussion.
Determine is specified feature is supported by the protocol layer.
Completion routine for login complete.
Completion routine for logout complete.
Callback to submit Fetch Agent Reset.
accessor function for fLogin.
Prepare and send a SCSI command to the device.
Method to set orb's buffers.
Set the auto sense data that was returned for a given SCSI Task.
This is our handler for status.
This is our handler for unsolicited status.
AbortSCSICommand |
This method is intended to abort an in progress SCSI Task.
protected
virtual SCSIServiceResponse AbortSCSICommand ( SCSITaskIdentifier request );
See SCSITask.h for SCSIServiceResponse codes.
Currently not implemented in super class. This is a stub method for adding the abort command in the near future.
AllocateResources |
Allocate Resources.
protected
virtual IOReturn AllocateResources ( void );
Called from start method to allocate needed resources.
cleanUp |
cleanUp is called to tear down IOFireWireSerialBusProtocolTransport.
public
virtual void cleanUp ( void );
cleanUp is called when we receive a kIOFWMessageServiceIsRequestingClose message or if we fail our initialization.
close |
See IOService for discussion.
public
virtual void close ( IOService *provider, IOOptionBits options );
none.
CoalesceSenseData |
CoalesceSenseData convert a SBP-2 status block into a SPC-2 sense block.
private
SCSITaskStatus CoalesceSenseData ( FWSBP2StatusBlock *sourceData, UInt8 quadletCount, SCSI_Sense_Data *targetData );
CoalesceSenseData pulls the appropriate bits out of the SBP2 sense block as defined in SBP-2 Annex B section B.2 and dynamically builds a sense data block as defined in SPC-2 section 7.23.2.
CommandORBAccessor |
accessor function for fORB.
protected
IOFireWireSBP2ORB * CommandORBAccessor ( void );
xxx.
CompleteSCSITask |
This qualifies and sets appropriate data then calls CommandCompleted.
protected
virtual void CompleteSCSITask ( IOFireWireSBP2ORB *orb );
See IOSCSIProtocolServices.h for more details regarding CommandCompleted.
CriticalOrbSubmission |
xxx.
protected
void CriticalOrbSubmission ( IOFireWireSBP2ORB *orb, SCSITaskIdentifier request );
none.
xxx.
DeallocateResources |
Deallocate Resources.
protected
virtual void DeallocateResources ( void );
Called from cleanUp method to deallocate resources.
finalize |
See IOService for discussion.
public
virtual bool finalize ( IOOptionBits options );
Returns true.
free |
public
virtual void free ( void );
none.
See IOService for discussion.
HandleProtocolServiceFeature |
Handle specified feature supported by the protocol layer.
protected
virtual bool HandleProtocolServiceFeature ( SCSIProtocolFeature feature, void *serviceValue );
Will return true if the specified feature is supported by the protocol layer.
See IOSCSIProtocolServices.h for more details regarding HandleProtocolServiceFeature.
init |
See IOService for discussion.
public
bool init ( OSDictionary *propTable );
Setup and prime class into known state.
IsProtocolServiceSupported |
Determine is specified feature is supported by the protocol layer.
protected
virtual bool IsProtocolServiceSupported ( SCSIProtocolFeature feature, void *serviceValue );
Will return true if the specified feature is supported by the protocol layer.
If the service has a value that must be returned, it will be returned in the serviceValue output parameter. See IOSCSIProtocolServices.h for more details regarding IsProtocolServiceSupported.
LoginCompletion |
Completion routine for login complete.
protected
virtual void LoginCompletion ( FWSBP2LoginCompleteParams *params );
See IOFireWireSBP2Lib.h for details regarding the FWSBP2LogoutCompleteParams structure that is passed in to the completion.
LogoutCompletion |
Completion routine for logout complete.
protected
virtual void LogoutCompletion ( FWSBP2LogoutCompleteParams *params );
See IOFireWireSBP2Lib.h for details regarding the FWSBP2LogoutCompleteParams structure that is passed in to the completion.
LunResetComplete |
Callback to submit Fetch Agent Reset.
protected
virtual void LunResetComplete ( IOReturn status, IOFireWireSBP2ManagementORB *orb );
See IOFireWireSBP2Lib.h for details regarding the submitFetchAgentReset method.
SBP2LoginAccessor |
accessor function for fLogin.
protected
IOFireWireSBP2Login * SBP2LoginAccessor ( void );
xxx.
SendSCSICommand |
Prepare and send a SCSI command to the device.
protected
virtual bool SendSCSICommand ( SCSITaskIdentifier request, SCSIServiceResponse *serviceResponse, SCSITaskStatus *taskStatus );
If the command was sent to the device and is pending completion, the subclass should return true and return back the kSCSIServiceResponse_Request_In_Process response. If the command completes immediately with an error, the subclass will return true and return back the appropriate status. If the subclass is currently processing all the commands it can, the subclass will return false and the command will be resent next time CommandCompleted is called.
The incoming SCSITaskIdentifier gets turned into a IOFireWireSBP2ORB and is submitted to the SBP2 layer. See IOSCSIProtocolServices.h for more details regarding SendSCSICommand. Also see IOFireWireSBP2Lib.h for details regarding the IOFireWireSBP2ORB structure and the submitORB method.
SetCommandBuffers |
Method to set orb's buffers.
protected
virtual IOReturn SetCommandBuffers ( IOFireWireSBP2ORB *orb, SCSITaskIdentifier request );
xxx.
This method was added so that subclasses can override and massage buffers as needed. The default simply calls setCommandBuffers. See IOFireWireSBP2Lib.h for details regarding the setCommandBuffers method.
SetValidAutoSenseData |
Set the auto sense data that was returned for a given SCSI Task.
protected
void SetValidAutoSenseData ( SBP2ClientOrbData *clientData, FWSBP2StatusBlock *statusBlock, SCSI_Sense_Data *targetData );
SetValidAutoSenseData is called to qualify sense data that is copied to the client via the SetAutoSenseData method. See IOSCSIProtocolServices.h for more details regarding SetAutoSenseData.
start |
public
virtual bool start ( IOService *provider );
Return true if the start was successful, false otherwise ( which will cause the instance to be detached and usually freed ).
See IOService for discussion.
StatusNotify |
This is our handler for status.
protected
virtual void StatusNotify ( FWSBP2NotifyParams *params );
See IOFireWireSBP2Lib.h for details regarding the FWSBP2NotifyParams structure that is passed in to the completion..
UnsolicitedStatusNotify |
This is our handler for unsolicited status.
protected
virtual void UnsolicitedStatusNotify ( FWSBP2NotifyParamsPtr params );
After we have parsed and handled the unsolicited status we call enableUnsolicitedStatus. See IOFireWireSBP2Lib.h for details regarding the enableUnsolicitedStatus method.
SBP2ClientOrbData |
protected
typedef struct { IOFireWireSBP2ORB *orb; SCSITaskIdentifier scsiTask; SCSIServiceResponse serviceResponse; SCSITaskStatus taskStatus; } SBP2ClientOrbData;
orb
IOFireWireSBP2ORB for request.
scsiTask
SCSITaskIdentifier of request.
serviceResponse
SCSIServiceResponse of request.
taskStatus
SCSITaskStatus of request.
This structure is stuffed into the refcon so we can associate which IOFireWireSBP2ORB and SCSITaskIdentifier is completing.
|
Last Updated: 2008-12-19