亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pdsocket.cpp

?? WinCE5.0BSP for Renesas SH7770
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
{
    if( NeedReinitAfterPowerDown() )
    {
        // For Bridge that is shut down during suspend/resume
        if( bPowerDown )
        {
            EnableClientInterrupt( 0, FALSE );
            EnableClientInterrupt( 1, FALSE );
            // Shut down socket any way.
            ApplyPower( 0, 0, 0 );
            ApplyPower( 1, 0, 0 );
            ApplyEnable(0,FALSE);
            ApplyEnable(1,FALSE);
        }
        else
        {
            // Force Remover
            m_rgPcmciaInterruptEvents[0] = PCMCIA_INTERRUPT_FORCE_EJECT;
            m_rgPcmciaInterruptEvents[1] = PCMCIA_INTERRUPT_FORCE_EJECT;
            ::SetInterruptEvent( m_dwCSCSysIntr );
        }
    }
    else
    {
        for( int nSlot = 0; nSlot < NUM_SLOTS; nSlot++ )
        {
            if( m_rgpCardSocket[nSlot] )
            {
                SS_SOCKET_STATE sState;
                if( bPowerDown )
                {
                    if( m_rgpCardSocket[nSlot]->CardGetSocket( &sState ) ==
                        CERR_SUCCESS &&
                        ( sState.dwInteruptStatus & ( SOCK_INT_STATUS_CHG_WAKE |
                                                    SOCK_INT_FUNC_IRQ_WAKE ) ) ==
                        0 )
                    {
                        // I am going to shut down power.            
                        EnableClientInterrupt( nSlot, FALSE );
                        ApplyPower( nSlot, 0, 0 );
                        ApplyEnable(nSlot,FALSE);
                    }
                    else
                        m_rgpCardSocket[nSlot]->PowerMgr( bPowerDown );
                }
                else
                {
                    //Resume
                    if( m_rgpCardSocket[nSlot]->CardGetSocket( &sState ) ==
                        CERR_SUCCESS &&
                        ( sState.dwInteruptStatus & ( SOCK_INT_STATUS_CHG_WAKE |
                                                    SOCK_INT_FUNC_IRQ_WAKE ) ) ==
                        0 )
                    {
                        // In case to free the bus.
                        ApplyEnable(nSlot,FALSE);
                        ApplyPower(nSlot,GetVSPinOut(nSlot) , 0 ) ;
                        m_rgPcmciaInterruptEvents[nSlot] = PCMCIA_INTERRUPT_FORCE_EJECT;
                        ::SetInterruptEvent( m_dwCSCSysIntr );
                    }
                    else
                        m_rgpCardSocket[nSlot]->PowerMgr( bPowerDown );
                }
            }
        }
    }
}

void CPCCardBusBridge::CallBackToCardService( int nSlot, HANDLE hSocket,
                                              PSS_SOCKET_STATE pSocketState )
{
    if( m_pCallBackToCardService )
    {
        __try
        {
            m_pCallBackToCardService( hSocket, m_rguSocketNum[nSlot], pSocketState );
        } __except( EXCEPTION_EXECUTE_HANDLER )
        {
            DEBUGCHK( FALSE );
        }
    }
    else
    {
        DEBUGCHK( FALSE );
    }
}

BOOL CPCCardBusBridge::GetSocketNumberFromCS( int nSlot, BOOL bGet )
{
    STATUS status = CERR_BAD_ARGS;
    if( m_pRequestSocketNumber && m_pDeleteSocket )
    {
        __try
        {
            status = ( bGet ?
                       m_pRequestSocketNumber( &m_rguSocketNum[nSlot],
                                               sizeof( MRSHPCSocketServicStatic ),
                                               &MRSHPCSocketServicStatic,
                                               GetSocketName() ) :
                       m_pDeleteSocket( m_rguSocketNum[nSlot] ) );
        } __except( EXCEPTION_EXECUTE_HANDLER )
        {
            DEBUGCHK( FALSE );
            status = CERR_BAD_ARGS;
        }
    }
    DEBUGCHK( status == CERR_SUCCESS );
    return ( status == CERR_SUCCESS );
}

BOOL CPCCardBusBridge::SetupWakeupSource( BOOL bSet )
{
    if( bSet )
    {
        KernelIoControl( IOCTL_HAL_ENABLE_WAKE,
                         &m_dwCSCSysIntr,
                         sizeof( m_dwCSCSysIntr ),
                         NULL,
                         0,
                         NULL );
    }
    else
    {
        KernelIoControl( IOCTL_HAL_DISABLE_WAKE,
                         &m_dwCSCSysIntr,
                         sizeof( m_dwCSCSysIntr ),
                         NULL,
                         0,
                         NULL );
    }
    return TRUE;
}

#define CSC_THREAD_PRIORITY TEXT("CSCThreadPriority")
#define REGISTRY_POWER_OPTION TEXT("PowerOption")
#define CSC_SYSINTR_VALUE_NAME TEXT("CSCSysIntr")
#define SOCKET0_FUNCTION_SYSINTR_VALUE_NAME TEXT("Socket0FunctionSysInt")
#define SOCKET1_FUNCTION_SYSINTR_VALUE_NAME TEXT("Socket1FunctionSysInt")

BOOL CPCCardBusBridge::loadRequiredRegEntry()
{
    if( !IsKeyOpened() )
    {
        return FALSE;
    }

    if( !LoadWindowsSettings() )
    {
        DEBUGMSG( ZONE_SOCKET |
                  ZONE_ERROR,
                  ( TEXT( "CPCCardBusBridge::LoadWindowsSettings: Cannot get windows info from the registry\r\n" ) ) );
        return FALSE;
    }

    DWORD dwType;
    DWORD dwLength;

    // Get the Card Status Change interrupt SYSINTR value
    dwLength = sizeof( m_dwCSCSysIntr );
    if( !RegQueryValueEx( CSC_SYSINTR_VALUE_NAME,
                          &dwType,
                          ( LPBYTE ) &m_dwCSCSysIntr,
                          &dwLength ) )
    {
        DEBUGMSG( ZONE_SOCKET | ZONE_ERROR,
                    ( TEXT( "CPCCardBusBridge::loadRequiredRegEntry: Can not Get %s (type is 0x%x) from Registry\r\n" ),
                      CSC_SYSINTR_VALUE_NAME,
                      dwType ) );
        return FALSE;
    }

    // Get the Slot 0 Card Function interrupt SYSINTR value
    dwLength = sizeof( m_rgdwFunctionSysIntr[0] );
    if( !RegQueryValueEx( SOCKET0_FUNCTION_SYSINTR_VALUE_NAME,
                          &dwType,
                          ( LPBYTE ) &m_rgdwFunctionSysIntr[0],
                          &dwLength ) )
    {
        DEBUGMSG( ZONE_SOCKET | ZONE_ERROR,
                  ( TEXT( "CPCCardBusBridge::loadRequiredRegEntry: Can not Get %s (type is 0x%x) from Registry\r\n" ),
                    SOCKET0_FUNCTION_SYSINTR_VALUE_NAME,
                    dwType ) );
        return FALSE;
    }

    // Get the Slot 1 Card Function interrupt SYSINTR value
    dwLength = sizeof( m_rgdwFunctionSysIntr[1] );
    if( !RegQueryValueEx( SOCKET1_FUNCTION_SYSINTR_VALUE_NAME,
                          &dwType,
                          ( LPBYTE ) &m_rgdwFunctionSysIntr[1],
                          &dwLength ) )
    {
        DEBUGMSG( ZONE_SOCKET |
                  ZONE_ERROR,
                  ( TEXT( "CPCCardBusBridge::loadRequiredRegEntry: Can not Get %s (type is 0x%x) from Registry\r\n" ),
                  SOCKET1_FUNCTION_SYSINTR_VALUE_NAME,
                  dwType ) );
        return FALSE;
    }

    // Get the CSC thread priority
    DWORD dwTempVal;
    m_uPriority = DEFAULT_PRIORITY;
    dwLength = sizeof( dwTempVal );
    if( RegQueryValueEx( CSC_THREAD_PRIORITY,
                         &dwType,
                         ( LPBYTE ) &dwTempVal,
                         &dwLength ) )
    {
        m_uPriority = ( UINT ) dwTempVal;
    }

    // Get the power options
    dwLength = sizeof( m_dwPowerOption );
    if( !RegQueryValueEx( REGISTRY_POWER_OPTION,
                          &dwType,
                          ( LPBYTE ) &m_dwPowerOption,
                          &dwLength ) )
    {
        m_dwPowerOption = 0;
    }

    return TRUE;
}

BOOL CPCCardBusBridge::MapHardware()
{
	int nSlot;

	m_pDriverGlobals = (PDRIVER_GLOBALS)VirtualAlloc(0, DRIVER_GLOBALS_PHYSICAL_MEMORY_SIZE, MEM_RESERVE, PAGE_NOACCESS);
	if (NULL == m_pDriverGlobals) 
	{
		ASSERT(FALSE);
		return FALSE;
	}
	if (!VirtualCopy(m_pDriverGlobals, (PVOID)DRIVER_GLOBALS_PHYSICAL_MEMORY_START, 
		DRIVER_GLOBALS_PHYSICAL_MEMORY_SIZE,PAGE_READWRITE|PAGE_NOCACHE)) 
	{
		ASSERT(FALSE);
		return FALSE;
	}

    m_pPerFPGABase = (PVBYTE)VirtualAlloc (0,SF_REG_SIZE, MEM_RESERVE, PAGE_NOACCESS);
    if (NULL == m_pPerFPGABase) 
    {
		ASSERT(FALSE);
		return FALSE;
    }
    if (!VirtualCopy((unsigned char *)m_pPerFPGABase, (PVOID)SYSTEM_FPGA_BASE, SF_REG_SIZE,
        PAGE_READWRITE|PAGE_NOCACHE))
    {
		ASSERT(FALSE);
		return FALSE;
    }

	for(nSlot = 0; nSlot < NUM_SLOTS; nSlot++){

		PVBYTE pPcmciaBase = (PVBYTE)VirtualAlloc (0,PCMCIA_REG_SIZE, MEM_RESERVE, PAGE_NOACCESS);
		if (NULL == pPcmciaBase) 
		{
			ASSERT(FALSE);
			return FALSE;
		}
		if (!VirtualCopy((unsigned char *)pPcmciaBase, (PVOID)v_PcmciaInit[nSlot].reg_base, PCMCIA_REG_SIZE, PAGE_READWRITE|PAGE_NOCACHE))
		{
			ASSERT(FALSE);
			return FALSE;
		}

	    m_rgPcmciaRegisters[nSlot].pMOD   = (PVSHORT)(pPcmciaBase + MR_SHPC_MOD_OFFSET); 
	    m_rgPcmciaRegisters[nSlot].pOPT   = (PVSHORT)(pPcmciaBase + MR_SHPC_OPT_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pCST   = (PVSHORT)(pPcmciaBase + MR_SHPC_CST_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pINTR  = (PVSHORT)(pPcmciaBase + MR_SHPC_INTR_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pINTC  = (PVSHORT)(pPcmciaBase + MR_SHPC_INTC_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pCPWC  = (PVSHORT)(pPcmciaBase + MR_SHPC_CPWC_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pMW0C1 = (PVSHORT)(pPcmciaBase + MR_SHPC_MW0C1_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pMW1C1 = (PVSHORT)(pPcmciaBase + MR_SHPC_MW1C1_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pIOWC1 = (PVSHORT)(pPcmciaBase + MR_SHPC_IOWC1_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pMW0C2 = (PVSHORT)(pPcmciaBase + MR_SHPC_MW0C2_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pMW1C2 = (PVSHORT)(pPcmciaBase + MR_SHPC_MW1C2_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pIOWC2 = (PVSHORT)(pPcmciaBase + MR_SHPC_IOWC2_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pCCN   = (PVSHORT)(pPcmciaBase + MR_SHPC_CCN_OFFSET);
	    m_rgPcmciaRegisters[nSlot].pCIN   = (PVSHORT)(pPcmciaBase + MR_SHPC_CIN_OFFSET);

	    //Initialize the FPGA registers to use before initializing the PCMCIA controller 
	    
	    //Now, ready to initialize the PCMCIA controller
	    
	    /*First, set the Mode Reg.*/
	    WRITE_REGISTER_USHORT(m_rgPcmciaRegisters[nSlot].pMOD,(MR_SHPC_MOD_SH4_WAIT | MR_SHPC_MOD_CKIO_66));

	    // Initialize VPP and VCC by setting 0
	    WRITE_REGISTER_USHORT(m_rgPcmciaRegisters[nSlot].pCPWC, 
	        (READ_REGISTER_USHORT(m_rgPcmciaRegisters[nSlot].pCPWC) & ~(MR_SHPC_CPWC_VPP_MASK | MR_SHPC_CPWC_VCC_MASK)));

		if(nSlot == 0){
			m_pDriverGlobals->pcm.slot0Enable = 0;
		}
		else{
			m_pDriverGlobals->pcm.slot1Enable = 0;
		}

	    //Before starting the system, clear all pending interrupts
	    
	    READ_REGISTER_USHORT(m_rgPcmciaRegisters[nSlot].pINTR);  //Once reading INTR register, it is automatically cleared
	    
	    //starting the reset sequence 

		// The reset line must be active 10 us
		
		Sleep(10);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品资源网站| 美女在线一区二区| 亚洲色图视频网| 亚洲精品菠萝久久久久久久| 中文字幕一区二区三区在线播放| 亚洲午夜电影在线观看| 久久综合狠狠综合久久综合88| 91蝌蚪porny| 国产一区在线视频| 亚洲一区免费视频| 国产日韩欧美综合在线| 精品三级在线观看| 日韩欧美黄色影院| 国产精品久久久久久妇女6080 | 在线视频中文字幕一区二区| 欧美日韩精品电影| 亚洲国产电影在线观看| 日韩理论片网站| 日本午夜精品视频在线观看| 国产高清精品网站| 欧美吞精做爰啪啪高潮| 亚洲一区二区三区四区的| 在线亚洲一区二区| 欧美日韩另类一区| 精品国产一区久久| 亚洲精品免费在线| 国产成人精品免费视频网站| 337p亚洲精品色噜噜狠狠| 国产欧美日韩另类视频免费观看 | 精品少妇一区二区三区| 亚洲色图制服丝袜| 国产成a人亚洲精品| 日韩一级片网址| 亚洲a一区二区| 欧美性生活影院| 亚洲国产成人av好男人在线观看| 国产成人精品一区二 | 欧美性三三影院| 亚洲视频你懂的| 国产白丝网站精品污在线入口| 国产欧美日韩综合精品一区二区| 亚洲一区二区成人在线观看| 成人免费看片app下载| 久久久久国产精品麻豆ai换脸 | 日韩一级高清毛片| 亚洲成人动漫一区| 一本到不卡精品视频在线观看| 国产精品国产三级国产普通话三级 | 国产真实精品久久二三区| 欧美在线一区二区三区| 国产精品乱码一区二区三区软件 | 亚洲精品一区二区三区精华液 | 亚洲色图视频免费播放| 波多野结衣中文一区| 久久青草国产手机看片福利盒子 | 国产福利精品导航| 国产亚洲一本大道中文在线| 激情亚洲综合在线| 精品国产1区2区3区| 黄网站免费久久| 337p粉嫩大胆色噜噜噜噜亚洲| 久久99精品久久久久久| 精品久久久久香蕉网| 粉嫩av亚洲一区二区图片| 日韩美女视频19| 欧美日韩久久不卡| 成人综合婷婷国产精品久久免费| 日韩精品一二区| 欧美精品一区二区三| 9l国产精品久久久久麻豆| 伊人开心综合网| 精品国产乱码久久久久久蜜臀| 精品亚洲国产成人av制服丝袜 | 欧美激情一区二区| 在线观看91精品国产入口| 三级欧美韩日大片在线看| 久久久精品中文字幕麻豆发布| 91美女精品福利| 精品一区二区在线播放| 亚洲欧美一区二区三区国产精品| 欧美性猛交xxxx黑人交| 精品成人a区在线观看| 欧美亚洲图片小说| 丁香婷婷综合激情五月色| 亚洲成av人在线观看| 日韩精品一区在线| 在线日韩国产精品| 成人99免费视频| 九九精品视频在线看| 国产精品毛片大码女人| 欧美电视剧免费全集观看| 在线观看日韩毛片| 色呦呦国产精品| 成人av资源站| 国产精品亚洲午夜一区二区三区 | 亚洲第一av色| 亚洲人成网站影音先锋播放| 国产日韩欧美电影| 久久香蕉国产线看观看99| 日韩免费看的电影| 91麻豆精品国产| 欧美中文字幕一区| 7777女厕盗摄久久久| 欧美乱熟臀69xxxxxx| 欧美专区日韩专区| 精品视频免费看| 欧美午夜电影一区| 日韩欧美成人激情| 日韩精品在线一区| 久久嫩草精品久久久久| 久久欧美一区二区| 国产精品灌醉下药二区| 亚洲欧美日韩一区二区 | 欧美日韩国产综合一区二区| 欧美一区二区在线播放| 日韩免费看的电影| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美国产精品久久| 一区二区三区免费在线观看| 亚洲国产精品一区二区尤物区| 亚州成人在线电影| 韩国av一区二区三区| 福利视频网站一区二区三区| 色综合天天狠狠| 欧美人xxxx| 久久综合精品国产一区二区三区| 亚洲欧美怡红院| 国产精品911| 欧美性色黄大片| 日本一区二区免费在线观看视频| 亚洲男帅同性gay1069| 免费观看日韩电影| 色综合色综合色综合色综合色综合 | 99精品视频中文字幕| 欧美丰满嫩嫩电影| 亚洲欧美一区二区三区极速播放| 久久精品免费观看| 一本到不卡免费一区二区| 日韩精品一区二区三区在线观看| 国产精品久久久久久久久动漫| 视频一区二区三区入口| 99精品久久免费看蜜臀剧情介绍| 日韩欧美精品三级| 丝袜美腿亚洲色图| 色乱码一区二区三区88| 国产午夜精品在线观看| 奇米色一区二区三区四区| 91麻豆国产福利在线观看| 久久精品夜夜夜夜久久| 日韩高清一区在线| 久久九九全国免费| 蜜臀av一区二区在线观看 | 亚洲电影一区二区| 不卡的av在线| 亚洲人吸女人奶水| 色综合久久中文字幕| 亚洲女子a中天字幕| 色呦呦一区二区三区| 自拍av一区二区三区| 色94色欧美sute亚洲线路一久| 国产精品久久国产精麻豆99网站| 国产黑丝在线一区二区三区| 久久精品视频免费观看| 精品午夜一区二区三区在线观看| 91麻豆精品国产91久久久| 国产成人av一区二区三区在线观看| 91成人在线精品| 亚洲一区二区在线视频| 欧美亚洲国产一区在线观看网站| 午夜欧美在线一二页| 91精品国产丝袜白色高跟鞋| 日本特黄久久久高潮| 国产蜜臀av在线一区二区三区 | 国产69精品久久久久毛片| 中文字幕亚洲视频| 欧美卡1卡2卡| 国产高清久久久久| 一区二区三区91| 欧美成va人片在线观看| 成人av动漫网站| 人人超碰91尤物精品国产| 久久日韩精品一区二区五区| 色老综合老女人久久久| 国产一区二区三区美女| 夜夜嗨av一区二区三区网页 | 欧美色国产精品| 久久99国产精品免费| 欧美—级在线免费片| 日韩一级高清毛片| 91在线国产观看| 国产麻豆9l精品三级站| 亚洲欧美日韩久久| 欧美精品一区二区不卡 | 国产精品一线二线三线精华| 亚洲一区免费在线观看| 日韩久久一区二区| 久久九九影视网| 久久综合中文字幕| 欧美精品免费视频| 欧美日韩国产免费|