FreeBSD kernel pms device code
|
#include <sys/cdefs.h>
#include <dev/pms/config.h>
#include <dev/pms/freebsd/driver/common/osenv.h>
#include <dev/pms/freebsd/driver/common/ostypes.h>
#include <dev/pms/freebsd/driver/common/osdebug.h>
#include <dev/pms/RefTisa/sallsdk/api/sa.h>
#include <dev/pms/RefTisa/sallsdk/api/saapi.h>
#include <dev/pms/RefTisa/sallsdk/api/saosapi.h>
#include <dev/pms/RefTisa/tisa/api/titypes.h>
#include <dev/pms/RefTisa/tisa/api/ostiapi.h>
#include <dev/pms/RefTisa/tisa/api/tiapi.h>
#include <dev/pms/RefTisa/tisa/api/tiglobal.h>
#include <dev/pms/RefTisa/tisa/sassata/sas/common/tdtypes.h>
#include <dev/pms/freebsd/driver/common/osstring.h>
#include <dev/pms/RefTisa/tisa/sassata/common/tdutil.h>
#include <dev/pms/RefTisa/tisa/sassata/common/tdsatypes.h>
#include <dev/pms/RefTisa/tisa/sassata/common/tdproto.h>
Go to the source code of this file.
This file contains initiator IO related functions in TD layer
Definition in file itdio.c.
__FBSDID | ( | "$FreeBSD$" | ) |
osGLOBAL FORCEINLINE bit32 itdssIOPrepareSGL | ( | tiRoot_t * | tiRoot, |
tdIORequestBody_t * | tdIORequestBody, | ||
tiSgl_t * | tiSgl1, | ||
void * | sglVirtualAddr | ||
) |
Definition at line 1750 of file itdio.c.
References agNULL, tdIORequestBody_s::agSASRequestBody, agsaSSPInitiatorRequest_s::agSgl, CLEAR_ESGL_EXTEND, tdIORequestBody_s::expDataLength, agsaSgl_s::extReserved, tdIORequestBody_s::InitiatorRegIO, tdIORequestBody_s::IOType, agsaSgl_s::len, tiSgl_s::len, tiSgl_s::lower, tdIORequestBody_s::SAS, agsaSgl_s::sgLower, agsaSgl_s::sgUpper, agsaSASRequestBody_u::sspInitiatorReq, TI_DBG1, TI_DBG6, tiError, tiSuccess, tdIORequestBody_s::transport, tiSgl_s::type, and tiSgl_s::upper.
Referenced by tiINIIOStart(), and tiINISuperIOStart().
osGLOBAL bit32 tiINIIOStart | ( | tiRoot_t * | tiRoot, |
tiIORequest_t * | tiIORequest, | ||
tiDeviceHandle_t * | tiDeviceHandle, | ||
tiScsiInitiatorRequest_t * | tiScsiRequest, | ||
void * | tiRequestBody, | ||
bit32 | interruptContext | ||
) |
Definition at line 100 of file itdio.c.
References agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_REQ_TYPE_UNKNOWN, AGSA_SSP_INIT_READ, AGSA_SSP_INIT_WRITE, tiScsiInitiatorRequest::agSgl1, agTRUE, tiIniScsiCmnd::cdb, tiScsiInitiatorRequest::dataDirection, tiIniScsiCmnd::expDataLength, FDS_SM, tdsaContext_s::itdsaIni, itdssIOCompleted(), itdssIOForDebugging1Completed(), itdssIOForDebugging2Completed(), itdssIOForDebugging3Completed(), itdssIOPrepareSGL(), tiLUN::lun, tiIniScsiCmnd::lun, tiIORequest::osData, ossaSSPCompleted(), osti_memcpy, osti_memset, saSSPStart(), SATA_ENABLE, tiScsiInitiatorRequest::scsiCmnd, tiScsiInitiatorRequest::sglVirtualAddr, smIOStart(), TASK_ACA, TASK_HEAD_OF_QUEUE, TASK_ORDERED, TASK_SIMPLE, tiIniScsiCmnd::taskAttribute, TD_SAS_DEVICE, TD_SATA_DEVICE, TD_TASK_ACA, TD_TASK_HEAD_OF_QUEUE, TD_TASK_ORDERED, TD_TASK_SIMPLE, smContext_t::tdData, tiDeviceHandle::tdData, tiRoot::tdData, tiIORequest::tdData, TDSA_INP_ENTER, TDSA_INP_LEAVE, tdsaRoot_s::tdsaAllShared, tdsaRotateQnumber(), TI_DBG1, TI_DBG4, TI_DBG5, TI_DBG6, tiBusy, tiDirectionIn, tiDirectionOut, tiError, tiIONoDevice, and tiSuccess.
osGLOBAL bit32 tiINIIOStartDif | ( | tiRoot_t * | tiRoot, |
tiIORequest_t * | tiIORequest, | ||
tiDeviceHandle_t * | tiDeviceHandle, | ||
tiScsiInitiatorRequest_t * | tiScsiRequest, | ||
void * | tiRequestBody, | ||
bit32 | interruptContext, | ||
tiDif_t * | difOption | ||
) |
osGLOBAL bit32 tiINISMPStart | ( | tiRoot_t * | tiRoot, |
tiIORequest_t * | tiIORequest, | ||
tiDeviceHandle_t * | tiDeviceHandle, | ||
tiSMPFrame_t * | tiSMPFrame, | ||
void * | tiSMPBody, | ||
bit32 | interruptContext | ||
) |
Definition at line 1123 of file itdio.c.
References tdsaDeviceData_s::agDevHandle, tdIORequestBody_s::agIORequest, agNULL, tdsaDeviceData_s::agRoot, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SMP_INIT_REQ, tdIORequestBody_s::agSASRequestBody, DEVICE_IS_SMP_TARGET, agsaSMPFrame_s::expectedRespLen, tiSMPFrame::expectedRespLen, agsaSMPFrame_s::flag, tiSMPFrame::flag, agsaSMPFrame_s::inFrameLen, agsaContext_s::osData, tiIORequest::osData, ossaSMPCAMCompleted(), agsaSMPFrame_s::outFrameBuf, tiSMPFrame::outFrameBuf, agsaSMPFrame_s::outFrameLen, tiSMPFrame::outFrameLen, tdIORequestBody_s::SAS, saSMPStart(), agsaSASRequestBody_u::smpFrame, tiDeviceHandle::tdData, tiIORequest::tdData, tdhexdump(), TDSA_INP_ENTER, TI_DBG1, TI_DBG6, tiBusy, tiError, tdIORequestBody_s::tiIORequest, tiSuccess, and tdIORequestBody_s::transport.
Referenced by agtiapi_StartSMP().
osGLOBAL bit32 tiINISuperIOStart | ( | tiRoot_t * | tiRoot, |
tiIORequest_t * | tiIORequest, | ||
tiDeviceHandle_t * | tiDeviceHandle, | ||
tiSuperScsiInitiatorRequest_t * | tiScsiRequest, | ||
void * | tiRequestBody, | ||
bit32 | interruptContext | ||
) |
Definition at line 644 of file itdio.c.
References agBOOLEAN, tdsaDeviceData_s::agDevHandle, agFALSE, tdIORequestBody_s::agIORequest, agNULL, tdIORequestBody_s::agRequestType, tdsaDeviceData_s::agRoot, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_REQ_TYPE_UNKNOWN, AGSA_SAS_ENABLE_DIF, AGSA_SAS_ENABLE_ENCRYPTION, AGSA_SSP_INIT_READ, AGSA_SSP_INIT_READ_INDIRECT, AGSA_SSP_INIT_WRITE, AGSA_SSP_INIT_WRITE_INDIRECT, tdIORequestBody_s::agSASRequestBody, tdIORequestBody_s::agSATARequestBody, tiSuperScsiInitiatorRequest::agSgl1, agTRUE, agsaSSPCmdInfoUnit_s::cdb, tiIniScsiCmnd::cdb, satIOContext_s::currentLBA, tiSuperScsiInitiatorRequest::dataDirection, agsaSSPInitiatorRequest_s::dataLength, tdsaDeviceData_s::DeviceType, agsaSSPInitiatorRequest_s::dif, tiSuperScsiInitiatorRequest::Dif, DIF_ACTION_FLAG_MASK, DIF_INSERT, agsaSSPCmdInfoUnit_s::efb_tp_taskAttribute, agsaSSPInitiatorRequest_s::encrypt, tiSuperScsiInitiatorRequest::Encrypt, tiIniScsiCmnd::expDataLength, tdIORequestBody_s::expDataLength, agsaSATAInitiatorRequest_s::fis, agsaSATAHostFis_u::fisRegHostToDev, agsaSSPInitiatorRequest_s::flag, agsaDif_s::flags, tiSuperScsiInitiatorRequest::flags, tdsaDeviceData_s::id, tdIORequestBody_s::InitiatorRegIO, satIOContext_s::interruptContext, tdIORequestBody_s::ioCompleted, tdIORequestBody_s::IOCompletionFunc, tdIORequestBody_s::ioStarted, tdIORequestBody_s::IOType, tdsaContext_s::itdsaIni, itdssIOCompleted(), itdssIOForDebugging1Completed(), itdssIOForDebugging2Completed(), itdssIOForDebugging3Completed(), itdssIOPrepareSGL(), agsaSSPCmdInfoUnit_s::lun, tiLUN::lun, tiIniScsiCmnd::lun, satIOContext_s::OrgTL, agsaContext_s::osData, tiIORequest::osData, ossaSSPCompleted(), osti_memcpy, osti_memset, satIOContext_s::pFis, satIOContext_s::pSatDevData, satIOContext_s::pScsiCmnd, satIOContext_s::pSense, satIOContext_s::ptiDeviceHandle, satIOContext_s::pTiSenseData, tdsaDeviceData_s::registered, tdIORequestBody_s::SAS, TDSASAddressID_s::sasAddressHi, tdsaDeviceData_s::SASAddressID, TDSASAddressID_s::sasAddressLo, saSSPStart(), tdIORequestBody_s::SATA, tdsaDeviceData_s::satDevData, satIOContext_s::satIntIoContext, tdIORequestBody_s::satIOContext, satIOContext_s::satOrgIOContext, tiSuperScsiInitiatorRequest::scsiCmnd, SCSIOPC_READ_10, SCSIOPC_READ_12, SCSIOPC_READ_16, SCSIOPC_READ_6, SCSIOPC_WRITE_10, SCSIOPC_WRITE_12, SCSIOPC_WRITE_16, SCSIOPC_WRITE_6, tiSenseData::senseData, tiSenseData::senseLen, tdIORequestBody_s::sensePayload, tiSuperScsiInitiatorRequest::sglVirtualAddr, tdIORequestBody_s::sglVirtualAddr, smContext_t::smData, smSuperIOStart(), agsaSSPInitiatorRequest_s::sspCmdIU, agsaSASRequestBody_u::sspInitiatorReq, agsaSSPInitiatorRequestIndirect_s::sspInitiatorReqAddrLower32, agsaSSPInitiatorRequestIndirect_s::sspInitiatorReqAddrUpper32, agsaSASRequestBody_u::sspInitiatorReqIndirect, agsaSSPInitiatorRequestIndirect_s::sspInitiatorReqLen, satIOContext_s::superIOFlag, TASK_ACA, TASK_HEAD_OF_QUEUE, TASK_ORDERED, TASK_SIMPLE, tiIniScsiCmnd::taskAttribute, TD_ASSERT, TD_SAS_DEVICE, TD_SATA_DEVICE, TD_TASK_ACA, TD_TASK_HEAD_OF_QUEUE, TD_TASK_ORDERED, TD_TASK_SIMPLE, smContext_t::tdData, tiDeviceHandle::tdData, tiRoot::tdData, tiIORequest::tdData, tdsaDeviceData_s::tdPortContext, tdsaRoot_s::tdsaAllShared, tdsaRotateQnumber(), TI_DBG1, TI_DBG2, TI_DBG3, TI_DBG4, TI_DBG5, TI_DBG6, TI_SCSI_INITIATOR_DIF, TI_SCSI_INITIATOR_ENCRYPT, TI_SCSI_INITIATOR_INDIRECT_CDB, tiBusy, tdIORequestBody_s::tiDevHandle, tiDirectionIn, tiDirectionOut, tiError, tiIONoDevice, tdIORequestBody_s::tiIORequest, satIOContext_s::tiRequestBody, satIOContext_s::tiScsiXchg, tdIORequestBody_s::tiSenseData, tiSuccess, tdIORequestBody_s::transport, and tdsaDeviceData_s::valid.
Referenced by agtiapi_StartIO().
osGLOBAL bit32 tiNumOfLunIOCTLreq | ( | tiRoot_t * | tiRoot, |
tiIORequest_t * | tiIORequest, | ||
tiDeviceHandle_t * | tiDeviceHandle, | ||
void * | tiRequestBody, | ||
tiIOCTLPayload_t * | agIOCTLPayload, | ||
void * | agParam1, | ||
void * | agParam2 | ||
) |
Definition at line 1790 of file itdio.c.
References tdsaDeviceData_s::agDevHandle, agFALSE, tdIORequestBody_s::agIORequest, agNULL, AGSA_RC_SUCCESS, AGSA_SSP_INIT_READ, tdIORequestBody_s::agSASRequestBody, agsaSSPInitiatorRequest_s::agSgl, agsaSSPCmdInfoUnit_s::cdb, CLEAR_ESGL_EXTEND, agsaSSPInitiatorRequest_s::dataLength, agsaSgl_s::extReserved, IOCTL_CALL_FAIL, IOCTL_CALL_PENDING, IOCTL_CALL_SUCCESS, agsaSgl_s::len, NULL, agsaContext_s::osData, ossaSSPIoctlCompleted(), osti_memset, ostiAllocMemory(), ostiFreeMemory(), REPORT_LUN_LEN, REPORT_LUN_OPCODE, tdIORequestBody_s::SAS, saSSPStart(), agsaSgl_s::sgLower, agsaSgl_s::sgUpper, agsaSSPInitiatorRequest_s::sspCmdIU, agsaSASRequestBody_u::sspInitiatorReq, status, tiDeviceHandle::tdData, tiRoot::tdData, tiIORequest::tdData, tdsaRoot_s::tdsaAllShared, tdIORequestBody_s::tiIORequest, tiSuccess, and tdIORequestBody_s::transport.
Referenced by tdsaGetNumOfLUNIOCTL().