FreeBSD kernel pms device code
smsat.c File Reference
Include dependency graph for smsat.c:

Go to the source code of this file.

Functions

 __FBSDID ("$FreeBSD$")
 
osGLOBAL bit32 smRegisterDevice (smRoot_t *smRoot, agsaDevHandle_t *agDevHandle, smDeviceHandle_t *smDeviceHandle, agsaDevHandle_t *agExpDevHandle, bit32 phyID, bit32 DeviceType)
 
osGLOBAL bit32 smDeregisterDevice (smRoot_t *smRoot, agsaDevHandle_t *agDevHandle, smDeviceHandle_t *smDeviceHandle)
 
osGLOBAL bit32 smIOAbort (smRoot_t *smRoot, smIORequest_t *tasktag)
 
osGLOBAL bit32 smIOAbortAll (smRoot_t *smRoot, smDeviceHandle_t *smDeviceHandle)
 
osGLOBAL bit32 smSuperIOStart (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smSuperScsiInitiatorRequest_t *smSCSIRequest, bit32 AddrHi, bit32 AddrLo, bit32 interruptContext)
 
FORCEINLINE bit32 smIOStart (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smSCSIRequest, bit32 interruptContext)
 
osGLOBAL bit32 smTaskManagement (smRoot_t *smRoot, smDeviceHandle_t *smDeviceHandle, bit32 task, smLUN_t *lun, smIORequest_t *taskTag, smIORequest_t *currentTaskTag)
 
osGLOBAL smIORequestBody_tsmDequeueIO (smRoot_t *smRoot)
 
osGLOBAL void smsatAbort (smRoot_t *smRoot, agsaRoot_t *agRoot, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatStartCheckPowerMode (smRoot_t *smRoot, smIORequest_t *currentTaskTag, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatStartResetDevice (smRoot_t *smRoot, smIORequest_t *currentTaskTag, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatTmAbortTask (smRoot_t *smRoot, smIORequest_t *currentTaskTag, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext, smIORequest_t *taskTag)
 
osGLOBAL bit32 smsatTaskManagement (smRoot_t *smRoot, smDeviceHandle_t *smDeviceHandle, bit32 task, smLUN_t *lun, smIORequest_t *taskTag, smIORequest_t *currentTaskTag, smIORequestBody_t *smIORequestBody)
 
osGLOBAL bit32 smPhyControlSend (smRoot_t *smRoot, smDeviceData_t *oneDeviceData, bit8 phyOp, smIORequest_t *CurrentTaskTag, bit32 queueNumber)
 
osGLOBAL void smEnqueueIO (smRoot_t *smRoot, smSatIOContext_t *satIOContext)
 
FORCEINLINE void smsatFreeIntIoResource (smRoot_t *smRoot, smDeviceData_t *satDevData, smSatInternalIo_t *satIntIo)
 
osGLOBAL smSatInternalIo_tsmsatAllocIntIoResource (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceData_t *satDevData, bit32 dmaAllocLength, smSatInternalIo_t *satIntIo)
 
osGLOBAL smDeviceData_tsmAddToSharedcontext (smRoot_t *smRoot, agsaDevHandle_t *agDevHandle, smDeviceHandle_t *smDeviceHandle, agsaDevHandle_t *agExpDevHandle, bit32 phyID)
 
osGLOBAL bit32 smRemoveFromSharedcontext (smRoot_t *smRoot, agsaDevHandle_t *agDevHandle, smDeviceHandle_t *smDeviceHandle)
 
osGLOBAL smDeviceData_tsmFindInSharedcontext (smRoot_t *smRoot, agsaDevHandle_t *agDevHandle)
 
osGLOBAL smSatIOContext_tsmsatPrepareNewIO (smSatInternalIo_t *satNewIntIo, smIORequest_t *smOrgIORequest, smDeviceData_t *satDevData, smIniScsiCmnd_t *scsiCmnd, smSatIOContext_t *satOrgIOContext)
 
osGLOBAL void smsatSetDevInfo (smDeviceData_t *oneDeviceData, agsaSATAIdentifyData_t *SATAIdData)
 
osGLOBAL void smsatInquiryStandard (bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData, smIniScsiCmnd_t *scsiCmnd)
 
osGLOBAL void smsatInquiryPage0 (bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData)
 
osGLOBAL void smsatInquiryPage83 (bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData, smDeviceData_t *oneDeviceData)
 
osGLOBAL void smsatInquiryPage89 (bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData, smDeviceData_t *oneDeviceData, bit32 len)
 
osGLOBAL void smsatInquiryPage80 (bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData)
 
osGLOBAL void smsatInquiryPageB1 (bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData)
 
osGLOBAL void smsatDefaultTranslation (smRoot_t *smRoot, smIORequest_t *smIORequest, smSatIOContext_t *satIOContext, smScsiRspSense_t *pSense, bit8 ataStatus, bit8 ataError, bit32 interruptContext)
 
osGLOBAL bit32 smIDStart (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle)
 
osGLOBAL bit32 smsatIDSubStart (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smSCSIRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatIDStart (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smSCSIRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL FORCEINLINE bit32 smsatIOStart (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smSCSIRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL void smsatSetSensePayload (smScsiRspSense_t *pSense, bit8 SnsKey, bit32 SnsInfo, bit16 SnsCode, smSatIOContext_t *satIOContext)
 
GLOBAL bit32 smsatDecodeSATADeviceType (bit8 *pSignature)
 
osGLOBAL bit32 smsatPacket (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 SAT implementation for ATAPI Packet Command. More...
 
osGLOBAL bit32 smsatSetFeaturesPIO (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 SAT implementation for smsatSetFeaturePIO. More...
 
osGLOBAL bit32 smsatRequestSenseForATAPI (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 SAT implementation for SCSI REQUEST SENSE to ATAPI device. More...
 
osGLOBAL bit32 smsatDeviceReset (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 SAT implementation for smsatDeviceReset. More...
 
osGLOBAL bit32 smsatExecuteDeviceDiagnostic (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 SAT implementation for smsatExecuteDeviceDiagnostic. More...
 
osGLOBAL void smsatSetDeferredSensePayload (smScsiRspSense_t *pSense, bit8 SnsKey, bit32 SnsInfo, bit16 SnsCode, smSatIOContext_t *satIOContext)
 
GLOBAL bit32 smsatRead6 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL FORCEINLINE bit32 smsatRead10 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatRead12 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatRead16 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWrite6 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL FORCEINLINE bit32 smsatWrite10 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWrite12 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWrite16 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatVerify10 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatVerify12 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatVerify16 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatTestUnitReady (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatTestUnitReady_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatInquiry (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatStartIDDev (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSendIDDev (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatRequestSense (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatRequestSense_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatModeSense6 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatModeSense10 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatReadCapacity10 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatReadCapacity16 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatReportLun (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatFormatUnit (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSendDiagnostic (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatStartStopUnit (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWriteSame10 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWriteSame16 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatLogSense (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatLogSenseAllocate (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smSCSIRequest, smSatIOContext_t *satIOContext, bit32 payloadSize, bit32 flag)
 
osGLOBAL bit32 smsatSMARTEnable (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatLogSense_2 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatLogSense_3 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatModeSelect6 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatModeSelect10 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSynchronizeCache10 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSynchronizeCache16 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWriteAndVerify10 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWriteAndVerify12 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWriteAndVerify16 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatReadMediaSerialNumber (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatReadBuffer (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWriteBuffer (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatReassignBlocks (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatRead_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWrite_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatPassthrough (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatNonChainedWriteNVerify_Verify (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatChainedWriteNVerify_Start_Verify (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatChainedWriteNVerify_Write (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatChainedWriteNVerify_Verify (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatChainedVerify (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatWriteSame10_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext, bit32 lba)
 
osGLOBAL bit32 smsatWriteSame10_2 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext, bit32 lba)
 
osGLOBAL bit32 smsatWriteSame10_3 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext, bit32 lba)
 
osGLOBAL bit32 smsatStartStopUnit_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSendDiagnostic_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSendDiagnostic_2 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatModeSelect6n10_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatLogSense_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatReassignBlocks_2 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext, bit8 *LBA)
 
osGLOBAL bit32 smsatReassignBlocks_1 (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext, smSatIOContext_t *satOrgIOContext)
 
osGLOBAL bit32 smsatSendReadLogExt (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatCheckPowerMode (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatResetDevice (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatDeResetDevice (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSetFeaturesAA (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSetFeaturesDMA (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSetFeaturesReadLookAhead (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatSetFeaturesVolatileWriteCache (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext)
 
osGLOBAL FORCEINLINE void smsatBitSet (smRoot_t *smRoot, bit8 *data, bit32 index)
 
osGLOBAL FORCEINLINE void smsatBitClear (smRoot_t *smRoot, bit8 *data, bit32 index)
 
osGLOBAL FORCEINLINE BOOLEAN smsatBitTest (smRoot_t *smRoot, bit8 *data, bit32 index)
 
FORCEINLINE bit32 smsatTagAlloc (smRoot_t *smRoot, smDeviceData_t *pSatDevData, bit8 *pTag)
 
FORCEINLINE bit32 smsatTagRelease (smRoot_t *smRoot, smDeviceData_t *pSatDevData, bit8 tag)
 
osGLOBAL bit32 smsatComputeCDB10LBA (smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatComputeCDB10TL (smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatComputeCDB12LBA (smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatComputeCDB12TL (smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatComputeCDB16LBA (smSatIOContext_t *satIOContext)
 
osGLOBAL bit32 smsatComputeCDB16TL (smSatIOContext_t *satIOContext)
 
osGLOBAL FORCEINLINE bit32 smsatComputeLoopNum (bit32 a, bit32 b)
 
osGLOBAL FORCEINLINE bit32 smsatCheckLimit (bit8 *lba, bit8 *tl, int flag, smDeviceData_t *pSatDevData)
 
osGLOBAL void smsatPrintSgl (smRoot_t *smRoot, agsaEsgl_t *agEsgl, bit32 idx)
 
osGLOBAL void smsatSplitSGL (smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle, smScsiInitiatorRequest_t *smScsiRequest, smSatIOContext_t *satIOContext, bit32 split, bit32 tl, bit32 flag)
 

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ smAddToSharedcontext()

◆ smDequeueIO()

◆ smDeregisterDevice()

osGLOBAL bit32 smDeregisterDevice ( smRoot_t smRoot,
agsaDevHandle_t agDevHandle,
smDeviceHandle_t smDeviceHandle 
)

Definition at line 85 of file smsat.c.

References agNULL, SM_DBG1, SM_DBG2, SM_RC_FAILURE, smRemoveFromSharedcontext(), and status.

Referenced by ossaDeregisterDeviceHandleCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smEnqueueIO()

◆ smFindInSharedcontext()

osGLOBAL smDeviceData_t * smFindInSharedcontext ( smRoot_t smRoot,
agsaDevHandle_t agDevHandle 
)

◆ smIDStart()

◆ smIOAbort()

◆ smIOAbortAll()

◆ smIOStart()

◆ smPhyControlSend()

osGLOBAL bit32 smPhyControlSend ( smRoot_t smRoot,
smDeviceData_t oneDeviceData,
bit8  phyOp,
smIORequest_t CurrentTaskTag,
bit32  queueNumber 
)

◆ smRegisterDevice()

osGLOBAL bit32 smRegisterDevice ( smRoot_t smRoot,
agsaDevHandle_t agDevHandle,
smDeviceHandle_t smDeviceHandle,
agsaDevHandle_t agExpDevHandle,
bit32  phyID,
bit32  DeviceType 
)

Definition at line 46 of file smsat.c.

References agNULL, smDeviceData_s::satDeviceType, SM_DBG1, SM_DBG2, SM_RC_FAILURE, SM_RC_SUCCESS, and smAddToSharedcontext().

Referenced by ossaDeviceRegistrationCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smRemoveFromSharedcontext()

◆ smsatAbort()

◆ smsatAllocIntIoResource()

osGLOBAL smSatInternalIo_t * smsatAllocIntIoResource ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceData_t satDevData,
bit32  dmaAllocLength,
smSatInternalIo_t satIntIo 
)

Definition at line 1547 of file smsat.c.

References agFALSE, agNULL, agTRUE, smIniScsiCmnd_t::expDataLength, smSatInternalIo_s::id, smSgl_t::len, smSgl_t::lower, smMem_t::osHandle, smMem_t::physAddrLower, smMem_t::physAddrUpper, smDeviceData_s::satActiveIntIoLinkList, smDeviceData_s::satFreeIntIoLinkList, smSatInternalIo_s::satIntDmaMem, smSatInternalIo_s::satIntIoLink, smSatInternalIo_s::satIntReqBodyMem, smSatInternalIo_s::satIntRequestBody, smSatInternalIo_s::satIntSmIORequest, smSatInternalIo_s::satIntSmScsiXchg, smSatInternalIo_s::satOrgSmIORequest, smScsiInitiatorRequest::scsiCmnd, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG3, SM_DBG5, SM_INTERNAL_IO_LOCK, SM_RC_SUCCESS, smContext_t::smData, SMLIST_DEQUEUE_FROM_HEAD, SMLIST_DEQUEUE_THIS, SMLIST_EMPTY, SMLIST_ENQUEUE_AT_HEAD, SMLIST_ENQUEUE_AT_TAIL, SMLIST_OBJECT_BASE, smScsiInitiatorRequest::smSgl1, smContext_t::tdData, tdsmAllocMemory(), tdsmFreeMemory(), tdsmSingleThreadedEnter(), tdsmSingleThreadedLeave(), tiSgl, smMem_t::totalLength, smSgl_t::type, smSgl_t::upper, and smMem_t::virtPtr.

Referenced by ossaSATAEvent(), smsatChainedDataIOCB(), smsatChainedVerifyCB(), smsatChainedWriteNVerifyCB(), smsatIDStartCB(), smsatIDSubStart(), smsatIOCompleted(), smsatLogSenseAllocate(), smsatModeSelect6n10CB(), smsatNonChainedWriteNVerifyCB(), smsatPacketCB(), smsatReassignBlocksCB(), smsatRequestSense(), smsatRequestSenseCB(), smsatResetDeviceCB(), smsatSendDiagnosticCB(), smsatSetFeaturesDMACB(), smsatSetFeaturesPIOCB(), smsatSetFeaturesReadLookAheadCB(), smsatSetFeaturesVolatileWriteCacheCB(), smsatSMARTEnableCB(), smsatStartCheckPowerMode(), smsatStartIDDev(), smsatStartResetDevice(), smsatStartStopUnitCB(), smsatTestUnitReadyCB(), and smsatWriteSame10CB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatBitClear()

osGLOBAL FORCEINLINE void smsatBitClear ( smRoot_t smRoot,
bit8 data,
bit32  index 
)

Definition at line 20133 of file smsat.c.

References index.

Referenced by smsatTagRelease().

Here is the caller graph for this function:

◆ smsatBitSet()

osGLOBAL FORCEINLINE void smsatBitSet ( smRoot_t smRoot,
bit8 data,
bit32  index 
)

Definition at line 20127 of file smsat.c.

References index.

Referenced by smsatTagAlloc().

Here is the caller graph for this function:

◆ smsatBitTest()

osGLOBAL FORCEINLINE BOOLEAN smsatBitTest ( smRoot_t smRoot,
bit8 data,
bit32  index 
)

Definition at line 20139 of file smsat.c.

References index.

Referenced by smsatTagAlloc().

Here is the caller graph for this function:

◆ smsatChainedVerify()

◆ smsatChainedWriteNVerify_Start_Verify()

osGLOBAL bit32 smsatChainedWriteNVerify_Start_Verify ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

◆ smsatChainedWriteNVerify_Verify()

◆ smsatChainedWriteNVerify_Write()

osGLOBAL bit32 smsatChainedWriteNVerify_Write ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

◆ smsatCheckLimit()

osGLOBAL FORCEINLINE bit32 smsatCheckLimit ( bit8 lba,
bit8 tl,
int  flag,
smDeviceData_t pSatDevData 
)

◆ smsatCheckPowerMode()

◆ smsatComputeCDB10LBA()

osGLOBAL bit32 smsatComputeCDB10LBA ( smSatIOContext_t satIOContext)

Definition at line 20213 of file smsat.c.

References smIniScsiCmnd_t::cdb, smScsiInitiatorRequest::scsiCmnd, SM_DBG5, and smSatIOContext_s::smScsiXchg.

Referenced by smsatRead10(), and smsatWrite10().

Here is the caller graph for this function:

◆ smsatComputeCDB10TL()

osGLOBAL bit32 smsatComputeCDB10TL ( smSatIOContext_t satIOContext)

Definition at line 20230 of file smsat.c.

References smIniScsiCmnd_t::cdb, smScsiInitiatorRequest::scsiCmnd, SM_DBG5, and smSatIOContext_s::smScsiXchg.

Referenced by smsatRead10(), and smsatWrite10().

Here is the caller graph for this function:

◆ smsatComputeCDB12LBA()

osGLOBAL bit32 smsatComputeCDB12LBA ( smSatIOContext_t satIOContext)

◆ smsatComputeCDB12TL()

osGLOBAL bit32 smsatComputeCDB12TL ( smSatIOContext_t satIOContext)

◆ smsatComputeCDB16LBA()

osGLOBAL bit32 smsatComputeCDB16LBA ( smSatIOContext_t satIOContext)

Definition at line 20285 of file smsat.c.

References smIniScsiCmnd_t::cdb, smScsiInitiatorRequest::scsiCmnd, SM_DBG5, and smSatIOContext_s::smScsiXchg.

Referenced by smsatRead16(), smsatVerify16(), smsatWrite16(), and smsatWriteAndVerify16().

Here is the caller graph for this function:

◆ smsatComputeCDB16TL()

osGLOBAL bit32 smsatComputeCDB16TL ( smSatIOContext_t satIOContext)

Definition at line 20302 of file smsat.c.

References smIniScsiCmnd_t::cdb, smScsiInitiatorRequest::scsiCmnd, SM_DBG5, and smSatIOContext_s::smScsiXchg.

Referenced by smsatRead16(), smsatVerify16(), smsatWrite16(), and smsatWriteAndVerify16().

Here is the caller graph for this function:

◆ smsatComputeLoopNum()

◆ smsatDecodeSATADeviceType()

GLOBAL bit32 smsatDecodeSATADeviceType ( bit8 pSignature)

◆ smsatDefaultTranslation()

◆ smsatDeResetDevice()

◆ smsatDeviceReset()

osGLOBAL bit32 smsatDeviceReset ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

SAT implementation for smsatDeviceReset.

This function creates DEVICE RESET fis and sends the request to LL layer

Parameters
smRootPointer to TISA initiator driver/port instance.
smIORequestPointer to TISA I/O request context for this I/O.
smDeviceHandlePointer to TISA device handle for this I/O.
smScsiRequestPointer to TISA SCSI I/O request and SGL list.
smSatIOContext_tPointer to the SAT IO Context
Returns
If command is started successfully
  • smIOSuccess: I/O request successfully initiated.
  • smIOBusy: No resources available, try again later.
  • smIONoDevice: Invalid device handle.
  • smIOError: Other errors.

Definition at line 4317 of file smsat.c.

References AGSA_SATA_PROTOCOL_DEV_RESET, agsaFisRegH2DHeader_s::c_pmPort, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_DEVICE_RESET, smSatIOContext_s::satCompleteCB, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG3, smsataLLIOStart(), smsatDeviceResetCB(), and status.

Referenced by smsatStartResetDevice().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatExecuteDeviceDiagnostic()

osGLOBAL bit32 smsatExecuteDeviceDiagnostic ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

SAT implementation for smsatExecuteDeviceDiagnostic.

This function creates Execute Device Diagnostic fis and sends the request to LL layer

Parameters
smRootPointer to TISA initiator driver/port instance.
smIORequestPointer to TISA I/O request context for this I/O.
smDeviceHandlePointer to TISA device handle for this I/O.
smScsiRequestPointer to TISA SCSI I/O request and SGL list.
smSatIOContext_tPointer to the SAT IO Context
Returns
If command is started successfully
  • smIOSuccess: I/O request successfully initiated.
  • smIOBusy: No resources available, try again later.
  • smIONoDevice: Invalid device handle.
  • smIOError: Other errors.

Definition at line 4394 of file smsat.c.

References AGSA_SATA_PROTOCOL_NON_DATA, agsaFisRegH2DHeader_s::c_pmPort, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_EXECUTE_DEVICE_DIAGNOSTIC, smSatIOContext_s::satCompleteCB, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG3, smsataLLIOStart(), smsatExecuteDeviceDiagnosticCB(), and status.

Here is the call graph for this function:

◆ smsatFormatUnit()

◆ smsatFreeIntIoResource()

FORCEINLINE void smsatFreeIntIoResource ( smRoot_t smRoot,
smDeviceData_t satDevData,
smSatInternalIo_t satIntIo 
)

Definition at line 1490 of file smsat.c.

References agNULL, smIniScsiCmnd_t::expDataLength, smSatInternalIo_s::id, smMem_t::osHandle, smDeviceData_s::satFreeIntIoLinkList, smSatInternalIo_s::satIntDmaMem, smSatInternalIo_s::satIntIoLink, smSatInternalIo_s::satIntReqBodyMem, smSatInternalIo_s::satIntSmScsiXchg, smSatInternalIo_s::satOrgSmIORequest, smScsiInitiatorRequest::scsiCmnd, SM_DBG2, SM_DBG3, SM_INTERNAL_IO_LOCK, SMLIST_DEQUEUE_THIS, SMLIST_ENQUEUE_AT_TAIL, tdsmFreeMemory(), tdsmSingleThreadedEnter(), tdsmSingleThreadedLeave(), and smMem_t::totalLength.

Referenced by ossaSATAEvent(), smDeviceDataReInit(), smsataLLIOStart(), smsatChainedDataIOCB(), smsatChainedVerifyCB(), smsatChainedWriteNVerifyCB(), smsatCheckPowerModeCB(), smsatCheckPowerModePassCB(), smsatDeResetDeviceCB(), smsatDeviceResetCB(), smsatExecuteDeviceDiagnosticCB(), smsatIDDataPassCB(), smsatIDStartCB(), smsatIDSubStart(), smsatInquiryCB(), smsatIOCompleted(), smsatIOStart(), smsatLogSenseAllocate(), smsatLogSenseCB(), smsatModeSelect6n10CB(), smsatNonChainedDataIOCB(), smsatNonChainedVerifyCB(), smsatNonChainedWriteNVerifyCB(), smsatPacketCB(), smsatPassthroughCB(), smsatReadBufferCB(), smsatReadLogExtCB(), smsatReadMediaSerialNumberCB(), smsatReassignBlocksCB(), smsatRequestSense(), smsatRequestSenseCB(), smsatRequestSenseForATAPICB(), smsatResetDeviceCB(), smsatSendDiagnosticCB(), smsatSetFeaturesAACB(), smsatSetFeaturesDMACB(), smsatSetFeaturesPIOCB(), smsatSetFeaturesReadLookAheadCB(), smsatSetFeaturesVolatileWriteCacheCB(), smsatSMARTEnableCB(), smsatSMARTEnablePassCB(), smsatSMARTReadLogCB(), smsatSMARTRStatusPassCB(), smsatStartCheckPowerMode(), smsatStartIDDev(), smsatStartResetDevice(), smsatStartStopUnitCB(), smsatSynchronizeCache10n16CB(), smsatTestUnitReadyCB(), smsatVerify10CB(), smsatWriteBufferCB(), and smsatWriteSame10CB().

Here is the call graph for this function:

◆ smsatIDStart()

osGLOBAL bit32 smsatIDStart ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smSCSIRequest,
smSatIOContext_t satIOContext 
)

◆ smsatIDSubStart()

◆ smsatInquiry()

◆ smsatInquiryPage0()

osGLOBAL void smsatInquiryPage0 ( bit8 pInquiry,
agsaSATAIdentifyData_t pSATAIdData 
)

Definition at line 2452 of file smsat.c.

References SM_DBG5.

Referenced by smsatInquiryCB(), and smsatInquiryIntCB().

Here is the caller graph for this function:

◆ smsatInquiryPage80()

osGLOBAL void smsatInquiryPage80 ( bit8 pInquiry,
agsaSATAIdentifyData_t pSATAIdData 
)

Definition at line 2899 of file smsat.c.

References agsaSATAIdentifyData_s::serialNumber, and SM_DBG5.

Referenced by smsatInquiryIntCB().

Here is the caller graph for this function:

◆ smsatInquiryPage83()

◆ smsatInquiryPage89()

osGLOBAL void smsatInquiryPage89 ( bit8 pInquiry,
agsaSATAIdentifyData_t pSATAIdData,
smDeviceData_t oneDeviceData,
bit32  len 
)

Definition at line 2775 of file smsat.c.

References MIN, SATA_ATA_DEVICE, SATA_PAGE89_INQUIRY_SIZE, smDeviceData_s::satDeviceType, smDeviceData_s::satPMField, SM_DBG5, sm_memcpy(), and sm_strncpy().

Referenced by smsatInquiryCB(), and smsatInquiryIntCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatInquiryPageB1()

osGLOBAL void smsatInquiryPageB1 ( bit8 pInquiry,
agsaSATAIdentifyData_t pSATAIdData 
)

Definition at line 2940 of file smsat.c.

References SM_DBG5, and satSimpleSATAIdentifyData_s::word.

Referenced by smsatInquiryCB(), and smsatInquiryIntCB().

Here is the caller graph for this function:

◆ smsatInquiryStandard()

osGLOBAL void smsatInquiryStandard ( bit8 pInquiry,
agsaSATAIdentifyData_t pSATAIdData,
smIniScsiCmnd_t scsiCmnd 
)

◆ smsatIOStart()

osGLOBAL FORCEINLINE bit32 smsatIOStart ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smSCSIRequest,
smSatIOContext_t satIOContext 
)

Definition at line 3384 of file smsat.c.

References agFALSE, agNULL, smIniScsiCmnd_t::cdb, smDeviceData_s::id, smDeviceData_s::IDDeviceValid, smSatIOContext_s::interruptContext, smLUN_t::lun, smIniScsiCmnd_t::lun, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, SAT_DEV_STATE_IN_RECOVERY, SATA_ATAPI_DEVICE, smDeviceData_s::satDeviceType, smDeviceData_s::satDriveState, smSatIOContext_s::satIntIoContext, smDeviceData_s::satNCQMaxIO, smDeviceData_s::satPendingIO, smDeviceData_s::satPendingNCQIO, smDeviceData_s::satPendingNONNCQIO, SCSI_SNSCODE_INVALID_COMMAND, SCSI_SNSCODE_LOGICAL_NOT_SUPPORTED, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, smScsiInitiatorRequest::scsiCmnd, SCSIOPC_ATA_PASS_THROUGH12, SCSIOPC_ATA_PASS_THROUGH16, SCSIOPC_FORMAT_UNIT, SCSIOPC_INQUIRY, SCSIOPC_LOG_SENSE, SCSIOPC_MODE_SELECT_10, SCSIOPC_MODE_SELECT_6, SCSIOPC_MODE_SENSE_10, SCSIOPC_MODE_SENSE_6, SCSIOPC_READ_10, SCSIOPC_READ_12, SCSIOPC_READ_16, SCSIOPC_READ_6, SCSIOPC_READ_BUFFER, SCSIOPC_READ_CAPACITY_10, SCSIOPC_READ_CAPACITY_16, SCSIOPC_READ_MEDIA_SERIAL_NUMBER, SCSIOPC_REASSIGN_BLOCKS, SCSIOPC_REPORT_LUN, SCSIOPC_REQUEST_SENSE, SCSIOPC_SEND_DIAGNOSTIC, SCSIOPC_START_STOP_UNIT, SCSIOPC_SYNCHRONIZE_CACHE_10, SCSIOPC_SYNCHRONIZE_CACHE_16, SCSIOPC_TEST_UNIT_READY, SCSIOPC_VERIFY_10, SCSIOPC_VERIFY_12, SCSIOPC_VERIFY_16, SCSIOPC_WRITE_10, SCSIOPC_WRITE_12, SCSIOPC_WRITE_16, SCSIOPC_WRITE_6, SCSIOPC_WRITE_AND_VERIFY_10, SCSIOPC_WRITE_AND_VERIFY_12, SCSIOPC_WRITE_AND_VERIFY_16, SCSIOPC_WRITE_BUFFER, SCSIOPC_WRITE_SAME_10, SCSIOPC_WRITE_SAME_16, SM_DBG1, SM_DBG2, SM_DBG5, SM_RC_BUSY, SM_RC_DEVICE_BUSY, SM_RC_FAILURE, SM_RC_NODEVICE, SM_RC_SUCCESS, smIOSuccess, smsatFormatUnit(), smsatFreeIntIoResource(), smsatInquiry(), smsatLogSense(), smsatModeSelect10(), smsatModeSelect6(), smsatModeSense10(), smsatModeSense6(), smsatPacket(), smsatPassthrough(), smsatRead10(), smsatRead12(), smsatRead16(), smsatRead6(), smsatReadBuffer(), smsatReadCapacity10(), smsatReadCapacity16(), smsatReadMediaSerialNumber(), smsatReassignBlocks(), smsatReportLun(), smsatRequestSense(), smsatSendDiagnostic(), smsatSetSensePayload(), smsatStartStopUnit(), smsatSynchronizeCache10(), smsatSynchronizeCache16(), smsatTestUnitReady(), smsatVerify10(), smsatVerify12(), smsatVerify16(), smsatWrite10(), smsatWrite12(), smsatWrite16(), smsatWrite6(), smsatWriteAndVerify10(), smsatWriteAndVerify12(), smsatWriteAndVerify16(), smsatWriteBuffer(), smsatWriteSame10(), smsatWriteSame16(), status, and tdsmIOCompletedCB().

Referenced by smIOStart(), and smSuperIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatLogSense()

osGLOBAL bit32 smsatLogSense ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 12982 of file smsat.c.

References agFALSE, agNULL, AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, smIniScsiCmnd_t::expDataLength, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, INFORMATION_EXCEPTIONS_LOG_PAGE_LENGTH, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, LOG_SENSE_0, LOG_SENSE_1, LOG_SENSE_2, LOGSENSE_INFORMATION_EXCEPTIONS_PAGE, LOGSENSE_SELFTEST_RESULTS_PAGE, LOGSENSE_SUPPORTED_LOG_PAGES, MIN, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_SMART, SAT_SMART_RETURN_STATUS, smSatIOContext_s::satCompleteCB, smDeviceData_s::satSMARTEnabled, smDeviceData_s::satSMARTFeatureSet, smDeviceData_s::satSMARTSelfTest, SCSI_LINK_MASK, SCSI_LOG_SENSE_PAGE_CODE_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_ATA_DEVICE_FEATURE_NOT_ENABLED, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ABORTED_COMMAND, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG5, sm_memcpy(), sm_memset(), SM_RC_SUCCESS, smIOSuccess, smIOUnderRun, smsataLLIOStart(), smsatLogSenseAllocate(), smsatLogSenseCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatLogSense_1()

◆ smsatLogSense_2()

◆ smsatLogSense_3()

◆ smsatLogSenseAllocate()

◆ smsatModeSelect10()

osGLOBAL bit32 smsatModeSelect10 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 14173 of file smsat.c.

References agFALSE, agNULL, AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, BIT0_MASK, BIT1_MASK, BIT2_MASK, BIT3_MASK, BIT4_MASK, BIT5_MASK, BIT6_MASK, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, smIniScsiCmnd_t::expDataLength, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, MIN, MODESELECT_CACHING, MODESELECT_CONTROL_PAGE, MODESELECT_INFORMATION_EXCEPTION_CONTROL_PAGE, MODESELECT_READ_WRITE_ERROR_RECOVERY_PAGE, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_SET_FEATURES, SAT_SMART, SAT_SMART_DISABLE_OPERATIONS, SAT_SMART_ENABLE_OPERATIONS, smSatIOContext_s::satCompleteCB, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_MODE_SELECT10_AWRE_MASK, SCSI_MODE_SELECT10_DCR_MASK, SCSI_MODE_SELECT10_DEXCPT_MASK, SCSI_MODE_SELECT10_DTE_MASK, SCSI_MODE_SELECT10_EER_MASK, SCSI_MODE_SELECT10_LONGLBA_MASK, SCSI_MODE_SELECT10_PER_MASK, SCSI_MODE_SELECT10_PERF_MASK, SCSI_MODE_SELECT10_PF_MASK, SCSI_MODE_SELECT10_RC_MASK, SCSI_MODE_SELECT10_TEST_MASK, SCSI_MODE_SELECT10_WCE_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_INVALID_FIELD_PARAMETER_LIST, SCSI_SNSCODE_NO_ADDITIONAL_INFO, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_SNSKEY_NO_SENSE, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG2, SM_DBG5, SM_RC_SUCCESS, smhexdump(), smIOSuccess, smsataLLIOStart(), smsatModeSelect6n10CB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatModeSelect6()

osGLOBAL bit32 smsatModeSelect6 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 13676 of file smsat.c.

References agFALSE, agNULL, AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, BIT0_MASK, BIT1_MASK, BIT2_MASK, BIT3_MASK, BIT4_MASK, BIT5_MASK, BIT6_MASK, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, smIniScsiCmnd_t::expDataLength, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, MIN, MODESELECT_CACHING, MODESELECT_CONTROL_PAGE, MODESELECT_INFORMATION_EXCEPTION_CONTROL_PAGE, MODESELECT_READ_WRITE_ERROR_RECOVERY_PAGE, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_SET_FEATURES, SAT_SMART, SAT_SMART_DISABLE_OPERATIONS, SAT_SMART_ENABLE_OPERATIONS, smSatIOContext_s::satCompleteCB, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_MODE_SELECT6_AWRE_MASK, SCSI_MODE_SELECT6_DCR_MASK, SCSI_MODE_SELECT6_DTE_MASK, SCSI_MODE_SELECT6_EER_MASK, SCSI_MODE_SELECT6_PER_MASK, SCSI_MODE_SELECT6_PERF_MASK, SCSI_MODE_SELECT6_PF_MASK, SCSI_MODE_SELECT6_RC_MASK, SCSI_MODE_SELECT6_TEST_MASK, SCSI_MODE_SELECT6_WCE_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_INVALID_FIELD_PARAMETER_LIST, SCSI_SNSCODE_NO_ADDITIONAL_INFO, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_SNSKEY_NO_SENSE, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG5, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatModeSelect6n10CB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatModeSelect6n10_1()

◆ smsatModeSense10()

osGLOBAL bit32 smsatModeSense10 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 9930 of file smsat.c.

References agFALSE, agNULL, agTRUE, smIniScsiCmnd_t::cdb, smIniScsiCmnd_t::expDataLength, smDeviceData_s::id, index, smSatIOContext_s::interruptContext, MIN, MODE_SENSE10_CACHING_LEN, MODE_SENSE10_CACHING_LLBAA_LEN, MODE_SENSE10_CONTROL_PAGE_LEN, MODE_SENSE10_CONTROL_PAGE_LLBAA_LEN, MODE_SENSE10_INFORMATION_EXCEPTION_CONTROL_PAGE_LEN, MODE_SENSE10_INFORMATION_EXCEPTION_CONTROL_PAGE_LLBAA_LEN, MODE_SENSE10_READ_WRITE_ERROR_RECOVERY_PAGE_LEN, MODE_SENSE10_READ_WRITE_ERROR_RECOVERY_PAGE_LLBAA_LEN, MODE_SENSE10_RETURN_ALL_PAGES_LEN, MODE_SENSE10_RETURN_ALL_PAGES_LLBAA_LEN, MODESENSE_CACHING, MODESENSE_CONTROL_PAGE, MODESENSE_INFORMATION_EXCEPTION_CONTROL_PAGE, MODESENSE_READ_WRITE_ERROR_RECOVERY_PAGE, MODESENSE_RETURN_ALL_PAGES, MODESENSE_VENDOR_SPECIFIC_PAGE, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smDeviceData_s::satLookAheadEnabled, smDeviceData_s::satNCQ, smDeviceData_s::satSMARTEnabled, smDeviceData_s::satWriteCacheEnabled, SCSI_LINK_MASK, SCSI_MODE_SENSE10_LLBAA_MASK, SCSI_MODE_SENSE10_PAGE_CODE_MASK, SCSI_MODE_SENSE10_PC_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_COMMAND, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, smScsiInitiatorRequest::scsiCmnd, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG5, sm_memcpy(), SM_RC_SUCCESS, smIOSuccess, smIOUnderRun, smsatSetSensePayload(), and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatModeSense6()

osGLOBAL bit32 smsatModeSense6 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

◆ smsatNonChainedWriteNVerify_Verify()

◆ smsatPacket()

osGLOBAL bit32 smsatPacket ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

SAT implementation for ATAPI Packet Command.

SAT implementation for ATAPI Packet and send FIS request to LL layer.

Parameters
tiRootPointer to TISA initiator driver/port instance.
tiIORequestPointer to TISA I/O request context for this I/O.
tiDeviceHandlePointer to TISA device handle for this I/O.
tiScsiRequestPointer to TISA SCSI I/O request and SGL list.
smSatIOContext_tPointer to the SAT IO Context
Returns
If command is started successfully
  • smIOSuccess: I/O request successfully initiated.
  • smIOBusy: No resources available, try again later.
  • smIONoDevice: Invalid device handle.
  • smIOError: Other errors.

Definition at line 4017 of file smsat.c.

References AGSA_SATA_PROTOCOL_D2H_PKT, AGSA_SATA_PROTOCOL_H2D_PKT, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, smScsiInitiatorRequest::dataDirection, agsaFisRegH2DData_s::device, smIniScsiCmnd_t::expDataLength, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_PACKET, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMADIRSupport, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG3, smDirectionIn, smsataLLIOStart(), smsatPacketCB(), and status.

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatPassthrough()

osGLOBAL bit32 smsatPassthrough ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 17636 of file smsat.c.

References AGSA_SATA_ATAP_EXECDEVDIAG, AGSA_SATA_PROTOCOL_DEV_RESET, AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_NON_DATA, AGSA_SATA_PROTOCOL_PIO_READ, AGSA_SATA_PROTOCOL_PIO_WRITE, AGSA_SATA_PROTOCOL_SRST_ASSERT, smAtaPassThroughHdr_s::byteBlock, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, smAtaPassThroughHdr_s::ckCond, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, smAtaPassThroughHdr_s::extend, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smAtaPassThroughHdr_s::mulCount, smAtaPassThroughHdr_s::offline, smAtaPassThroughHdr_s::opc, osti_memset, smSatIOContext_s::pFis, smAtaPassThroughHdr_s::proto, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smSatIOContext_s::satCompleteCB, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatPassthroughCB(), smsatSetSensePayload(), status, smAtaPassThroughHdr_s::tDir, tdsmIOCompletedCB(), smAtaPassThroughHdr_s::tlength, and smAtaPassThroughHdr_s::tType.

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatPrepareNewIO()

osGLOBAL smSatIOContext_t * smsatPrepareNewIO ( smSatInternalIo_t satNewIntIo,
smIORequest_t smOrgIORequest,
smDeviceData_t satDevData,
smIniScsiCmnd_t scsiCmnd,
smSatIOContext_t satOrgIOContext 
)

Definition at line 1964 of file smsat.c.

References agNULL, smIORequestBody_s::agSATARequestBody, smIniScsiCmnd_t::cdb, agsaSATAInitiatorRequest_s::fis, agsaSATAHostFis_u::fisRegHostToDev, smSatIOContext_s::interruptContext, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pScsiCmnd, smSatIOContext_s::pSense, smSatIOContext_s::psmDeviceHandle, smSatIOContext_s::pSmSenseData, smIORequestBody_s::SATA, smSatIOContext_s::satIntIoContext, smSatInternalIo_s::satIntRequestBody, smSatInternalIo_s::satIntSmScsiXchg, smIORequestBody_s::satIOContext, smSatIOContext_s::satOrgIOContext, smSatInternalIo_s::satOrgSmIORequest, smScsiInitiatorRequest::scsiCmnd, smSenseData_t::senseData, smIORequestBody_s::sensePayload, SM_DBG3, sm_memcpy(), smSatIOContext_s::smRequestBody, smSatIOContext_s::smScsiXchg, smIORequestBody_s::smSenseData, and smIORequestBody_s::transport.

Referenced by smsatChainedDataIOCB(), smsatChainedVerifyCB(), smsatChainedWriteNVerifyCB(), smsatIDStartCB(), smsatModeSelect6n10CB(), smsatNonChainedWriteNVerifyCB(), smsatPacketCB(), smsatReassignBlocksCB(), smsatRequestSenseCB(), smsatResetDeviceCB(), smsatSendDiagnosticCB(), smsatSetFeaturesDMACB(), smsatSetFeaturesPIOCB(), smsatSetFeaturesReadLookAheadCB(), smsatSetFeaturesVolatileWriteCacheCB(), smsatSMARTEnableCB(), smsatStartCheckPowerMode(), smsatStartResetDevice(), smsatStartStopUnitCB(), and smsatTestUnitReadyCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatPrintSgl()

osGLOBAL void smsatPrintSgl ( smRoot_t smRoot,
agsaEsgl_t agEsgl,
bit32  idx 
)

Definition at line 20648 of file smsat.c.

References agsaEsgl_s::descriptor, agsaSgl_s::extReserved, agsaSgl_s::len, agsaSgl_s::sgLower, agsaSgl_s::sgUpper, and SM_DBG3.

Referenced by smsatSplitSGL().

Here is the caller graph for this function:

◆ smsatRead10()

osGLOBAL FORCEINLINE bit32 smsatRead10 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 4784 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_DMA_READ, AGSA_SATA_PROTOCOL_FPDMA_READ, AGSA_SATA_PROTOCOL_PIO_READ, agTRUE, smSatIOContext_s::ATACmd, BIT48_ADDRESS_TL_LIMIT, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smDeviceData_s::id, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, NON_BIT48_ADDRESS_TL_LIMIT, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_DMA, SAT_READ_DMA_EXT, SAT_READ_FPDMA_QUEUED, SAT_READ_SECTORS, SAT_READ_SECTORS_EXT, SATA_SECTOR_SIZE, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_FUA_NV_MASK, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_READ10_FUA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG2, SM_DBG5, SM_DBG6, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedDataIOCB(), smsatCheckLimit(), smsatComputeCDB10LBA(), smsatComputeCDB10TL(), smsatComputeLoopNum(), smsatNonChainedDataIOCB(), smsatSetSensePayload(), smsatSplitSGL(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatRead12()

osGLOBAL bit32 smsatRead12 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 5251 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_DMA_READ, AGSA_SATA_PROTOCOL_FPDMA_READ, AGSA_SATA_PROTOCOL_PIO_READ, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_DMA, SAT_READ_DMA_EXT, SAT_READ_FPDMA_QUEUED, SAT_READ_SECTORS, SAT_READ_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_FUA_NV_MASK, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_READ12_FUA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_DBG6, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedDataIOCB(), smsatCheckLimit(), smsatComputeCDB12LBA(), smsatComputeCDB12TL(), smsatComputeLoopNum(), smsatNonChainedDataIOCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatRead16()

osGLOBAL bit32 smsatRead16 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 5690 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_DMA_READ, AGSA_SATA_PROTOCOL_FPDMA_READ, AGSA_SATA_PROTOCOL_PIO_READ, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_DMA, SAT_READ_DMA_EXT, SAT_READ_FPDMA_QUEUED, SAT_READ_SECTORS, SAT_READ_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_FUA_NV_MASK, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_READ16_FUA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_DBG6, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedDataIOCB(), smsatCheckLimit(), smsatComputeCDB16LBA(), smsatComputeCDB16TL(), smsatComputeLoopNum(), smsatNonChainedDataIOCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatRead6()

GLOBAL bit32 smsatRead6 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 4467 of file smsat.c.

References AGSA_SATA_PROTOCOL_DMA_READ, AGSA_SATA_PROTOCOL_FPDMA_READ, AGSA_SATA_PROTOCOL_PIO_READ, agTRUE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_DMA, SAT_READ_DMA_EXT, SAT_READ_FPDMA_QUEUED, SAT_READ_SECTORS, SAT_READ_SECTORS_EXT, SAT_TR_LBA_LIMIT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG2, SM_DBG5, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatNonChainedDataIOCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatRead_1()

osGLOBAL bit32 smsatRead_1 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 17076 of file smsat.c.

References agFALSE, agNULL, AGSA_SATA_PROTOCOL_DMA_READ, AGSA_SATA_PROTOCOL_FPDMA_READ, AGSA_SATA_PROTOCOL_PIO_READ, smSatIOContext_s::ATACmd, BIT48_ADDRESS_TL_LIMIT, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, NON_BIT48_ADDRESS_TL_LIMIT, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pScsiCmnd, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_READ_DMA, SAT_READ_DMA_EXT, SAT_READ_FPDMA_QUEUED, SAT_READ_SECTORS, SAT_READ_SECTORS_EXT, SATA_SECTOR_SIZE, smSatIOContext_s::satCompleteCB, smSatIOContext_s::satOrgIOContext, SCSI_READ10_FUA_MASK, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG2, SM_DBG5, sm_memset(), SM_RC_FAILURE, smsataLLIOStart(), smsatChainedDataIOCB(), smsatSplitSGL(), smSatIOContext_s::smScsiXchg, and status.

Referenced by smsatChainedDataIOCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatReadBuffer()

osGLOBAL bit32 smsatReadBuffer ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 16451 of file smsat.c.

References agNULL, AGSA_SATA_PROTOCOL_PIO_READ, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, READ_BUFFER_DATA_MODE, READ_BUFFER_DESCRIPTOR_MODE, READ_BUFFER_DESCRIPTOR_MODE_DATA_LEN, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_READ_BUFFER, smSatIOContext_s::satCompleteCB, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_READ_BUFFER_MODE_MASK, SCSI_SNSCODE_INVALID_COMMAND, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG5, SM_RC_SUCCESS, smIOSuccess, smIOUnderRun, smsataLLIOStart(), smsatReadBufferCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatReadCapacity10()

◆ smsatReadCapacity16()

◆ smsatReadMediaSerialNumber()

osGLOBAL bit32 smsatReadMediaSerialNumber ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 16251 of file smsat.c.

References agNULL, AGSA_SATA_PROTOCOL_PIO_READ, agTRUE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaSATAIdentifyData_s::commandSetFeatureDefault, agsaFisRegH2DData_s::control, agsaSATAIdentifyData_s::currentMediaSerialNumber, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, smIniScsiCmnd_t::expDataLength, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smDeviceData_s::IDDeviceValid, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, MIN, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_SECTORS, SAT_READ_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satIdentifyData, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG5, sm_memcpy(), SM_RC_SUCCESS, smDetailOtherError, smhexdump(), smIOFailed, smIOSuccess, smsataLLIOStart(), smsatReadMediaSerialNumberCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatReassignBlocks()

osGLOBAL bit32 smsatReassignBlocks ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 16908 of file smsat.c.

References AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, smSatIOContext_s::LBA, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::ParmIndex, smSatIOContext_s::ParmLen, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_VERIFY_SECTORS, SAT_READ_VERIFY_SECTORS_EXT, smSatIOContext_s::satCompleteCB, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_REASSIGN_BLOCKS_LONGLBA_MASK, SCSI_REASSIGN_BLOCKS_LONGLIST_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG5, sm_memcpy(), sm_memset(), SM_RC_SUCCESS, smhexdump(), smIOSuccess, smsataLLIOStart(), smsatReassignBlocksCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatReassignBlocks_1()

osGLOBAL bit32 smsatReassignBlocks_1 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext,
smSatIOContext_t satOrgIOContext 
)

◆ smsatReassignBlocks_2()

osGLOBAL bit32 smsatReassignBlocks_2 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext,
bit8 LBA 
)

Definition at line 19268 of file smsat.c.

References AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_WRITE_DMA, SAT_WRITE_DMA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS, SAT_WRITE_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_SNSCODE_WRITE_ERROR_AUTO_REALLOCATION_FAILED, SCSI_SNSKEY_HARDWARE_ERROR, SCSI_STAT_CHECK_CONDITION, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG5, SM_DBG6, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatReassignBlocksCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatReassignBlocksCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatReportLun()

◆ smsatRequestSense()

osGLOBAL bit32 smsatRequestSense ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 9073 of file smsat.c.

References agNULL, AGSA_SATA_PROTOCOL_NON_DATA, smIORequestBody_s::agSATARequestBody, agTRUE, ATA_REMOVABLE_MEDIA_DEVICE_MASK, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, smIniScsiCmnd_t::expDataLength, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaSATAInitiatorRequest_s::fis, agsaSATAHostFis_u::fisRegHostToDev, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSgl_t::len, smSgl_t::lower, MIN, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pScsiCmnd, smSatIOContext_s::pSense, smSatIOContext_s::psmDeviceHandle, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_SMART, SAT_SMART_RETURN_STATUS, smIORequestBody_s::SATA, smSatIOContext_s::satCompleteCB, smSatIOContext_s::satIntIoContext, smSatInternalIo_s::satIntRequestBody, smSatInternalIo_s::satIntSmIORequest, smSatInternalIo_s::satIntSmScsiXchg, smIORequestBody_s::satIOContext, smSatIOContext_s::satOrgIOContext, smSatInternalIo_s::satOrgSmIORequest, smDeviceData_s::satSMARTEnabled, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_HARDWARE_IMPENDING_FAILURE, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_SNSKEY_NO_SENSE, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SENSE_DATA_LENGTH, smSenseData_t::senseData, smIORequestBody_s::sensePayload, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG4, SM_DBG5, sm_memcpy(), SM_RC_SUCCESS, smIOSuccess, smSatIOContext_s::smRequestBody, smsataLLIOStart(), smsatAllocIntIoResource(), smsatFreeIntIoResource(), smsatRequestSense_1(), smsatRequestSenseCB(), smsatSetSensePayload(), smIORequestBody_s::smSenseData, smScsiInitiatorRequest::smSgl1, status, tdsmIOCompletedCB(), smIORequestBody_s::transport, smSgl_t::type, and smSgl_t::upper.

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatRequestSense_1()

◆ smsatRequestSenseForATAPI()

osGLOBAL bit32 smsatRequestSenseForATAPI ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

SAT implementation for SCSI REQUEST SENSE to ATAPI device.

SAT implementation for SCSI REQUEST SENSE.

Parameters
tiRootPointer to TISA initiator driver/port instance.
tiIORequestPointer to TISA I/O request context for this I/O.
tiDeviceHandlePointer to TISA device handle for this I/O.
tiScsiRequestPointer to TISA SCSI I/O request and SGL list.
smSatIOContext_tPointer to the SAT IO Context
Returns
If command is started successfully
  • smIOSuccess: I/O request successfully initiated.
  • smIOBusy: No resources available, try again later.
  • smIONoDevice: Invalid device handle.
  • smIOError: Other errors.

Definition at line 4213 of file smsat.c.

References AGSA_SATA_PROTOCOL_D2H_PKT, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, smScsiInitiatorRequest::dataDirection, agsaFisRegH2DData_s::device, smIniScsiCmnd_t::expDataLength, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_PACKET, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMADIRSupport, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smScsiInitiatorRequest::scsiCmnd, SCSIOPC_REQUEST_SENSE, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG3, smDirectionIn, smsataLLIOStart(), smsatRequestSenseForATAPICB(), and status.

Referenced by smsatPacketCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatResetDevice()

◆ smsatSendDiagnostic()

osGLOBAL bit32 smsatSendDiagnostic ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 11570 of file smsat.c.

References agFALSE, agNULL, AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_VERIFY_SECTORS, SAT_READ_VERIFY_SECTORS_EXT, SAT_SMART, SAT_SMART_EXEUTE_OFF_LINE_IMMEDIATE, smDeviceData_s::satBGPendingDiag, smSatIOContext_s::satCompleteCB, smDeviceData_s::satSMARTEnabled, smDeviceData_s::satSMARTSelfTest, smDeviceData_s::satVerifyState, SCSI_DEVOFFL_MASK, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_PF_MASK, SCSI_SEND_DIAGNOSTIC_SELFTEST_MASK, SCSI_SEND_DIAGNOSTIC_TEST_CODE_MASK, SCSI_SNSCODE_ATA_DEVICE_FEATURE_NOT_ENABLED, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ABORTED_COMMAND, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, SCSI_UNITOFFL_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatSendDiagnosticCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatSendDiagnostic_1()

◆ smsatSendDiagnostic_2()

◆ smsatSendIDDev()

osGLOBAL bit32 smsatSendIDDev ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

◆ smsatSendReadLogExt()

◆ smsatSetDeferredSensePayload()

osGLOBAL void smsatSetDeferredSensePayload ( smScsiRspSense_t pSense,
bit8  SnsKey,
bit32  SnsInfo,
bit16  SnsCode,
smSatIOContext_t satIOContext 
)

Definition at line 4453 of file smsat.c.

References SM_DBG2.

Referenced by smsatStartStopUnitCB(), and smsatSynchronizeCache10n16CB().

Here is the caller graph for this function:

◆ smsatSetDevInfo()

osGLOBAL void smsatSetDevInfo ( smDeviceData_t oneDeviceData,
agsaSATAIdentifyData_t SATAIdData 
)

Definition at line 2008 of file smsat.c.

References agFALSE, agNULL, agTRUE, agsaSATAIdentifyData_s::commandSetFeatureDefault, agsaSATAIdentifyData_s::commandSetFeatureEnabled, agsaSATAIdentifyData_s::commandSetFeatureEnabled1, agsaSATAIdentifyData_s::commandSetFeatureSupportedExt, agsaSATAIdentifyData_s::commandSetSupported, agsaSATAIdentifyData_s::commandSetSupported1, agsaSATAIdentifyData_s::dma_lba_iod_ios_stimer, agsaSATAIdentifyData_s::numOfUserAddressableSectorsHi, agsaSATAIdentifyData_s::numOfUserAddressableSectorsLo, agsaSATAIdentifyData_s::queueDepth, smDeviceData_s::sat48BitSupport, SAT_DEV_STATE_NORMAL, smDeviceData_s::satAbortAfterReset, smDeviceData_s::satAbortCalled, agsaSATAIdentifyData_s::sataCapabilities, agsaSATAIdentifyData_s::sataFeaturesSupported, smDeviceData_s::satDeviceFaultState, smDeviceData_s::satDMADIRSupport, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASetupAA, smDeviceData_s::satDMASupport, smDeviceData_s::satDriveState, smDeviceData_s::satFormatState, smDeviceData_s::satLookAheadEnabled, smDeviceData_s::satMaxUserAddrSectors, smDeviceData_s::satNCQ, smDeviceData_s::satNCQMaxIO, smDeviceData_s::satNCQQMgntCmd, smDeviceData_s::satReadLookAheadSupport, smDeviceData_s::satRemovableMedia, smDeviceData_s::satRemovableMediaEnabled, smDeviceData_s::satSectorDone, smDeviceData_s::satSMARTEnabled, smDeviceData_s::satSMARTFeatureSet, smDeviceData_s::satSMARTSelfTest, smDeviceData_s::satTmTaskTag, smDeviceData_s::satUltraDMAMode, smDeviceData_s::satVerifyState, smDeviceData_s::satVolatileWriteCacheSupport, smDeviceData_s::satWriteCacheEnabled, smDeviceData_s::satWWNSupport, SM_DBG3, agsaSATAIdentifyData_s::ultraDMAModes, agsaSATAIdentifyData_s::word62_74, and agsaSATAIdentifyData_s::word77.

Referenced by smsatIDStartCB(), and smsatInquiryCB().

Here is the caller graph for this function:

◆ smsatSetFeaturesAA()

◆ smsatSetFeaturesDMA()

◆ smsatSetFeaturesPIO()

osGLOBAL bit32 smsatSetFeaturesPIO ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

SAT implementation for smsatSetFeaturePIO.

SAT implementation for satSetFeatures.

This function creates Set Features fis and sends the request to LL layer

Parameters
tiRootPointer to TISA initiator driver/port instance.
tiIORequestPointer to TISA I/O request context for this I/O.
tiDeviceHandlePointer to TISA device handle for this I/O.
tiScsiRequestPointer to TISA SCSI I/O request and SGL list.
smSatIOContext_tPointer to the SAT IO Context
Returns
If command is started successfully
  • smIOSuccess: I/O request successfully initiated.
  • smIOBusy: No resources available, try again later.
  • smIONoDevice: Invalid device handle.
  • smIOError: Other errors.

Definition at line 4133 of file smsat.c.

References AGSA_SATA_PROTOCOL_NON_DATA, agsaFisRegH2DHeader_s::c_pmPort, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_SET_FEATURES, smSatIOContext_s::satCompleteCB, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG2, SM_RC_FAILURE, smContext_t::smData, smsataLLIOStart(), smsatSetFeaturesPIOCB(), status, and smContext_t::tdData.

Referenced by smsatIDStartCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatSetFeaturesReadLookAhead()

◆ smsatSetFeaturesVolatileWriteCache()

◆ smsatSetSensePayload()

osGLOBAL void smsatSetSensePayload ( smScsiRspSense_t pSense,
bit8  SnsKey,
bit32  SnsInfo,
bit16  SnsCode,
smSatIOContext_t satIOContext 
)

Definition at line 3850 of file smsat.c.

References smScsiRspSense_t::addSenseCode, smScsiRspSense_t::addSenseLen, agNULL, smScsiRspSense_t::cmdSpecific, smSatIOContext_s::extend, smScsiRspSense_t::info, smSatIOContext_s::LBA_Upper_Nonzero, smSatIOContext_s::LBAHigh07, smSatIOContext_s::LBALow07, smSatIOContext_s::LBAMid07, smSatIOContext_s::pSmSenseData, SCSI_SNSCODE_ATA_PASS_THROUGH_INFORMATION_AVAILABLE, SCSI_SNSKEY_ILLEGAL_REQUEST, smSatIOContext_s::Sector_Cnt_Upper_Nonzero, smScsiRspSense_t::senseKey, smSenseData_t::senseLen, smScsiRspSense_t::senseQual, smScsiRspSense_t::skeySpecific, SM_DBG1, SM_DBG2, SM_DBG3, and smScsiRspSense_t::snsRespCode.

Referenced by smsatChainedDataIOCB(), smsatChainedVerifyCB(), smsatChainedWriteNVerifyCB(), smsatCheckPowerModePassCB(), smsatDefaultTranslation(), smsatFormatUnit(), smsatIDDataPassCB(), smsatInquiry(), smsatInquiryCB(), smsatInquiryIntCB(), smsatIOCompleted(), smsatIOStart(), smsatLogSense(), smsatLogSenseCB(), smsatModeSelect10(), smsatModeSelect6(), smsatModeSelect6n10CB(), smsatModeSense10(), smsatModeSense6(), smsatNonChainedVerifyCB(), smsatNonChainedWriteNVerifyCB(), smsatPacketCB(), smsatPassthrough(), smsatPassthroughCB(), smsatRead10(), smsatRead12(), smsatRead16(), smsatRead6(), smsatReadBuffer(), smsatReadBufferCB(), smsatReadCapacity10(), smsatReadCapacity16(), smsatReadMediaSerialNumber(), smsatReadMediaSerialNumberCB(), smsatReassignBlocks(), smsatReassignBlocks_2(), smsatReassignBlocksCB(), smsatReportLun(), smsatRequestSense(), smsatRequestSenseCB(), smsatSendDiagnostic(), smsatSendDiagnosticCB(), smsatSMARTEnablePassCB(), smsatSMARTReadLogCB(), smsatSMARTRStatusPassCB(), smsatStartStopUnit(), smsatStartStopUnitCB(), smsatSynchronizeCache10(), smsatSynchronizeCache10n16CB(), smsatSynchronizeCache16(), smsatTestUnitReady(), smsatTestUnitReadyCB(), smsatVerify10(), smsatVerify10CB(), smsatVerify12(), smsatVerify16(), smsatWrite10(), smsatWrite12(), smsatWrite16(), smsatWrite6(), smsatWriteAndVerify10(), smsatWriteAndVerify12(), smsatWriteAndVerify16(), smsatWriteBuffer(), smsatWriteBufferCB(), smsatWriteSame10(), smsatWriteSame10CB(), and smsatWriteSame16().

◆ smsatSMARTEnable()

◆ smsatSplitSGL()

◆ smsatStartCheckPowerMode()

osGLOBAL bit32 smsatStartCheckPowerMode ( smRoot_t smRoot,
smIORequest_t currentTaskTag,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

◆ smsatStartIDDev()

◆ smsatStartResetDevice()

osGLOBAL bit32 smsatStartResetDevice ( smRoot_t smRoot,
smIORequest_t currentTaskTag,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

◆ smsatStartStopUnit()

osGLOBAL bit32 smsatStartStopUnit ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 12166 of file smsat.c.

References agNULL, AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_FLUSH_CACHE, SAT_FLUSH_CACHE_EXT, SAT_MEDIA_EJECT, SAT_READ_VERIFY_SECTORS, SAT_READ_VERIFY_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satRemovableMedia, smDeviceData_s::satRemovableMediaEnabled, SCSI_IMMED_MASK, SCSI_LINK_MASK, SCSI_LOEJ_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_START_MASK, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatSetSensePayload(), smsatStartStopUnitCB(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatStartStopUnit_1()

◆ smsatSynchronizeCache10()

osGLOBAL bit32 smsatSynchronizeCache10 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

◆ smsatSynchronizeCache16()

osGLOBAL bit32 smsatSynchronizeCache16 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

◆ smsatTagAlloc()

FORCEINLINE bit32 smsatTagAlloc ( smRoot_t smRoot,
smDeviceData_t pSatDevData,
bit8 pTag 
)

Definition at line 20146 of file smsat.c.

References agFALSE, agTRUE, smDeviceData_s::freeSATAFDMATagBitmap, smDeviceData_s::satNCQMaxIO, SM_NCQ_TAG_LOCK, smsatBitSet(), smsatBitTest(), tdsmBitScanForward(), tdsmSingleThreadedEnter(), and tdsmSingleThreadedLeave().

Referenced by smsataLLIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatTagRelease()

FORCEINLINE bit32 smsatTagRelease ( smRoot_t smRoot,
smDeviceData_t pSatDevData,
bit8  tag 
)

Definition at line 20187 of file smsat.c.

References agFALSE, agTRUE, smDeviceData_s::freeSATAFDMATagBitmap, smDeviceData_s::satNCQMaxIO, SM_DBG1, SM_NCQ_TAG_LOCK, smsatBitClear(), tdsmSingleThreadedEnter(), and tdsmSingleThreadedLeave().

Referenced by smllSATACompleted(), and smsataLLIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatTaskManagement()

◆ smsatTestUnitReady()

osGLOBAL bit32 smsatTestUnitReady ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 8577 of file smsat.c.

References AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_DEV_STATE_FORMAT_IN_PROGRESS, SAT_GET_MEDIA_STATUS, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDeviceFaultState, smDeviceData_s::satDriveState, smDeviceData_s::satPendingIO, smDeviceData_s::satRemovableMedia, smDeviceData_s::satRemovableMediaEnabled, smDeviceData_s::satStopState, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_UNIT_FAILURE, SCSI_SNSCODE_LOGICAL_UNIT_NOT_READY_FORMAT_IN_PROGRESS, SCSI_SNSCODE_LOGICAL_UNIT_NOT_READY_INITIALIZING_COMMAND_REQUIRED, SCSI_SNSKEY_HARDWARE_ERROR, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_SNSKEY_NOT_READY, SCSI_STAT_CHECK_CONDITION, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatSetSensePayload(), smsatTestUnitReady_1(), smsatTestUnitReadyCB(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatTestUnitReady_1()

◆ smsatTmAbortTask()

◆ smsatVerify10()

osGLOBAL bit32 smsatVerify10 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 7750 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_VERIFY_SECTORS, SAT_READ_VERIFY_SECTORS_EXT, SAT_TR_LBA_LIMIT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_VERIFY_BYTCHK_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedVerifyCB(), smsatCheckLimit(), smsatComputeLoopNum(), smsatNonChainedVerifyCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatVerify12()

osGLOBAL bit32 smsatVerify12 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 8033 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_VERIFY_SECTORS, SAT_READ_VERIFY_SECTORS_EXT, SAT_TR_LBA_LIMIT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_VERIFY_BYTCHK_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedVerifyCB(), smsatCheckLimit(), smsatComputeCDB12LBA(), smsatComputeCDB12TL(), smsatComputeLoopNum(), smsatNonChainedVerifyCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatVerify16()

osGLOBAL bit32 smsatVerify16 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 8315 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_NON_DATA, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_READ_VERIFY_SECTORS, SAT_READ_VERIFY_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_VERIFY_BYTCHK_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedVerifyCB(), smsatCheckLimit(), smsatComputeCDB16LBA(), smsatComputeCDB16TL(), smsatComputeLoopNum(), smsatNonChainedVerifyCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWrite10()

osGLOBAL FORCEINLINE bit32 smsatWrite10 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 6458 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, agTRUE, smSatIOContext_s::ATACmd, BIT48_ADDRESS_TL_LIMIT, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, NON_BIT48_ADDRESS_TL_LIMIT, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_TR_LBA_LIMIT, SAT_WRITE_DMA, SAT_WRITE_DMA_EXT, SAT_WRITE_DMA_FUA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS, SAT_WRITE_SECTORS_EXT, SATA_SECTOR_SIZE, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_FUA_NV_MASK, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_WRITE10_FUA_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG2, SM_DBG5, SM_DBG6, SM_RC_FAILURE, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedDataIOCB(), smsatCheckLimit(), smsatComputeCDB10LBA(), smsatComputeCDB10TL(), smsatComputeLoopNum(), smsatNonChainedDataIOCB(), smsatSetSensePayload(), smsatSplitSGL(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWrite12()

osGLOBAL bit32 smsatWrite12 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 6902 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_WRITE_DMA, SAT_WRITE_DMA_EXT, SAT_WRITE_DMA_FUA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS, SAT_WRITE_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_FUA_NV_MASK, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_WRITE12_FUA_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_DBG6, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedDataIOCB(), smsatCheckLimit(), smsatComputeCDB12LBA(), smsatComputeCDB12TL(), smsatComputeLoopNum(), smsatNonChainedDataIOCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWrite16()

osGLOBAL bit32 smsatWrite16 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 7324 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_WRITE_DMA, SAT_WRITE_DMA_EXT, SAT_WRITE_DMA_FUA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS, SAT_WRITE_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_FUA_NV_MASK, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_WRITE16_FUA_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_DBG6, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedDataIOCB(), smsatCheckLimit(), smsatComputeCDB16LBA(), smsatComputeCDB16TL(), smsatComputeLoopNum(), smsatNonChainedDataIOCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWrite6()

osGLOBAL bit32 smsatWrite6 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 6142 of file smsat.c.

References AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, agTRUE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_TR_LBA_LIMIT, SAT_WRITE_DMA, SAT_WRITE_DMA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS, SAT_WRITE_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatNonChainedDataIOCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWrite_1()

osGLOBAL bit32 smsatWrite_1 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 17352 of file smsat.c.

References agFALSE, agNULL, AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, smSatIOContext_s::ATACmd, BIT48_ADDRESS_TL_LIMIT, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, NON_BIT48_ADDRESS_TL_LIMIT, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pScsiCmnd, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_WRITE_DMA, SAT_WRITE_DMA_EXT, SAT_WRITE_DMA_FUA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS, SAT_WRITE_SECTORS_EXT, SATA_SECTOR_SIZE, smSatIOContext_s::satCompleteCB, smSatIOContext_s::satOrgIOContext, SCSI_WRITE10_FUA_MASK, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG2, SM_DBG5, sm_memset(), SM_RC_FAILURE, smsataLLIOStart(), smsatChainedDataIOCB(), smsatSplitSGL(), smSatIOContext_s::smScsiXchg, and status.

Referenced by smsatChainedDataIOCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWriteAndVerify10()

osGLOBAL bit32 smsatWriteAndVerify10 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 14969 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_WRITE_DMA, SAT_WRITE_DMA_EXT, SAT_WRITE_DMA_FUA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS, SAT_WRITE_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_WRITE_N_VERIFY10_FUA_MASK, SCSI_WRITE_N_VERIFY_BYTCHK_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedWriteNVerifyCB(), smsatCheckLimit(), smsatComputeLoopNum(), smsatNonChainedWriteNVerifyCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWriteAndVerify12()

osGLOBAL bit32 smsatWriteAndVerify12 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 15398 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::LoopNum2, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_WRITE_DMA, SAT_WRITE_DMA_EXT, SAT_WRITE_DMA_FUA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS, SAT_WRITE_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_WRITE12_FUA_MASK, SCSI_WRITE_N_VERIFY_BYTCHK_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_DBG6, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedWriteNVerifyCB(), smsatCheckLimit(), smsatComputeCDB12LBA(), smsatComputeCDB12TL(), smsatComputeLoopNum(), smsatNonChainedWriteNVerifyCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWriteAndVerify16()

osGLOBAL bit32 smsatWriteAndVerify16 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 15823 of file smsat.c.

References agFALSE, AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, agTRUE, smSatIOContext_s::ATACmd, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, smSatIOContext_s::currentLBA, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::LoopNum, smSatIOContext_s::OrgTL, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_WRITE_DMA, SAT_WRITE_DMA_EXT, SAT_WRITE_DMA_FUA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS, SAT_WRITE_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_WRITE16_FUA_MASK, SCSI_WRITE_N_VERIFY_BYTCHK_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_DBG6, sm_memset(), SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatChainedWriteNVerifyCB(), smsatCheckLimit(), smsatComputeCDB16LBA(), smsatComputeCDB16TL(), smsatComputeLoopNum(), smsatNonChainedWriteNVerifyCB(), smsatSetSensePayload(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWriteBuffer()

osGLOBAL bit32 smsatWriteBuffer ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 16707 of file smsat.c.

References agNULL, AGSA_SATA_PROTOCOL_PIO_READ, AGSA_SATA_PROTOCOL_PIO_WRITE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, SAT_WRITE_BUFFER, smSatIOContext_s::satCompleteCB, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_READ_BUFFER_MODE_MASK, SCSI_SNSCODE_INVALID_COMMAND, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_STAT_GOOD, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, smScsiInitiatorRequest::sglVirtualAddr, SM_DBG1, SM_DBG5, SM_RC_SUCCESS, smhexdump(), smIOSuccess, smsataLLIOStart(), smsatSetSensePayload(), smsatWriteBufferCB(), status, tdsmIOCompletedCB(), WRITE_BUFFER_DATA_MODE, and WRITE_BUFFER_DL_MICROCODE_SAVE_MODE.

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWriteSame10()

osGLOBAL bit32 smsatWriteSame10 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

Definition at line 12498 of file smsat.c.

References AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE, agTRUE, agsaFisRegH2DHeader_s::c_pmPort, smIniScsiCmnd_t::cdb, agsaFisRegH2DHeader_s::command, agsaFisRegH2DData_s::control, agsaFisRegHostToDevice_s::d, agsaFisRegH2DData_s::device, agsaFisRegH2DHeader_s::features, agsaFisRegH2DData_s::featuresExp, agsaFisRegH2DHeader_s::fisType, agsaFisRegHostToDevice_s::h, smSatIOContext_s::interruptContext, agsaFisRegH2DData_s::lbaHigh, agsaFisRegH2DData_s::lbaHighExp, agsaFisRegH2DData_s::lbaLow, agsaFisRegH2DData_s::lbaLowExp, agsaFisRegH2DData_s::lbaMid, agsaFisRegH2DData_s::lbaMidExp, smSatIOContext_s::pFis, smSatIOContext_s::pSatDevData, smSatIOContext_s::pSense, smSatIOContext_s::pSmSenseData, smSatIOContext_s::reqType, agsaFisRegH2DData_s::reserved4, agsaFisRegH2DData_s::reserved5, smDeviceData_s::sat48BitSupport, SAT_TR_LBA_LIMIT, SAT_WRITE_DMA_EXT, SAT_WRITE_FPDMA_QUEUED, SAT_WRITE_SECTORS_EXT, smSatIOContext_s::satCompleteCB, smDeviceData_s::satDMAEnabled, smDeviceData_s::satDMASupport, smDeviceData_s::satMaxUserAddrSectors, smDeviceData_s::satNCQ, SCSI_LINK_MASK, SCSI_NACA_MASK, SCSI_SNSCODE_INVALID_FIELD_IN_CDB, SCSI_SNSCODE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE, SCSI_SNSKEY_ILLEGAL_REQUEST, SCSI_STAT_CHECK_CONDITION, SCSI_WRITE_SAME_LBDATA_MASK, SCSI_WRITE_SAME_PBDATA_MASK, smScsiInitiatorRequest::scsiCmnd, agsaFisRegH2DData_s::sectorCount, agsaFisRegH2DData_s::sectorCountExp, SM_DBG1, SM_DBG5, SM_RC_SUCCESS, smIOSuccess, smsataLLIOStart(), smsatSetSensePayload(), smsatWriteSame10CB(), status, and tdsmIOCompletedCB().

Referenced by smsatIOStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smsatWriteSame10_1()

◆ smsatWriteSame10_2()

◆ smsatWriteSame10_3()

◆ smsatWriteSame16()

osGLOBAL bit32 smsatWriteSame16 ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smScsiInitiatorRequest_t smScsiRequest,
smSatIOContext_t satIOContext 
)

◆ smSuperIOStart()

osGLOBAL bit32 smSuperIOStart ( smRoot_t smRoot,
smIORequest_t smIORequest,
smDeviceHandle_t smDeviceHandle,
smSuperScsiInitiatorRequest_t smSCSIRequest,
bit32  AddrHi,
bit32  AddrLo,
bit32  interruptContext 
)

◆ smTaskManagement()