33#ifdef SA_FW_TEST_BUNCH_STARTS
37#ifdef SA_ENABLE_TRACE_FUNCTIONS
41#define siTraceFileID 'P'
65 SA_DBG1((
"saTimerTick:agNULL == saRoot \n"));
84 Event = pTimer->
Event;
85 pParm = pTimer->
pParm;
110 SA_DBG1((
"saTimerTick: siChipResetV saRoot->ResetFailed\n"));
113#ifdef SA_FW_TEST_BUNCH_STARTS
114 if (saRoot->BunchStarts_Enable &&
115 saRoot->BunchStarts_Pending)
117 SA_DBG3((
"saTimerTick: mpiMsgProduceBunch\n"));
118 mpiMsgProduceBunch( saRoot);
123#ifdef SA_FW_TEST_INTERRUPT_REASSERT
129 SA_DBG4((
"saTimerTick:SA_FW_TEST_INTERRUPT_REASSERT\n"));
141 if( ++saRoot->OldFlag[i] > 1 )
145 SA_DBG1((
"saTimerTick:Q %d (%d) PI 0x%03x CI 0x%03x (%d) CheckAll %d %d\n",i,
155 SA_DBG1((
"saTimerTick:CheckAll %d ODR 0x%08X%08X ODMR 0x%08X%08X our Int %x\n",
166 SA_DBG1((
"saTimerTick:CheckAll %d ODR 0x%08X ODMR 0x%08X our Int %x\n",
175 if( saRoot->CheckAll > 1)
183 saRoot->OldFlag[i] = 0;
196#ifdef SA_FW_TEST_INTERRUPT_REASSERT
197 if(saRoot->CheckAll )
200 for(a=0; a < 32; a++ )
204 SA_DBG1((
"saTimerTick DI %d\n",a));
261 timeout = timeout + 1;
266 pTimer->
Event = Event;
267 pTimer->
pParm = pParm;
272 while (
agNULL != pValidTimer )
311 if (
agNULL == pValidTimer )
389 while (
agNULL != pTimer )
#define smTraceFuncEnter(L, I)
#define smTraceFuncExit(L, S, I)
GLOBAL bit32 saEchoCommand(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, void *echoPayload)
SAS/SATA LL API ECHO Command.
GLOBAL FORCEINLINE void saSystemInterruptsEnable(agsaRoot_t *agRoot, bit32 interruptVectorIndex)
Function to enable a single interrupt vector.
This file defines global types.
GLOBAL bit32 siHalRegReadExt(agsaRoot_t *agRoot, bit32 generic, bit32 regOffset)
#define V_Outbound_Doorbell_Mask_Set_RegisterU
#define V_Outbound_Doorbell_Set_Register
#define V_Outbound_Doorbell_Set_RegisterU
#define V_Outbound_Doorbell_Mask_Set_Register
#define saLlistGetNext(pList, pLink)
saLlistGetNext macro
#define saLlistAdd(pList, pLink)
saLlistAdd macro
#define saLlinkInitialize(pLink)
saLlinkInitialize macro
#define saLlistRemove(pList, pLink)
saLlistRemove macro
#define saLlistInsert(pList, pLink, pNew)
saLlistInsert macro
#define saLlistGetHead(pList)
saLlistGetHead macro
GLOBAL FORCEINLINE void ossaSingleThreadedEnter(agsaRoot_t *agRoot, bit32 syncLockId)
ossaSingleThreadedEnter
GLOBAL FORCEINLINE bit32 ossaHwRegReadExt(agsaRoot_t *agRoot, bit32 busBaseNumber, bit32 regOffset)
GLOBAL FORCEINLINE void ossaSingleThreadedLeave(agsaRoot_t *agRoot, bit32 syncLockId)
ossaSingleThreadedLeave
GLOBAL void siTimerRemoveAll(agsaRoot_t *agRoot)
remove all valid timer
GLOBAL agsaTimerDesc_t * siTimerAdd(agsaRoot_t *agRoot, bit32 timeout, agsaCallback_t pfnTimeout, bit32 Event, void *pParm)
add a timer
GLOBAL void saTimerTick(agsaRoot_t *agRoot)
TimerTick.
GLOBAL void siTimerRemove(agsaRoot_t *agRoot, agsaTimerDesc_t *pTimer)
remove a valid timer
bit32(* agsaCallback_t)(agsaRoot_t *agRoot, bit32 Event, void *Parm)
the callback function of an timer
data structure stores OS specific and LL specific context