Example #1
0
DWORD
CSDHCBase::IST()
{
    SETFNAME(_T("IST"));
    
    DEBUGMSG(SDCARD_ZONE_INIT, (TEXT("%s Thread Starting\n"), pszFname));

    if (!CeSetThreadPriority(GetCurrentThread(), m_dwPriority)) {
        DEBUGMSG(SDCARD_ZONE_WARN, (TEXT("%s Failed to set CEThreadPriority\n"),
            pszFname));
    }

    while (TRUE) {
        DEBUGCHK(m_hevInterrupt);
        DWORD dwWaitStatus = WaitForSingleObject(m_hevInterrupt, INFINITE);
        Validate();
        //InterruptDone(m_dwSysIntr);
        RETAILMSG(0,(TEXT("CSDHCBase::IST() Event is signaled [SYSINT = %x].\n"),m_dwSysIntr));
        if (WAIT_OBJECT_0 != dwWaitStatus) {
            DEBUGMSG(SDCARD_ZONE_WARN, (TEXT("%s Wait Failed! 0x%08X\n"), 
                pszFname, dwWaitStatus));
            // bail out
            break;
        }
        else if (m_fDriverShutdown) {
            break;
        }
        else {
		  RETAILMSG(0,(TEXT("CSDHCBase::IST()\n")));			
            HandleInterrupt();
        }
    }

    DEBUGMSG(SDCARD_ZONE_INIT, (TEXT("%s Thread Exiting\n"), pszFname));

    return 0;
}
Example #2
0
void GPIO_EVEN_IRQHandler(void)
{
	HandleInterrupt(kInterruptP1);
}
Example #3
0
void GPIO_ODD_IRQHandler(void)
{
	HandleInterrupt(kInterruptP0);
}