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

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

?? pcmsock.h

?? 基于s3c2440A的wince5.0 pccard driver
?? H
字號:
//
// 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.
//
/*++  

Abstract:

    Platform dependent PCMCIA definitions for Samsung SMDK2440 compatible socket
    controller.

Notes: 
--*/
#ifndef __PCMSOCK_H_
#define __PCMSOCK_H_
#include <pdsocket.h>

//
// PCIC register offsets
//
#define REG_INTERFACE_STATUS                 0x01
#define REG_POWER_CONTROL                    0x02
#define REG_INTERRUPT_AND_GENERAL_CONTROL    0x03
#define REG_CARD_STATUS_CHANGE               0x04
#define REG_STATUS_CHANGE_INT_CONFIG         0x05
#define REG_WINDOW_ENABLE                    0x06
#define REG_IO_WINDOW_CONTROL                0x07
#define REG_IO_MAP0_START_ADDR_LO            0x08
#define REG_IO_MAP0_START_ADDR_HI            0x09
#define REG_IO_MAP0_END_ADDR_LO              0x0A
#define REG_IO_MAP0_END_ADDR_HI              0x0B
#define REG_IO_MAP1_START_ADDR_LO            0x0C
#define REG_IO_MAP1_START_ADDR_HI            0x0D
#define REG_IO_MAP1_END_ADDR_LO              0x0E
#define REG_IO_MAP1_END_ADDR_HI              0x0F
#define REG_MEM_MAP0_START_ADDR_LO           0x10
#define REG_MEM_MAP0_START_ADDR_HI           0x11
#define REG_MEM_MAP0_END_ADDR_LO             0x12
#define REG_MEM_MAP0_END_ADDR_HI             0x13
#define REG_MEM_MAP0_ADDR_OFFSET_LO          0x14
#define REG_MEM_MAP0_ADDR_OFFSET_HI          0x15
#define REG_GENERAL_CONTROL                  0x16
//
#define REG_MEM_MAP1_START_ADDR_LO           0x18
#define REG_MEM_MAP1_START_ADDR_HI           0x19
#define REG_MEM_MAP1_END_ADDR_LO             0x1A
#define REG_MEM_MAP1_END_ADDR_HI             0x1B
#define REG_MEM_MAP1_ADDR_OFFSET_LO          0x1C
#define REG_MEM_MAP1_ADDR_OFFSET_HI          0x1D
#define REG_GLOBAL_CONTROL                   0x1E
#define REG_CHIP_INFO                        0x1F
#define REG_MEM_MAP2_START_ADDR_LO           0x20
#define REG_MEM_MAP2_START_ADDR_HI           0x21
#define REG_MEM_MAP2_END_ADDR_LO             0x22
#define REG_MEM_MAP2_END_ADDR_HI             0x23
#define REG_MEM_MAP2_ADDR_OFFSET_LO          0x24
#define REG_MEM_MAP2_ADDR_OFFSET_HI          0x25
//
//
#define REG_MEM_MAP3_START_ADDR_LO           0x28
#define REG_MEM_MAP3_START_ADDR_HI           0x29
#define REG_MEM_MAP3_END_ADDR_LO             0x2A
#define REG_MEM_MAP3_END_ADDR_HI             0x2B
#define REG_MEM_MAP3_ADDR_OFFSET_LO          0x2C
#define REG_MEM_MAP3_ADDR_OFFSET_HI          0x2D
//
//
#define REG_MEM_MAP4_START_ADDR_LO           0x30
#define REG_MEM_MAP4_START_ADDR_HI           0x31
#define REG_MEM_MAP4_END_ADDR_LO             0x32
#define REG_MEM_MAP4_END_ADDR_HI             0x33
#define REG_MEM_MAP4_ADDR_OFFSET_LO          0x34
#define REG_MEM_MAP4_ADDR_OFFSET_HI          0x35
#define REG_IO_MAP0_OFFSET_ADDR_LO           0x36
#define REG_IO_MAP0_OFFSET_ADDR_HI           0x37
#define REG_IO_MAP1_OFFSET_ADDR_LO           0x38
#define REG_IO_MAP1_OFFSET_ADDR_HI           0x39
#define REG_MEM_MAP0_WINDOW_PAGE             0x40
#define REG_MEM_MAP1_WINDOW_PAGE             0x41
#define REG_MEM_MAP2_WINDOW_PAGE             0x42
#define REG_MEM_MAP3_WINDOW_PAGE             0x43
#define REG_MEM_MAP4_WINDOW_PAGE             0x44

//
// Relative offsets for memory window control registers
//
#define REG_MEM_MAP_START_ADDR_LO            0x00
#define REG_MEM_MAP_START_ADDR_HI            0x01
#define REG_MEM_MAP_END_ADDR_LO              0x02
#define REG_MEM_MAP_END_ADDR_HI              0x03
#define REG_MEM_MAP_ADDR_OFFSET_LO           0x04
#define REG_MEM_MAP_ADDR_OFFSET_HI           0x05

#define REG_MEM_MAP_STRIDE                   0x08

//
// Interface status register 0x01
//
#define STS_BVD2                             0x01
#define STS_BVD1                             0x02
#define STS_CD1                              0x04
#define STS_CD2                              0x08
#define STS_WRITE_PROTECT                    0x10
#define STS_CARD_READY                       0x20
#define STS_CARD_POWER_ON                    0x40
#define STS_GPI                              0x80

//
// Power and RESETDRV control register 0x02
//
#define PWR_VPP1_BIT0							0x01
#define PWR_VPP1_BIT1							0x02
#define PWR_VPP2_BIT0							0x04
#define PWR_VPP2_BIT1							0x08
#define PWR_VCC_POWER							0x10
#define PWR_AUTO_POWER 							0x20
#define PWR_RESUME_RESET						0x40
#define PWR_OUTPUT_ENABLE 						0x80

//
// Interrupt and general control register 0x03
//
#define INT_IRQ_BIT0                         0x01
#define INT_IRQ_BIT1                         0x02
#define INT_IRQ_BIT2                         0x04
#define INT_IRQ_BIT3                         0x08
#define INT_ENABLE_MANAGE_INT                0x10
#define INT_CARD_IS_IO                       0x20
#define INT_CARD_NOT_RESET                   0x40
#define INT_RING_INDICATE_ENABLE             0x80

//
// Card Status change register 0x04
//
#define CSC_BATTERY_DEAD_OR_STS_CHG          0x01
#define CSC_BATTERY_WARNING                  0x02
#define CSC_READY_CHANGE                     0x04
#define CSC_DETECT_CHANGE                    0x08
#define CSC_GPI_CHANGE                       0x10

//
// Card Status change interrupt configuration register 0x05
//
#define CFG_BATTERY_DEAD_ENABLE              0x01
#define CFG_BATTERY_WARNING_ENABLE           0x02
#define CFG_READY_ENABLE                     0x04
#define CFG_CARD_DETECT_ENABLE               0x08
#define CFG_MANAGEMENT_IRQ_BIT0              0x10
#define CFG_MANAGEMENT_IRQ_BIT1              0x20
#define CFG_MANAGEMENT_IRQ_BIT2              0x40
#define CFG_MANAGEMENT_IRQ_BIT3              0x80

//
// Address window enable register 0x06
//
#define WIN_MEM_MAP0_ENABLE                  0x01
#define WIN_MEM_MAP1_ENABLE                  0x02
#define WIN_MEM_MAP2_ENABLE                  0x04
#define WIN_MEM_MAP3_ENABLE                  0x08
#define WIN_MEM_MAP4_ENABLE                  0x10
#define WIN_MEMCS16_DECODE                   0x20
#define WIN_IO_MAP0_ENABLE                   0x40
#define WIN_IO_MAP1_ENABLE                   0x80

//
// I/O control register 0x07
//
#define ICR_0_IO_16BIT                       0x01
#define ICR_0_IOCS16                         0x02
#define ICR_0_ZERO_WAIT_STATE                0x04
#define ICR_0_WAIT_STATE                     0x08
#define ICR_1_IO_16BIT                       0x10
#define ICR_1_IOCS16                         0x20
#define ICR_1_ZERO_WAIT_STATE                0x40
#define ICR_1_WAIT_STATE                     0x80

//
// MISC Control 1 register 0x16
//
#define MISC1_5V_DETECT							0x01
#define MISC1_VCC_33							0x02
#define MISC1_PM_IRQ							0x04
#define MISC1_PS_IRQ							0x08
#define MISC1_SPK_ENABLE						0x10
#define MISC1_INPACK_ENABLE						0x80

//
// System memory address mapping start high byte register 0x11
// (also 0x19, 0x21, 0x29 and 0x31)
//
#define MSH_ZERO_WAIT_STATE                  0x40
#define MSH_MEM_16BIT                        0x80

//
// System memory address mapping stop high byte register 0x13
// (also 0x1B, 0x23, 0x2B and 0x33)
//
#define MTH_WAIT_STATE_BIT0                  0x40
#define MTH_WAIT_STATE_BIT1                  0x80

//
// Card memory offset address high byte register 0x13
// (also 0x1B, 0x23, 0x2B and 0x33)
//
#define MOH_REG_ACTIVE                       0x40
#define MOH_WRITE_PROTECT                    0x80

//
// Structure to track a physical socket
//
//

class CPCMSocket;

class CPcmciaMemWindows : public CPcmciaMemWindowImpl<CPCMSocket>
{
public:
                    CPcmciaMemWindows( CPCMSocket* pPcmSocket,
                                       DWORD dwWinIndex,
                                       const SS_WINDOW_STATE* pcWindowState,
                                       const SS_WINDOW_INFO* pcWindowInfo );
                    ~CPcmciaMemWindows();

protected:
    virtual void    FreeResources();
    virtual void    DisableWindow();
    virtual void    ProgramWindow();
    virtual DWORD   GetNewOffset( PSS_WINDOW_STATE pWindowState );
    virtual DWORD   GetNewLength( PSS_WINDOW_STATE pWindowState,
                                  DWORD dwNewOffset );
    virtual BOOL    GetBaseAddress( PSS_WINDOW_STATE pWindowState,
                                    DWORD dwNewOffset,
                                    DWORD dwNewLength,
                                    DWORD& dwNewBaseAddress );

    BYTE            m_uEnableBit;
    WORD            m_wWinBaseOffset;
    WORD            m_wWinPageOffset;
    DWORD           m_dwBaseAddress;
};


////////////////////////////////////////////////////////////////////////////////

class CPcmciaIoWindows : public CPcmciaIoWindowImpl<CPCMSocket>
{
public:
                    CPcmciaIoWindows( CPCMSocket* pPcmSocket,
                                      DWORD dwWinIndex,
                                      const SS_WINDOW_STATE* pcWindowState,
                                      const SS_WINDOW_INFO* pcWindowInfo );
                    ~CPcmciaIoWindows();

protected:
    virtual void    FreeResources();
    virtual void    DisableWindow();
    virtual void    ProgramWindow();
    virtual DWORD   GetNewOffset( PSS_WINDOW_STATE pWindowState );
    virtual DWORD   GetNewLength( PSS_WINDOW_STATE pWindowState,
                                  DWORD dwNewOffset );
    virtual BOOL    GetBaseAddress( PSS_WINDOW_STATE pWindowState,
                                    DWORD dwNewOffset,
                                    DWORD dwNewLength,
                                    DWORD& dwNewBaseAddress );

    BYTE            m_uEnableBit;
    BYTE            m_uIoCtrlBitOffset;
    WORD            m_wIoStatEndOffset;
    WORD            m_wIoOffsetOffset;
    DWORD           m_dwOffset;
};

class CPCMSocket : public CPCMCIASocketBase<CPcmciaMemWindows, CPcmciaIoWindows, CPcmciaCardSocket, CPcmciaBusBridge>
{
public:
                    CPCMSocket( CPcmciaBusBridge* pBriedge,
                                UINT8 nSocketNumber );
                    ~CPCMSocket();
    virtual void    SocketEventHandle( DWORD dwEvent, DWORD dwPresentStateReg ); // Event Handle from Interrupt.

    virtual STATUS  CardGetSocket( PSS_SOCKET_STATE pState );
    virtual STATUS  CardSetSocket( PSS_SOCKET_STATE pState );
    virtual STATUS  CardResetSocket();
    virtual STATUS CardInquireSocket( PSS_SOCKET_INFO pSocketInfo )
    {
        if( pSocketInfo )
        {
            *pSocketInfo = m_SocketInfo;
            return CERR_SUCCESS;
        }
        else
        {
            return CERR_BAD_ARGS;
        }
    }

    virtual void    PowerMgr( BOOL bPowerDown );
    virtual BOOL    Resuming();

    //virtual STATUS CardAccessMemory(PSS_MEMORY_ACCESS pMemoryAccess);
    UINT8 PCICRegisterRead( WORD register_num )
    {
        return m_pBridge->ReadPCICRegister( GetSlotNumber(), register_num );
    }
    void PCICRegisterWrite( WORD register_num, UINT8 value )
    {
        m_pBridge->WritePCICRegister( GetSlotNumber(), register_num, value );
    }
    CPcmciaBusBridge* GetPCCardBusBridge()
    {
        return m_pBridge;
    };

private:
    // For Power Manager.
#ifdef DEBUG
    VOID                            DumpAllRegisters();
#endif
    BYTE                            m_bBackupPCICPwrCtrlReg;
    BOOL                            m_bResuming;
    void                            PowerMgrCallback( BOOL bPowerOff );
    void                            PowerOnProcedure( UINT8 fVcc, UINT8 fVpp );
    void                            PowerCycleEvent();
    void                            CardInjectEvent();

    SS_SOCKET_STATE                 m_SocketState;
    SS_SOCKET_INFO                  m_SocketInfo;
    static const SS_SOCKET_STATE    ms_SocketInitState;
    static const SS_SOCKET_INFO     ms_SocketInitInfo;
};

CPcmciaCardSocket* CreatePCMCIASocket( CPcmciaBusBridge* pBridge,
                                       UINT8 nSocketNumber );

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线播放| 国产一区二区久久| 在线亚洲免费视频| 亚洲欧美另类小说| 91黄色小视频| 亚洲大片一区二区三区| 色妹子一区二区| 亚洲大片一区二区三区| 欧美高清视频在线高清观看mv色露露十八| 性做久久久久久久免费看| 欧美日韩免费观看一区三区| 日本免费新一区视频| 精品sm在线观看| 粉嫩蜜臀av国产精品网站| 国产精品免费免费| 在线免费观看成人短视频| 亚洲大片免费看| 久久久久久久久久久电影| 99国产精品一区| 日韩福利电影在线| 国产色91在线| 欧美日韩亚洲丝袜制服| 九九在线精品视频| 亚洲欧美日韩精品久久久久| 欧美日韩电影在线播放| 国产精品一区二区久激情瑜伽 | 色拍拍在线精品视频8848| 天天av天天翘天天综合网| 精品国产污网站| 色诱亚洲精品久久久久久| 人妖欧美一区二区| 国产精品天美传媒| 欧美一区二区三区四区五区| 丰满岳乱妇一区二区三区| 亚洲gay无套男同| 欧美国产精品中文字幕| 欧美艳星brazzers| 国产99久久久国产精品免费看| 一区二区激情小说| 国产亚洲精品aa午夜观看| 色婷婷综合激情| 国产九色精品成人porny| 一区二区三区四区五区视频在线观看 | 久久99精品久久只有精品| ...中文天堂在线一区| 日韩一级视频免费观看在线| 波多野结衣亚洲一区| 日韩国产在线观看一区| 亚洲欧洲一区二区三区| 91超碰这里只有精品国产| 夫妻av一区二区| 国内精品视频一区二区三区八戒| 一区二区三区四区不卡视频| 六月丁香婷婷色狠狠久久| 日本一区二区免费在线观看视频| 欧美日韩黄色一区二区| 成人av高清在线| 激情图区综合网| 婷婷成人综合网| 亚洲激情图片一区| 成人免费一区二区三区在线观看 | 免费观看91视频大全| 一区二区三区鲁丝不卡| 国产精品麻豆一区二区| 久久综合资源网| 精品国产欧美一区二区| 欧美日韩一区不卡| 欧美性生活久久| 在线视频观看一区| 99国产精品一区| 91在线视频观看| av不卡一区二区三区| 国产一区美女在线| 国产综合成人久久大片91| 国内精品视频666| 国产露脸91国语对白| 六月丁香综合在线视频| 毛片av中文字幕一区二区| 亚洲v精品v日韩v欧美v专区| 亚洲午夜在线视频| 亚洲自拍偷拍欧美| 亚洲一区精品在线| 日韩精品亚洲一区| 美女视频一区二区三区| 蜜桃精品在线观看| 精品伊人久久久久7777人| 麻豆高清免费国产一区| 麻豆成人久久精品二区三区红| 日韩成人一级片| 黄色精品一二区| 国产高清亚洲一区| aaa亚洲精品| 色悠久久久久综合欧美99| 欧美三级在线看| 日韩精品一区二区三区在线播放| 日韩三级中文字幕| 国产无遮挡一区二区三区毛片日本| 久久久亚洲综合| 亚洲天堂免费看| 亚洲123区在线观看| 蜜臀91精品一区二区三区| 国产一区二区美女诱惑| av电影一区二区| 欧美视频在线观看一区| 欧美日韩二区三区| 久久久久久99精品| 有码一区二区三区| 久久66热re国产| 成人av手机在线观看| 色综合久久中文字幕综合网| 欧美日本韩国一区| 国产免费成人在线视频| 亚洲一区在线电影| 国内不卡的二区三区中文字幕| 高清不卡一二三区| 欧美精品丝袜中出| 久久噜噜亚洲综合| 亚洲成人7777| 国产一区二区不卡在线| 99综合影院在线| 日韩美一区二区三区| 国产精品理论片在线观看| 亚洲影视在线播放| 国产成人av一区二区三区在线| 色欧美乱欧美15图片| 久久综合九色综合97_久久久| 自拍偷拍国产精品| 国产一区二区三区在线观看精品| 色综合久久久网| 精品粉嫩aⅴ一区二区三区四区 | 一区二区三区四区激情| 精品无人码麻豆乱码1区2区| 91麻豆自制传媒国产之光| 日韩欧美一级特黄在线播放| 亚洲免费电影在线| 国产精品综合一区二区三区| 欧美色图片你懂的| 国产精品毛片a∨一区二区三区 | 一区二区不卡在线播放| 国产精品一区二区在线观看网站| 欧美日韩小视频| 国产精品第五页| 国产精品一区二区果冻传媒| 51精品久久久久久久蜜臀| 悠悠色在线精品| 99re成人精品视频| 国产日韩欧美亚洲| 精品一区二区三区免费毛片爱| 在线观看精品一区| 亚洲图片另类小说| 粉嫩一区二区三区在线看| 欧美大片在线观看一区二区| 亚洲永久精品国产| 91成人国产精品| 亚洲欧洲综合另类| 成人久久18免费网站麻豆| 久久精品亚洲乱码伦伦中文| 蜜桃av噜噜一区| 这里只有精品电影| 一区二区三区波多野结衣在线观看| 成人午夜在线免费| 日本一区二区电影| 国产福利一区在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩中文字幕91| 欧美丰满美乳xxx高潮www| 亚洲自拍偷拍网站| 欧美日韩一区二区三区四区五区| 一区二区三区电影在线播| 色久综合一二码| 亚洲主播在线播放| 欧美午夜片在线观看| 亚洲午夜影视影院在线观看| 色欧美乱欧美15图片| 亚洲国产精品一区二区久久恐怖片 | 欧美一级在线免费| 青青草国产精品亚洲专区无| 欧美一区二区三区四区五区| 毛片不卡一区二区| 久久精品一二三| 成人一道本在线| 亚洲欧洲三级电影| 在线看日本不卡| 日韩av中文字幕一区二区三区| 欧美日本在线看| 韩国一区二区三区| 中文字幕第一区第二区| 成人av综合一区| 一区二区三区毛片| 日韩精品专区在线影院重磅| 久久99热狠狠色一区二区| 久久久另类综合| 91视频你懂的| 肉色丝袜一区二区| 精品理论电影在线| 成av人片一区二区| 五月婷婷综合网| 国产视频911| 欧美丝袜丝nylons| 国产成人精品在线看|