52#ifdef INITIATOR_DRIVER
86 char *pLastUsedChar =
agNULL;
88 char globalStr[] =
"OSParms";
90 TI_DBG5((
"ttdssInit: start\n"));
98 buffer = &tmpBuffer[0];
99 buffLen =
sizeof (tmpBuffer);
110 OperatingOption = &Target->OperatingOption;
121 OperatingOption->UsecsPerTick =
123 OperatingOption->numXchgs = tgtMem->tdMem[1].numElements;
127 &Target->ttdsaXchgData,
129 OperatingOption->numXchgs
132 TI_DBG1((
"ttdInit: ttdsaXchgInit failed\n"));
181 char *pLastUsedChar =
agNULL;
183 char globalStr[] =
"Global";
184 char iniParmsStr[] =
"TargetParms";
186 TI_DBG5((
"ttdssGetOperatingOptionParams: start\n"));
195 pLastUsedChar = pLastUsedChar;
200 buffer = &tmpBuffer[0];
201 buffLen =
sizeof (tmpBuffer);
319 TI_DBG4((
"ttdssGetResource: start\n"));
329 for (i = 0 ; i < 10 ; i++)
384 TI_DBG4((
"ttdssGetResource: sas_resp_t size 0x%x %d\n",
388 TI_DBG4((
"ttdssGetResource: response size 0x%x %d\n", respSize,respSize));
390 TI_DBG4((
"ttdssGetResource: response size 0x%x %d\n", respSize,respSize));
409 TI_DBG4((
"ttdssGetResource: SMP response size 0x%x %d\n", smprespSize,smprespSize));
463 TI_DBG6((
"ttdssGetTargetParams: start\n"));
478 bit32 phyAddrLower, phyAddrUpper;
480 bit32 smpphyAddrLower, smpphyAddrUpper;
481 bit8 *smpvirtualAddr;
485 TI_DBG5((
"ttdsaXchgInit: start\n"));
524 for (i=0;i<maxNumXchgs;i++)
556 ttdsaXchg->
index = i;
571 TI_DBG5((
"ttdsaXchgInit: +1 before\n"));
572 if (i == (maxNumXchgs - 1))
575 TI_DBG5((
"ttdsaXchgInit: last one break\n"));
580 ttdsaXchg = ttdsaXchg + 1;
581 TI_DBG5((
"ttdsaXchgInit: +1 after\n"));
585 TI_DBG5((
"ttdsaXchgInit: pos 1\n"));
587 TI_DBG5((
"ttdsaXchgInit: pos 2\n"));
589 TI_DBG5((
"ttdsaXchgInit: pos 3\n"));
591 TI_DBG5((
"ttdsaXchgInit: pos 4\n"));
611 TI_DBG5((
"ttdsaXchgInit: end\n"));
623 ttdsaTgt_t *Target = (ttdsaTgt_t *)tdsaAllShared->
ttdsaTgt;
627 TI_DBG5((
"ttdsaXchgLinkInit: start\n"));
628 TI_DBG5((
"ttdsaXchgLinkInit: xchg %p\n",ttdsaXchg));
634 TI_DBG1((
"ttdsaXchgLinkInit: active xchg *****************; wrong\n"));
638 ttdsaXchg->
tag = 0xFFFF;
658 for (i = 0; i< ttdsaXchg->
respLen; i++)
662 TI_DBG5((
"!! ttdsaXchgLinkInit: data[%d] 0x%x\n", i, data[i]));
669 TI_DBG5((
"ttdsaXchgLinkInit: id %d\n", ttdsaXchg->
id));
678 TI_DBG5((
"ttdsaXchgLinkInit: end\n"));
694 ttdsaTgt_t *Target = (ttdsaTgt_t *)tdsaAllShared->
ttdsaTgt;
698 TI_DBG5((
"ttdsaXchgFreeStruct: start\n"));
699 TI_DBG5((
"ttdsaXchgFreeStruct: xchg %p\n",ttdsaXchg));
705 TI_DBG1((
"tdsaXchgFreeStruct: INACTIVE xchg *****************, wrong\n"));
709 ttdsaXchg->
tag = 0xFFFF;
729 for (i = 0; i< ttdsaXchg->
respLen; i++)
733 TI_DBG5((
"!! ttdsaXchgFreeStruct: data[%d] 0x%x\n", i, data[i]));
740 TI_DBG5((
"ttdsaXchgFreeStruct: id %d\n", ttdsaXchg->
id));
749 TI_DBG5((
"ttdsaXchgFreeStruct: end\n"));
762 ttdsaTgt_t *Target = (ttdsaTgt_t *)osData->
ttdsaTgt;
766 TI_DBG3 ((
"ttdsaXchgGetStruct: enter\n"));
769 if (
TDLIST_EMPTY(&(Target->ttdsaXchgData.xchgFreeList)))
772 TI_DBG1((
"ttdsaXchgGetStruct: no free ttdsaXchgData\n"));
781 TI_DBG1((
"ttdsaXchgGetStruct: Link NULL: PRBLM \n"));
789 TI_DBG1((
"ttdsaXchgGetStruct: ACTIVE xchg *****************, wrong\n"));
804 TI_DBG5((
"ttdsaXchgGetStruct: id %d\n", ttdsaXchg->id));
814 ttdsaTgt_t *Target = (ttdsaTgt_t *)tdsaAllShared->
ttdsaTgt;
815 ttdsaTgt_t *tmpTarget;
817#ifdef TD_DEBUG_ENABLE
824 if (
TDLIST_EMPTY(&(tmpTarget->ttdsaXchgData.xchgFreeList)))
827 TI_DBG1((
"ttdsaDumpallXchg: no FREE ttdsaXchgData\n"));
832 XchgList = tmpTarget->ttdsaXchgData.xchgFreeList.flink;
834 while(XchgList != &(tmpTarget->ttdsaXchgData.xchgFreeList))
836#ifdef TD_DEBUG_ENABLE
840 XchgList = XchgList->flink;
845 if (
TDLIST_EMPTY(&(tmpTarget->ttdsaXchgData.xchgBusyList)))
848 TI_DBG1((
"ttdsaDumpallXchg: no BUSY ttdsaXchgData\n"));
853 XchgList = tmpTarget->ttdsaXchgData.xchgBusyList.flink;
855 while(XchgList != &(tmpTarget->ttdsaXchgData.xchgBusyList))
857#ifdef TD_DEBUG_ENABLE
861 XchgList = XchgList->flink;
873tiTGTPassthroughCmndRegister(
876 tiPassthroughProtocol_t tiProtocol,
877 tiPassthroughSubProtocol_t tiSubProtocol,
878 tiPassthroughFrameType_t tiFrameType,
879 ostiProcessPassthroughCmnd_t agPasthroughCB
884 ttdsaTgt_t *Target = (ttdsaTgt_t *)tdsaAllShared->
ttdsaTgt;
886 TI_DBG1((
"tiTGTPassthroughCmndRegister: start\n"));
888 if (tiProtocol != tiSASATA)
890 TI_DBG1((
"tiTGTPassthroughCmndRegister: not supported protocol %d\n", tiProtocol));
894 if (tiSubProtocol != tiSSP || tiSubProtocol != tiSTP || tiSubProtocol != tiSMP)
896 TI_DBG1((
"tiTGTPassthroughCmndRegister: not supported sub protocol %d\n", tiSubProtocol));
901 if (tiFrameType == tiSMPResponse)
903 TI_DBG1((
"tiTGTPassthroughCmndRegister: SMP response frametype %d\n"));
904 Target->PasthroughCB = agPasthroughCB;
907 else if (tiFrameType == tiSSPPMC)
909 TI_DBG1((
"tiTGTPassthroughCmndRegister: RMC response frametype %d\n"));
910 Target->PasthroughCB = agPasthroughCB;
914 TI_DBG1((
"tiTGTPassthroughCmndRegister: not supported frametype %d\n", tiFrameType));
#define DEFAULT_KEY_BUFFER_SIZE
#define DEFAULT_MAX_TARGETS
U32 ostiGetTransportParam(tiRoot_t *ptiRoot, S08 *key, S08 *subkey1, S08 *subkey2, S08 *subkey3, S08 *subkey4, S08 *subkey5, S08 *valueName, S08 *buffer, U32 bufferLen, U32 *lenReceived)
#define AG_WORD_ALIGN_MASK
#define AG_WORD_ALIGN_ADD
#define osti_strncmp(s1, s2, n)
#define osti_strtoul(nptr, endptr, base)
#define osti_memset(s, c, n)
The file defines the constants, data structure, and functions defined by LL API.
The file defines the declaration of tSDK APIs.
The file defines the declaration of OS APIs.
data structure stores OS specific and LL specific context
tdssIOCompleted_t IOCompletionFunc
union tdIORequestBody_s::@16 IOType
agsaIORequest_t agIORequest
tiIORequest_t * tiIORequest
struct tdIORequestBody_s::@16::@21 TargetIO
data structure for SAS/SATA context at TD layer
struct ttdsaTgt_s * ttdsaTgt
data structure OS root from the view of lower layer. TD Layer interrupt/non-interrupt context support...
the root data structure for TD layer
tdsaContext_t tdsaAllShared
agsaIORequest_t agIORequest
tdssSMPCompleted_t SMPCompletionFunc
bit32 singleElementLength
tiTargetOption_t targetOption
tdIORequestBody_t IORequestBody
tiTargetScsiCmnd_t tiTgtScsiCmnd
tiIORequest_t * tiIOToBeAbortedRequest
struct ttdsaXchg_s * pTMResp
ttdsaDmaMemoryArea_t smpresp
agsaSSPCmdInfoUnit_t agSSPCmndIU
struct tdsaDeviceData_s * DeviceData
tdssSMPRequestBody_t SMPRequestBody
ttdsaDmaMemoryArea_t resp
struct ttdsaXchg_s * XchgToBeAborted
#define AG_ALIGNSIZE(count, alignment)
#define TDLIST_OBJECT_BASE(baseType, fieldName, fieldPtr)
#define TDLIST_ENQUEUE_AT_TAIL(toAddHdr, listHdr)
#define TDLIST_INIT_ELEMENT(hdr)
#define TDLIST_EMPTY(listHdr)
#define TDLIST_DEQUEUE_THIS(hdr)
#define TDLIST_DEQUEUE_FROM_HEAD(atHeadHdr, listHdr)
#define TDLIST_INIT_HDR(hdr)
void tdsaSingleThreadedEnter(tiRoot_t *ptiRoot, bit32 queueId)
void tdsaSingleThreadedLeave(tiRoot_t *ptiRoot, bit32 queueId)
struct tdssSMPRequestBody_s tdssSMPRequestBody_t
data structure for SAS SMP reuqest body This structure contains IO related fields....
#define DEFAULT_TGT_TIMER_TICK
#define TD_XCHG_CONTEXT_NO_SEND_RSP(ti_root)
#define TD_XCHG_GET_STATE(xchg)
#define TD_XCHG_STATE_INACTIVE
#define TD_XCHG_SET_STATE(xchg, val)
#define TD_XCHG_CONTEXT_NO_USED(ti_root)
#define DEFAULT_BLOCK_SIZE
#define TD_XCHG_CONTEXT_NO_CMD_RCVD(ti_root)
#define TD_XCHG_CONTEXT_NO_START_IO(ti_root)
#define TD_XCHG_CONTEXT_NO_FREED(ti_root)
#define TD_XCHG_CONTEXT_NO_IO_COMPLETED(ti_root)
#define TD_XCHG_STATE_ACTIVE
osGLOBAL ttdsaXchg_t * ttdsaXchgGetStruct(agsaRoot_t *agRoot)
osGLOBAL void ttdssGetTargetParams(tiRoot_t *tiRoot)
osGLOBAL void ttdssGetResource(tiRoot_t *tiRoot, tiTargetResource_t *targetResource)
osGLOBAL bit32 ttdssInit(tiRoot_t *tiRoot, tiTargetResource_t *targetResource, tiTdSharedMem_t *tdSharedMem)
osGLOBAL agBOOLEAN ttdsaXchgInit(tiRoot_t *tiRoot, ttdsaXchgData_t *ttdsaXchgData, tiTargetMem_t *tgtMem, bit32 maxNumXchgs)
osGLOBAL void ttdsaXchgFreeStruct(tiRoot_t *tiRoot, ttdsaXchg_t *ttdsaXchg)
osGLOBAL void ttdsaDumpallXchg(tiRoot_t *tiRoot)
osGLOBAL void ttdssGetOperatingOptionParams(tiRoot_t *tiRoot, ttdssOperatingOption_t *OperatingOption)
osGLOBAL void ttdsaXchgLinkInit(tiRoot_t *tiRoot, ttdsaXchg_t *ttdsaXchg)
osGLOBAL void ttdsaIOCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, bit32 agOtherInfo)
osGLOBAL void ttdsaSMPCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle)
struct ttdsaXchg_s ttdsaXchg_t
struct smp_resp_s smp_resp_t
struct sas_resp_s sas_resp_t