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

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

?? sdhcslot.h

?? 6410BSP3
?? H
?? 第 1 頁 / 共 2 頁
字號:

    inline DWORD ReadDword (DWORD dwOffset) {
        return ReadReg<DWORD>(dwOffset);
    }
    inline VOID  WriteDword(DWORD dwOffset, DWORD dwValue) {
        WriteReg(dwOffset, dwValue);
    }


    // Interrupt handling methods
    virtual VOID HandleRemoval(BOOL fCancelRequest);
    virtual VOID HandleInsertion();
    virtual BOOL HandleCommandComplete();
    virtual VOID HandleErrors();
    virtual VOID HandleTransferDone();
    virtual VOID HandleReadReady();
    virtual VOID HandleWriteReady();
    virtual PVOID SlotAllocDMABuffer(ULONG Length,PPHYSICAL_ADDRESS  LogicalAddress,BOOLEAN CacheEnabled );
    virtual BOOL SlotFreeDMABuffer( ULONG Length,PHYSICAL_ADDRESS  LogicalAddress,PVOID VirtualAddr,BOOLEAN CacheEnabled );

    // Allocates a physical buffer for DMA.
    virtual PVOID AllocPhysBuffer(size_t cb, PDWORD pdwPhysAddr);

    // Frees the physical buffer.
    virtual VOID FreePhysBuffer(PVOID pv);

    // Place the slot into the desired power state.
    virtual VOID SetHardwarePowerState(CEDEVICE_POWER_STATE cpsNew);

    // Performs the actual enabling/disabling of SDIO card interrupts.
    virtual VOID DoEnableSDIOInterrupts(BOOL fEnable);

    // Perform the desired reset and wait for completion. Returns FALSE
    // if there is a timeout.
    virtual BOOL SoftwareReset(BYTE bResetBits);

    // Keep reading the register using (*pfnReadReg)(dwRegOffset) until
    // value & tMask == tWaitForEqual.
    template<class T>
    BOOL WaitForReg(
        T (CSDHCSlotBase::*pfnReadReg)(DWORD),
        DWORD dwRegOffset,
        T tMask,
        T tWaitForEqual,
        DWORD dwTimeout = 1000        
        );

    // Turn the LED on or off.
    virtual VOID EnableLED(BOOL fEnable);

    // Calls SDHCDIndicateSlotStateChange.
    virtual VOID IndicateSlotStateChange(SD_SLOT_EVENT sdEvent);

    // Calls SDHCDGetAndLockCurrentRequest.
    virtual PSD_BUS_REQUEST GetAndLockCurrentRequest();

    // Calls SDHCDPowerUpDown.
    virtual VOID PowerUpDown(BOOL fPowerUp, BOOL fKeepPower);

    // Calls SDHCDIndicateBusRequestComplete.
    virtual VOID IndicateBusRequestComplete(PSD_BUS_REQUEST pRequest, SD_API_STATUS status);

    // Finds the closest rate that is *pdwRate or lower. Stores the
    // actual rate in *pdwRate.
    virtual VOID SetClockRate(PDWORD pdwRate);

    // Turn on the SD clock according to the clock divisor found 
    // in SetClockRate().
    virtual VOID SDClockOn();

    // Turn off the SD clock.
    virtual VOID SDClockOff();

    // Determine the Vdd windows from the capabilities register.
    virtual DWORD DetermineVddWindows();

    // Set an interrupt event.
    virtual VOID SetInterruptEvent() { ::SetInterruptEvent(m_dwSysIntr); }

    virtual BOOL DetermineCommandPolling();
    virtual BOOL PollingForCommandComplete();
#ifdef DEBUG
    // Print out the standard host register set.
    virtual VOID DumpRegisters();

    // Validate the member data.
    virtual VOID Validate();

    // Verify that the desired register accesses are properly aligned.
    VOID CheckRegOffset(DWORD dwOffset, DWORD dwRegSize) {
        DEBUGCHK( (dwOffset % dwRegSize) == 0);
        DEBUGCHK(dwOffset < sizeof(SSDHC_REGISTERS));
        DEBUGCHK( (dwOffset + dwRegSize) <= sizeof(SSDHC_REGISTERS));
    }
#else
    // These routines do nothing in non-debug builds.
    inline VOID DumpRegisters() {}
    inline VOID Validate() {}
    inline VOID CheckRegOffset(DWORD dwOffset, DWORD dwRegSize) {}
#endif

#ifdef _SMDK6410_CH0_EXTCD_
        // Prototype for a new function can detect whether card is presented of HSMMC ch0 on SMRP6400.
        virtual BOOL IsCardPresent();
#endif

    CReg                   *m_pregDevice;           // pointer to device registry key
    CSDHCSlotBaseDMA        *m_SlotDma;             // DMA object
    DWORD                   m_dwSlot;               // physical slot number
    volatile BYTE          *m_pbRegisters;          // memory-mapped registers

    PSDCARD_HC_CONTEXT      m_pHCDContext;          // host context
    DWORD                   m_dwSysIntr;            // system interrupt
    HANDLE                  m_hBusAccess;           // bus parent
    INTERFACE_TYPE          m_interfaceType;        // interface of the controller
    DWORD                   m_dwBusNumber;          // bus number of the controller

    DWORD                   m_dwVddWindows;         // supported VDD windows
    DWORD                   m_dwMaxClockRate;       // maximum clock rate
    DWORD                   m_dwTimeoutControl;     // timeout control value
    DWORD                   m_dwMaxBlockLen;        // maximum block length

    WORD                    m_wRegClockControl;     // register value of Clock Control
    WORD                    m_wIntSignals;          // saved int signals for powerup
    CEDEVICE_POWER_STATE    m_cpsCurrent;           // current power state
    CEDEVICE_POWER_STATE    m_cpsAtPowerDown;       // power state at PowerDown()

    BOOL                    m_isSDIOInterrupt;

    DWORD                   m_dwDefaultWakeupControl;   // wakeup source list 
    BYTE                    m_bWakeupControl;           // current wakeup interrupts

#ifdef DEBUG
    DWORD                   m_dwReadyInts;          // number of Read/WriteReady interrupts that have occurred
#endif DEBUG

    BOOL                    m_fCommandCompleteOccurred;     // has the Command Complete occurred for the current transfer?

    PSD_BUS_REQUEST         m_pCurrentRequest; // Current Processing Request.
    BOOL                    m_fCurrentRequestFastPath;
    SD_API_STATUS           m_FastPathStatus;
    DWORD                   m_dwFastPathTimeoutTicks;

    DWORD                   m_dwPollingModeSize;

    BOOL                    m_fSleepsWithPower : 1;         // keep power in PowerDown()?
    BOOL                    m_fPowerUpDisabledInts : 1;     // did PowerUp disable SDIO card interrupts?
    BOOL                    m_fIsPowerManaged : 1;          // is the power manager handling us?
    BOOL                    m_fSDIOInterruptsEnabled : 1;   // are SDIO card interrupts enabled?
    BOOL                    m_fCardPresent : 1;             // is a card present
    BOOL                    m_fAutoCMD12Success : 1;        // AutoCMD12 success
    BOOL                    m_fCheckSlot : 1;               // does HandleInterrupt() need to be run?
    BOOL                    m_fCanWakeOnSDIOInterrupts : 1; // can wake on SDIO interrupts
    BOOL                    m_f4BitMode : 1;                // 4 bit bus mode?
    BOOL                    m_fFakeCardRemoval : 1;         // should we simulate card removal?    
    BOOL                    m_fCommandPolling: 1; 
    BOOL                    m_fDisableDMA:1;                // Disable The DMA
} *PCSDHCSlotBase;

#define CB_DMA_BUFFER 0x20000 // 128KB buffer
#define CB_DMA_PAGE   0x1000  // we program DMA for 4KB pages

#define TRANSFER_IS_WRITE(pRequest)        (SD_WRITE == (pRequest)->TransferClass)
#define TRANSFER_IS_READ(pRequest)         (SD_READ == (pRequest)->TransferClass)
#define TRANSFER_IS_COMMAND_ONLY(pRequest) (SD_COMMAND == (pRequest)->TransferClass)      

#define TRANSFER_SIZE(pRequest)            ((pRequest)->BlockSize * (pRequest)->NumBlocks)


#define SDHC_DEFAULT_TIMEOUT                2000 // 2 seconds


// Is this request an SDIO abort (CMD52, Function 0, I/O Abort Reg)?
inline
BOOL
TransferIsSDIOAbort(
                    PSD_BUS_REQUEST pRequest
                    )
{
    PREFAST_DEBUGCHK(pRequest);

    BOOL fRet = FALSE;
    
    if (pRequest->CommandCode == SD_CMD_IO_RW_DIRECT) {
        if (IO_RW_DIRECT_ARG_FUNC(pRequest->CommandArgument) == 0) {
            if (IO_RW_DIRECT_ARG_ADDR(pRequest->CommandArgument) == SD_IO_REG_IO_ABORT) {
                fRet = TRUE;
            }
        }
    }

    return fRet;
}

#endif // _SDHCSLOT_DEFINED

// DO NOT REMOVE --- END EXTERNALLY DEVELOPED SOURCE CODE ID --- DO NOT REMOVE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频在线免费看| 欧美国产1区2区| 精品国产青草久久久久福利| 欧美精品一区视频| 国产精品成人网| 视频一区视频二区中文字幕| 国产老妇另类xxxxx| 97久久超碰国产精品| 欧美另类变人与禽xxxxx| 精品盗摄一区二区三区| 综合久久久久综合| 久久精品999| 欧洲亚洲国产日韩| 久久久国产午夜精品| 亚洲成年人影院| 国产成人亚洲精品狼色在线| 在线观看网站黄不卡| 久久久精品国产免费观看同学| 亚洲乱码一区二区三区在线观看| 久久91精品久久久久久秒播| 91麻豆免费看| 久久久国产精品不卡| 午夜精品久久久久久| 成人18精品视频| 欧美sm极限捆绑bd| 一区二区三区中文在线| 国产高清不卡一区| 日韩视频免费观看高清完整版| 亚洲日本乱码在线观看| 国产一区二区三区蝌蚪| 欧美日韩在线免费视频| 国产精品国产精品国产专区不蜜| 久久精工是国产品牌吗| 欧美日韩视频在线观看一区二区三区| 国产精品视频麻豆| 国产乱人伦偷精品视频不卡| 欧美一区二区三区免费| 亚洲成a人v欧美综合天堂下载 | 欧美高清一级片在线观看| 日本免费在线视频不卡一不卡二| 97久久精品人人做人人爽| 国产亚洲人成网站| 国产主播一区二区三区| 日韩一级完整毛片| **欧美大码日韩| 不卡在线观看av| 国产精品久久久久久久岛一牛影视 | 亚洲美女在线国产| 成人国产精品视频| 中文字幕制服丝袜一区二区三区 | 日韩av一区二区在线影视| 色综合一区二区| 亚洲欧美日韩系列| 色综合一个色综合亚洲| 一色屋精品亚洲香蕉网站| 粉嫩绯色av一区二区在线观看| 久久久久99精品一区| 国产精品亚洲人在线观看| 国产午夜精品久久久久久久 | 亚洲一区二区三区在线| 91久久精品一区二区三| 亚洲一本大道在线| 欧美日韩视频第一区| 日韩电影在线观看网站| 日韩一区国产二区欧美三区| 蜜桃精品视频在线| 欧美国产一区在线| fc2成人免费人成在线观看播放| 一区在线播放视频| 欧美性受极品xxxx喷水| 免费三级欧美电影| 国产欧美日韩精品在线| 色94色欧美sute亚洲线路二| 亚洲成a人片在线观看中文| 日韩亚洲欧美在线| 国产.欧美.日韩| 亚洲狠狠丁香婷婷综合久久久| 欧美一区日韩一区| 国产福利91精品一区| 亚洲午夜激情网页| 欧美群妇大交群的观看方式| 国产一区二区三区| 久久久综合激的五月天| 91亚洲精品久久久蜜桃网站 | 精品国产三级a在线观看| 美女一区二区视频| 国产亚洲短视频| 色婷婷国产精品久久包臀| 午夜精品在线看| 欧美一区中文字幕| 99久久国产免费看| 麻豆国产一区二区| 亚洲色图.com| 欧美白人最猛性xxxxx69交| bt7086福利一区国产| 麻豆国产91在线播放| 亚洲欧美另类综合偷拍| 精品日韩在线一区| 欧美图片一区二区三区| 国产精品影视在线观看| 亚洲高清不卡在线| 中文字幕一区视频| 精品国产一区二区在线观看| 91女厕偷拍女厕偷拍高清| 久久er精品视频| 亚洲一二三四久久| 国产精品久久久久久久久快鸭 | 亚洲视频免费看| 日韩美女视频一区二区在线观看| 91社区在线播放| 国产成人一区二区精品非洲| 日本不卡一二三| 亚洲高清一区二区三区| 亚洲三级小视频| 国产欧美日韩在线看| 精品国产一区二区三区久久影院 | 粉嫩av一区二区三区| 麻豆91免费观看| 日日欢夜夜爽一区| 亚洲风情在线资源站| 日韩理论电影院| 国产精品国产自产拍在线| 亚洲精品一区二区三区四区高清| 欧美日韩激情一区二区| 91国产丝袜在线播放| 99久免费精品视频在线观看| 国产一区二区在线看| 久久成人麻豆午夜电影| 日本少妇一区二区| 日韩福利电影在线观看| 日韩高清一区二区| 日本欧美在线看| 丝袜诱惑制服诱惑色一区在线观看| 亚洲视频香蕉人妖| 亚洲品质自拍视频网站| 亚洲欧美激情插 | 欧美日高清视频| 欧美系列亚洲系列| 欧美日韩国产精品成人| 欧美日韩中文字幕一区| 欧美少妇性性性| 制服丝袜激情欧洲亚洲| 欧美一区二区三区视频免费| 日韩一区二区在线看| 日韩美女主播在线视频一区二区三区| 欧美一区二区福利在线| 久久久综合精品| 国产精品久久久久桃色tv| 亚洲柠檬福利资源导航| 亚洲成人综合在线| 免费的成人av| 国产a区久久久| 99re这里只有精品首页| 欧美性xxxxxx少妇| 欧美一级片免费看| 亚洲精品一线二线三线| 国产精品免费观看视频| 亚洲精品ww久久久久久p站| 一区二区三区资源| 日韩国产在线观看| 高清在线观看日韩| 色婷婷久久久亚洲一区二区三区| 欧美日韩国产123区| 欧美一卡二卡三卡| 国产精品视频在线看| 亚洲国产va精品久久久不卡综合| 免费观看成人鲁鲁鲁鲁鲁视频| 国产成人精品aa毛片| 国产精品自产自拍| a亚洲天堂av| 日韩一级大片在线观看| 国产欧美一区二区精品性| 18欧美亚洲精品| 日韩电影在线免费| 国产成人在线免费观看| 欧美色涩在线第一页| 欧美专区日韩专区| 久久综合色天天久久综合图片| 国产日韩成人精品| 日日夜夜精品视频天天综合网| 懂色av一区二区夜夜嗨| 欧美日韩一区精品| 国产精品天天摸av网| 美国一区二区三区在线播放| 91丨porny丨在线| 精品国产伦一区二区三区观看方式| 亚洲天堂久久久久久久| 精彩视频一区二区三区| 91行情网站电视在线观看高清版| 久久免费视频色| 日韩av网站免费在线| 国产成人av影院| 在线亚洲高清视频| 国产精品嫩草久久久久| 美女精品自拍一二三四| 欧美性极品少妇| 亚洲视频每日更新| 国产成人精品三级麻豆| 久久午夜老司机| 精品一区二区三区视频|