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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? init.cpp

?? WinCE5.0BSP for Renesas SH7770
?? CPP
字號(hào):
//
//  Copyright(C) Renesas Technology Corp. 2005. All rights reserved.
//
// PCCARD driver for ITS-DS7
//
// FILE     : init.cpp
// CREATED  : 2005.02.03
// MODIFIED : 
// AUTHOR   : Renesas Technology Corp.
// HARDWARE : RENESAS ITS-DS7
// HISTORY  : 
//            2005.02.03
//            - Created release code.
//                (based on PCCARD driver for ASPEN for WCE5.0)

//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.

Module Name:  

Abstract:

    Platform dependent PCMCIA initialization functions

Notes: 
--*/
#include <windows.h>
#include <types.h>
#include "socksv2.h"
#include <ceddk.h>
#include <devload.h>
#include <pcibus.h>
#include "Resource.h"
#include "PDSocket.h"

#ifdef DEBUG
DBGPARAM dpCurSettings =
{
    TEXT( "PCCMRSHPC" ),
    {
    TEXT( "Errors" ),
    TEXT( "Warnings" ),
    TEXT( "Functions" ),
    TEXT( "Callbacks" ),
    TEXT( "STSCHG Int" ),
    TEXT( "IREQ Int" ),
    TEXT( "MDD Init" ),
    TEXT( "PCI Enum" ),
    TEXT( "PDD" ),
    TEXT( "PDD Init" ),
    TEXT( "CIS Tuples" ),
    TEXT( "MDD" ),
    TEXT( "Undefined" ),
    TEXT( "Undefined" ),
    TEXT( "Undefined" ),
    TEXT( "Undefined" ) },
    0x3
};
#endif
//-------------End of Configuration-------------------------------------------

class SocketContainer : public CStaticContainer <CPCardSocket, NUM_SLOTS>
{
public:
    CPCardSocket* ObjectBySocket( HANDLE hSocket )
    {
        CPCardSocket*   pObject = NULL;    
        Lock();
        for( DWORD dwIndex = 0; dwIndex < m_dwArraySize; dwIndex++ )
        {
            if( ( pObject = m_rgObjectArray[dwIndex] ) != NULL )
            {
                if( pObject->GetSocketHandle() == hSocket )
                {
                    pObject->AddRef();
                    break;
                }
            }
            pObject = NULL;
        }
        Unlock();
        return pObject;
    }
};
class SocketContainer* pSocketContainer = NULL;

extern "C" BOOL WINAPI DllEntry( HANDLE  hInstDll,
                                 DWORD   dwReason,
                                 LPVOID  lpvReserved )
{
    switch( dwReason )
    {
      case DLL_PROCESS_ATTACH:
        DEBUGREGISTER( ( HINSTANCE ) hInstDll );
        DEBUGMSG( ZONE_INIT, ( TEXT( "TI : DLL_PROCESS_ATTACH\r\n" ) ) );
        DisableThreadLibraryCalls( ( HMODULE ) hInstDll );
        pSocketContainer = new SocketContainer();
        if( !pSocketContainer )
            return FALSE;
        break;

      case DLL_PROCESS_DETACH:
        DEBUGMSG( ZONE_INIT, ( TEXT( "TI : DLL_PROCESS_DETACH\r\n" ) ) );
        if( pSocketContainer )
        {
            delete pSocketContainer;
            pSocketContainer = NULL;
        };
        break;
    }

    return ( TRUE );
}

extern "C" 
DWORD Init( DWORD dwInfo )
{
    CPCCardBusBridge* pBridge = CreatePCCardBusBridge( ( LPCTSTR ) dwInfo );
    if( pBridge )
    {
        if( pBridge->Init() )
        {
            return ( DWORD ) pBridge;
        }
        else
        {
            delete pBridge;
        }
    }
    return 0;
}
extern "C" 
void Deinit( DWORD dwSocketNum )  // This argument is return value from PDCardInitServices.
{
    CPCCardBusBridge* pSocket = ( CPCCardBusBridge* ) dwSocketNum;
    if( pSocket )
    {
        delete pSocket;
    }
}

CPCardSocket* GetSocket( HANDLE hSocket )
{
    return ( pSocketContainer !=
             0 ?
             pSocketContainer->ObjectBySocket( hSocket ) :
             NULL );
}

void CPCCardBusBridge::InsertPCardSocket( int nSlot, CPCardSocket* pSocket )
{
    if( pSocket )
    {
        Lock();
        if( m_rgpCardSocket[nSlot] != pSocket )
            RemovePCardSocket( nSlot );
        if( m_rgpCardSocket[nSlot] == NULL && pSocketContainer != NULL )
        {
            CPCardSocket* pReturn = pSocketContainer->InsertObjectAtEmpty( NULL,
                                                                           pSocket );
            if( pReturn )
            {
                SS_SOCKET_STATE sSockState;
                m_rgpCardSocket[nSlot] = pSocket;
                m_rgpCardSocket[nSlot]->CardGetSocket( &sSockState );
                sSockState.dwEventChanged |= SOCK_EVENT_CD;
                sSockState.dwEventStatus |= SOCK_EVENT_CD;
                CallBackToCardService( nSlot, m_rgpCardSocket[nSlot]->GetSocketHandle(),
                                       &sSockState );
            }
            else
            {
                // This should never happens.But we do our best to recover.
                DEBUGCHK( FALSE );
                delete pSocket;
            }
        }
        else
            DEBUGCHK( FALSE );
        Unlock();
    }
    else
    {
        DEBUGCHK( FALSE );
    }
}
void CPCCardBusBridge::RemovePCardSocket( int nSlot )
{
    Lock();
    if( m_rgpCardSocket[nSlot] )
    {
        SS_SOCKET_STATE sSockState;
        m_rgpCardSocket[nSlot]->CardGetSocket( &sSockState );
        sSockState.dwEventChanged |= SOCK_EVENT_CD;
        sSockState.dwEventStatus &= ~SOCK_EVENT_CD;
        CallBackToCardService( nSlot, m_rgpCardSocket[nSlot]->GetSocketHandle(), &sSockState );
        if( pSocketContainer )
        {
            CPCardSocket* pSocket = pSocketContainer->RemoveObjectBy( m_rgpCardSocket[nSlot] );
            DEBUGCHK( pSocket != NULL );
        }
        else
        {
            // This should never happens.But we do our best to recover.
            DEBUGCHK( FALSE );
            delete m_rgpCardSocket[nSlot];
        }
        m_rgpCardSocket[nSlot] = NULL;
    }
    Unlock();
}
extern "C" 
BOOL PowerUp( DWORD dwData )
{
    CPCCardBusBridge* pSocket = ( CPCCardBusBridge* ) dwData;
    if( pSocket )
    {
        pSocket->PowerMgr( FALSE );
    }
    return TRUE;
};
extern "C"
BOOL PowerDown( DWORD dwData )
{
    CPCCardBusBridge* pSocket = ( CPCCardBusBridge* ) dwData;
    if( pSocket )
    {
        pSocket->PowerMgr( TRUE );
    }
    return TRUE;
}

STATUS PDCardGetSocket( HANDLE hSocket, // @parm Socket number (first socket is 0)
                        PSS_SOCKET_STATE pState // @parm Pointer to PDCARD_SOCKET_STATE structure
)
{
    CPCardSocket* pSocket = GetSocket( hSocket );
    if( pSocket != NULL )
    {
        STATUS rStatus = pSocket->CardGetSocket( pState );
        pSocket->DeRef();
        return rStatus;
    }
    else
    {
        return CERR_BAD_SOCKET;
    }
}
STATUS PDCardSetSocket( HANDLE hSocket, // @parm Socket number (first socket is 0)
                        PSS_SOCKET_STATE pState // @parm Pointer to PDCARD_SOCKET_STATE structure
)
{
    CPCardSocket* pSocket = GetSocket( hSocket );
    if( pSocket != NULL )
    {
        STATUS rStatus = pSocket->CardSetSocket( pState );
        pSocket->DeRef();
        return rStatus;
    }
    else
    {
        return CERR_BAD_SOCKET;
    }
}
STATUS PDCardResetSocket( HANDLE hSocket  // @parm Socket number (first socket is 0)
)
{
    CPCardSocket* pSocket = GetSocket( hSocket );
    if( pSocket != NULL )
    {
        STATUS rStatus = pSocket->CardResetSocket();
        pSocket->DeRef();
        return rStatus;
    }
    else
    {
        return CERR_BAD_SOCKET;
    }
}
//
STATUS PDCardGetWindow( UINT32 uWindow, // @parm Window number (the first window is 0)
                        PSS_WINDOW_STATE pWindowState   // @parm Pointer to a PDCARD_WINDOW_STATE structure.
)
{
    if( pWindowState == NULL )
    {
        return CERR_BAD_WINDOW;
    }

    HANDLE hSocket = pWindowState->hSocket;
    CPCardSocket* pSocket = GetSocket( hSocket );
    if( pSocket != NULL )
    {
        STATUS rStatus = pSocket->CardGetWindow( uWindow, pWindowState );
        pSocket->DeRef();
        return rStatus;
    }
    else
    {
        return CERR_BAD_WINDOW;
    }
}
STATUS PDCardSetWindow( UINT32 uWindow, // @parm Window number (the first window is 0)
                        PSS_WINDOW_STATE pWindowState   // @parm Pointer to a PDCARD_WINDOW_STATE structure.
)
{
    if( pWindowState == NULL )
    {
        return CERR_BAD_WINDOW;
    }

    HANDLE hSocket = pWindowState->hSocket;
    CPCardSocket* pSocket = GetSocket( hSocket );
    if( pSocket != NULL )
    {
		pSocket->EnableWindow();
        STATUS rStatus = pSocket->CardSetWindow( uWindow, pWindowState );
        pSocket->DeRef();
        return rStatus;
    }
    else
    {
        return CERR_BAD_WINDOW;
    }
}
STATUS PDCardInquireWindow( UINT32 uWindow, // @parm Window number (the first window is 0)
                            PSS_WINDOW_INFO pWinInfo        // @parm Pointer to a PDCARD_WINDOW_INFO structure.
)
{
    if( pWinInfo == NULL )
    {
        return CERR_BAD_WINDOW;
    }
    HANDLE hSocket = pWinInfo->hSocket;
    CPCardSocket* pSocket = GetSocket( hSocket );
    if( pSocket != NULL )
    {
        STATUS rStatus = pSocket->CardInquireWindow( uWindow, pWinInfo );
        pSocket->DeRef();
        return rStatus;
    }
    else
    {
        return CERR_BAD_WINDOW;
    }
};
STATUS PDCardInquireSocket( HANDLE hSocket, PSS_SOCKET_INFO pSocketInfo )
{
    CPCardSocket* pSocket = GetSocket( hSocket );
    if( pSocket != NULL )
    {
        STATUS rStatus = pSocket->CardInquireSocket( pSocketInfo );
        pSocket->DeRef();
        return rStatus;
    }
    else
    {
        return CERR_BAD_SOCKET;
    }
}


STATUS PDCardAccessMemory( HANDLE hSocket, PSS_MEMORY_ACCESS pMemoryAccess )
{
    CPCardSocket* pSocket = GetSocket( hSocket );
    if( pSocket != NULL )
    {
        STATUS rStatus = pSocket->CardAccessMemory( pMemoryAccess );
        pSocket->DeRef();
        return rStatus;
    }
    else
    {
        return CERR_BAD_SOCKET;
    }
}
STATUS PDGetPowerEntry( HANDLE hSocket,
                        PDWORD pdwNumOfEnery,
                        PSS_POWER_ENTRY pPowerEntry )
{
    CPCardSocket* pSocket = GetSocket( hSocket );
    if( pSocket != NULL )
    {
        STATUS rStatus = pSocket->GetPowerEntry( pdwNumOfEnery, pPowerEntry );
        pSocket->DeRef();
        return rStatus;
    }
    else
    {
        return CERR_BAD_SOCKET;
    }
}
const SS_SOCKET_SERVICE CPCCardBusBridge::MRSHPCSocketServicStatic =
{
    0,// 
    PDCardInquireSocket,
    PDCardGetSocket,
    PDCardSetSocket,
    PDCardResetSocket,
    PDCardInquireWindow,
    PDCardGetWindow,
    PDCardSetWindow,
    PDCardAccessMemory,
    PDGetPowerEntry,
    NULL,  // We implement Trnaslate Bus Address in OAL, So no support needed
    NULL   // We implement Translate System Address in OAL, so no support needed.

};

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久1区2区| 6080yy午夜一二三区久久| 国内精品嫩模私拍在线| 天天综合日日夜夜精品| 亚洲成人手机在线| 亚洲va国产天堂va久久en| 亚洲成人动漫在线观看| 亚洲成av人片在线观看无码| 亚洲福利视频一区二区| 亚洲国产成人高清精品| 视频一区二区三区入口| 日韩电影在线一区二区三区| 日韩电影一二三区| 伦理电影国产精品| 国产一区二区在线视频| 国产麻豆视频一区二区| 国产伦精一区二区三区| 国产999精品久久久久久绿帽| av激情综合网| 在线亚洲一区二区| 欧美伦理视频网站| 精品久久久久久久久久久院品网| 久久综合久久综合久久| 国产精品视频在线看| 国产精品传媒入口麻豆| 亚洲第一狼人社区| 精品在线观看免费| www.爱久久.com| 欧美亚洲国产bt| 欧美一级理论性理论a| 欧美电影免费观看高清完整版在线| 久久久.com| 亚洲综合清纯丝袜自拍| 精品一区二区在线看| 9i在线看片成人免费| 欧美日韩亚洲不卡| 精品少妇一区二区三区在线播放| 日本一区二区三区电影| 亚洲综合一区二区精品导航| 日本欧美肥老太交大片| 成人午夜私人影院| 欧美剧在线免费观看网站| 精品欧美一区二区三区精品久久 | 国产剧情一区二区| 日日欢夜夜爽一区| 懂色av噜噜一区二区三区av| 在线观看日韩一区| 久久久青草青青国产亚洲免观| 亚洲视频香蕉人妖| 久久99精品网久久| 欧洲生活片亚洲生活在线观看| 欧美大片一区二区三区| 亚洲久草在线视频| 国内精品国产成人国产三级粉色 | 91国偷自产一区二区三区成为亚洲经典 | 成人免费观看男女羞羞视频| 欧美特级限制片免费在线观看| 精品国产一区二区三区久久影院| 亚洲精选免费视频| 国产剧情一区二区三区| 欧美日韩高清一区二区不卡| 国产欧美日韩视频一区二区| 天天亚洲美女在线视频| 97se亚洲国产综合自在线| 精品av久久707| 日韩电影在线免费看| 色天使色偷偷av一区二区| 国产欧美日韩不卡| 美美哒免费高清在线观看视频一区二区 | 久久爱www久久做| 欧美在线一二三四区| 久久精品人人做| 免费在线观看一区二区三区| 91色九色蝌蚪| 中文在线免费一区三区高中清不卡| 蜜臀精品一区二区三区在线观看| 色吊一区二区三区| 国产精品免费av| 国产精品资源站在线| 欧美一二三在线| 天天操天天干天天综合网| 在线视频一区二区三区| 亚洲免费在线看| 成人黄色电影在线| 国产日韩影视精品| 国产在线一区观看| 蜜桃视频在线观看一区二区| 欧美在线免费观看亚洲| 亚洲欧美怡红院| 99在线精品免费| 国产精品无码永久免费888| 国产一区二区三区视频在线播放| 精品久久久久久久久久久久包黑料| 午夜精品一区二区三区三上悠亚| 91国在线观看| 亚洲激情六月丁香| 欧洲精品在线观看| 亚洲国产视频一区二区| 色欲综合视频天天天| 亚洲天堂av一区| 91免费版pro下载短视频| 亚洲欧美在线高清| 色哟哟精品一区| 亚洲最大的成人av| 色又黄又爽网站www久久| 一区二区三区四区亚洲| 91精品91久久久中77777| 亚洲免费资源在线播放| 91国在线观看| 五月婷婷久久综合| 日韩欧美一区二区视频| 老司机精品视频线观看86 | 亚洲国产精品成人综合| 国产大陆亚洲精品国产| 26uuu另类欧美亚洲曰本| 国产精品亚洲成人| 国产精品国产馆在线真实露脸 | 欧美色综合天天久久综合精品| 亚洲国产一区视频| 91麻豆精品91久久久久久清纯 | 欧洲在线/亚洲| 午夜视黄欧洲亚洲| 日韩欧美综合一区| 国产一区二区美女| 国产精品人人做人人爽人人添 | 久久久久久久久久久黄色| 成人avav影音| 亚洲综合色视频| 日韩三级av在线播放| 粉嫩久久99精品久久久久久夜 | 91在线观看成人| 亚洲高清久久久| 日本怡春院一区二区| 日韩亚洲电影在线| 丁香亚洲综合激情啪啪综合| 亚洲人妖av一区二区| 欧美一区二区三区在线观看视频 | 成人小视频在线观看| 亚洲免费av观看| 欧美一区二区视频免费观看| 国产精品888| 亚洲一区二区三区影院| 欧美电影免费观看高清完整版在| 国产成人免费视频一区| 亚洲综合偷拍欧美一区色| 欧美大片免费久久精品三p| 国产成人aaa| 亚洲成人综合在线| 国产日本欧美一区二区| 欧美性猛片aaaaaaa做受| 久久99日本精品| 亚洲精品大片www| 久久久亚洲精品石原莉奈| 色综合欧美在线视频区| 免费观看在线综合| 亚洲欧洲三级电影| 91精品国产一区二区| www.日韩精品| 日本亚洲三级在线| 最新中文字幕一区二区三区| 欧美日韩国产免费| 99国产精品99久久久久久| 日本视频一区二区三区| 亚洲欧美视频在线观看| 精品国内二区三区| 欧美在线一二三| 成a人片亚洲日本久久| 蜜臀va亚洲va欧美va天堂| 综合久久综合久久| wwwwxxxxx欧美| 91精品国产aⅴ一区二区| 一本大道av伊人久久综合| 国产一区二区三区四| 视频一区视频二区在线观看| 亚洲色图第一区| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美色精品在线视频| 99久久精品免费看| 国产真实乱子伦精品视频| 日韩和的一区二区| 一区二区三区免费| 国产精品乱人伦中文| 久久色在线视频| 91精品啪在线观看国产60岁| 欧洲国产伦久久久久久久| 成人一级片网址| 黑人巨大精品欧美黑白配亚洲| 日本怡春院一区二区| 亚洲va中文字幕| 亚洲一区二区三区四区五区黄 | 久久欧美一区二区| 欧美一区二区免费| 精品视频1区2区| 色激情天天射综合网| 不卡一区二区三区四区| 国产精品77777| 国产精品香蕉一区二区三区| 免费高清成人在线| 另类小说图片综合网| 六月丁香综合在线视频|