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

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

?? sdio.h

?? linux下SDIO的驅動,請查看具體代碼內容.
?? H
字號:
///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2002-2004 BSQUARE Corporation.  All rights reserved.
//
// Module Name:
//
//    SDIO.h   
//
// Abstract:
//
//    Au1100 SDIO driver definitions
//
// Notes:
//
///////////////////////////////////////////////////////////////////////////////

#ifndef _SDIO_H_DEFINED
#define _SDIO_H_DEFINED
#include <platform.h>
#include <bceddk.h>

#define DEFAULT_TAGS 4

    // Au1100 has two slots
#define SDIO_NUM_SLOTS  2

#define DMA_BUFFER_SIZE (32*512)


    // forward declaration
typedef struct _SDIO_HW_CONTEXT *PSDIO_HW_CONTEXT;

typedef struct _SDIO_SLOT {
    PSDIO_HW_CONTEXT    pController;                    // the parent controller
    AU1100_SD           *pSD;                           // pointer to registers
    SD_CARD_INTERFACE   SDInterface;                    // current interface
    BOOL                CardPresent;                    // SD card present flag
    BOOL                CheckSlotOnStartUp;             // flag to force card detect on startup
    ULONG               InterruptMask;                  // mask for interrupts
    BOOL                CardInitialised;                // card initialized ?
    volatile PSD_BUS_REQUEST     pCurrentRequest;       // current request
    UCHAR               SlotNumber;                     // slot number
		// Au1100 specific
	BOOL				UsingDma;						// using DMA ?
	BOOL				UsingDmaThisCmd;						// using DMA ?
        // insertion interrupts
    HANDLE              hInsertionInterruptEvent;       // insertion interrupt event
    HANDLE              hInsertionInterruptThread;      // insertion interrupt thread
    int                 InsertionIstThreadPriority;     // insertion IST thread priority
    DWORD               InsertionSysIntr;
        // DMA resources - shared by both transmit and receive
	PDMA_CHANNEL_OBJECT TxDmaChannel;                   //
	PDMA_CHANNEL_OBJECT RxDmaChannel;                   //
    DWORD               DmaSysIntr;                     // sysintr for DMA interrupts
    HANDLE              hDmaInterruptEvent;             // DMA interrupt event
    HANDLE              hDmaInterruptThread;            // DMA interrupt thread
    int                 DmaIstThreadPriority;           // DMA IST thread priority
	ULONG               DmaBufferSize;
}SDIO_SLOT, *PSDIO_SLOT;

  // Au1100 hardware specific context
typedef struct _SDIO_HW_CONTEXT {
    PSDCARD_HC_CONTEXT  pHCContext;                     // the host controller context
    SDIO_SLOT           Slots[SDIO_NUM_SLOTS];          // array of slot structures
    HANDLE              hControllerInterruptEvent;      // controller interrupt event
    HANDLE              hControllerInterruptThread;     // controller interrupt thread
    int                 ControllerIstThreadPriority;    // controller IST thread priority
    BOOL                Initialized;                    // controller initialized ?
    BOOL                DriverShutdown;                 // controller shutdown
    WCHAR               RegPath[256];                   // reg path  
    DWORD               SysIntr;                        // System interrupt number
    HANDLE              hGPIO;                          // handle to GPIO driver
    CRITICAL_SECTION    CriticalSection;                // critical section for the controller
	PVOID               pPlatSpecificPtr;
}SDIO_HW_CONTEXT, *PSDIO_HW_CONTEXT;

    // prototypes for handlers
BOOLEAN SDIOCancelIoHandler(PSDCARD_HC_CONTEXT pHCContext,DWORD Slot, PSD_BUS_REQUEST pRequest);
SD_API_STATUS SDIOBusRequestHandler(PSDCARD_HC_CONTEXT pHCContext,DWORD Slot, PSD_BUS_REQUEST pRequest);
SD_API_STATUS SDIOSlotOptionHandler(PSDCARD_HC_CONTEXT    pHCContext,
                                     DWORD                 SlotNumber, 
                                     SD_SLOT_OPTION_CODE   Option, 
                                     PVOID                 pData,
                                     ULONG                 OptionSize);

    // other prototypes
SD_API_STATUS SDIODeinitialize(PSDCARD_HC_CONTEXT pHCContext);
SD_API_STATUS SDIOInitialize(PSDCARD_HC_CONTEXT pHCContext);

	// registry keys
#define PIO_MODE_KEY	        TEXT("PIOMode")

    // debug zones
#define SDIO_INTERRUPT_ZONE    SDCARD_ZONE_0
#define SDIO_SEND_ZONE         SDCARD_ZONE_1
#define SDIO_RESPONSE_ZONE     SDCARD_ZONE_2
#define SDIO_RECEIVE_ZONE      SDCARD_ZONE_3
#define SDIO_CLOCK_ZONE        SDCARD_ZONE_4
#define SDIO_TRANSMIT_ZONE     SDCARD_ZONE_5
#define SDIO_DMA_ZONE          SDCARD_ZONE_6

#define SDIO_INTERRUPT_ZONE_ON ZONE_ENABLE_0
#define SDIO_SEND_ZONE_ON      ZONE_ENABLE_1
#define SDIO_RESPONSE_ZONE_ON  ZONE_ENABLE_2
#define SDIO_RECEIVE_ZONE_ON   ZONE_ENABLE_3
#define SDIO_CLOCK_ZONE_ON     ZONE_ENABLE_4
#define SDIO_TRANSMIT_ZONE_ON  ZONE_ENABLE_5
#define SDIO_DMA_ZONE_ON       ZONE_ENABLE_6

    // IST priority
#define SDIO_CARD_CONTROLLER_IST_PRIORITY 100

    // debounce control
#define SDIO_DEBOUNCE_COUNT     10
#define SDIO_DEBOUNCE_INTERVAL  20

    // Au1100 SD controller register definitions
#define SD_CONTROL_REGISTERS_LENGTH 0x40

    // SD Controller interrupts
    // Used in SD_CONFIG register to enable/disable interrupts
    // Used in SD_STATUS register to detect/clear interrupts
#define SD_Int_SDIO_Interrupt       0x80000000 // SI
#define SD_Int_Card_Detect          0x40000000 // CD
#define SD_Int_Rx_Full              0x20000000 // RF
#define SD_Int_Rx_Almost_Full       0x10000000 // RA
#define SD_Int_Rx_Half_Full         0x08000000 // RH
#define SD_Int_Tx_Almost_Empty      0x04000000 // TA
#define SD_Int_Tx_Empty             0x02000000 // TE
#define SD_Int_Tx_Half_Full         0x01000000 // TH
#define SD_Int_Write_CRC_Error      0x00400000 // WC
#define SD_Int_Read_CRC_Error       0x00200000 // RC
#define SD_Int_Response_CRC_Error   0x00100000 // SC
#define SD_Int_Data_Timeout         0x00080000 // DT
#define SD_Int_Data_Done            0x00040000 // DD
#define SD_Int_Response_Timeout     0x00020000 // RA
#define SD_Int_Response_Done        0x00010000 // CR
#define SD_Int_Master               0x00008000 // I
#define SD_Int_Rx_FIFO_Overrun      0x00004000 // RO
#define SD_Int_Rx_FIFO_Underrun     0x00002000 // RU
#define SD_Int_Tx_FIFO_Overrun      0x00001000 // TO
#define SD_Int_Tx_FIFO_Underrun     0x00000800 // TU
#define SD_Int_Rx_FIFO_Not_Empty    0x00000400 // NE

#define SD_Int_FIFO_Errors          (SD_Int_Rx_FIFO_Overrun |  \
                                     SD_Int_Rx_FIFO_Underrun | \
                                     SD_Int_Tx_FIFO_Overrun |  \
                                     SD_Int_Tx_FIFO_Underrun )

#define SD_Int_CRC_Errors           (SD_Int_Write_CRC_Error | \
                                     SD_Int_Read_CRC_Error | \
                                     SD_Int_Response_CRC_Error )

    // SD Block Size Register
#define SD_MAX_BLOCK_SIZE	0x0800
#define SD_MAX_BLOCK_COUNT  0x01FF

    // SD Status Register
#define SD_STATUS_CRC_OK(status)    (((status)&SD_STATUS_DCRCW)==SD_STATUS_DCRCW_NONE)

    // SD Timeout register
#define SD_TIMEOUT_MAX          0x001E0000  // maximum timeout value

#define CONTROLLER_CLOCK_FREQUENCY      50000000    // 50 Mhz

    // macros to decode IO RW arguments
#define IO_RW_DIRECT_ADDR_ARG(Arg)  (((Arg)>>9)&0x1FFFF)
#define IO_RW_EXTENDED_BLOCK_MODE(Arg) (((Arg)>>27)&1)
#define IO_RW_EXTENDED_COUNT(Arg)      ((Arg)&0x1FF)

    // macros to identify request type
#define TRANSFER_IS_READ(pRequest)         (SD_READ == (pRequest)->TransferClass)
#define TRANSFER_IS_WRITE(pRequest)        (SD_WRITE == (pRequest)->TransferClass)
#define TRANSFER_HAS_DATA_PHASE(pRequest)  (SD_COMMAND != (pRequest)->TransferClass)

    // macro to acquire device lock via a critical section
#define ACQUIRE_DEVICE_LOCK(pHc) \
    EnterCriticalSection(&(pHc)->CriticalSection)

    // macro to release device lock via a critical section
#define RELEASE_DEVICE_LOCK(pHc) \
    LeaveCriticalSection(&(pHc)->CriticalSection)

    // macro to enable controller interrupts
#define SD_INTERRUPTS_ENABLE(pSlot, Mask)                     \
{                                                             \
	ULONG tmp;                                                \
    ACQUIRE_DEVICE_LOCK((pSlot)->pController);                \
	tmp = READ_REGISTER_ULONG((PULONG)&(pSlot)->pSD->config); \
	tmp |= (Mask);                                            \
	WRITE_REGISTER_ULONG((PULONG)&(pSlot)->pSD->config,tmp);  \
    (pSlot)->InterruptMask |= (Mask);                         \
    RELEASE_DEVICE_LOCK((pSlot)->pController);                \
}

    // macro to disable controller interrupts
#define SD_INTERRUPTS_DISABLE(pSlot, Mask)                    \
{                                                             \
	ULONG tmp;                                                \
    ACQUIRE_DEVICE_LOCK((pSlot)->pController);                \
	tmp = READ_REGISTER_ULONG((PULONG)&(pSlot)->pSD->config); \
	tmp &= ~(Mask);                                           \
	WRITE_REGISTER_ULONG((PULONG)&(pSlot)->pSD->config,tmp);  \
    (pSlot)->InterruptMask &= ~(Mask);                        \
    RELEASE_DEVICE_LOCK((pSlot)->pController);                \
}

    // macro to clear interrupt status bits. Write 1 to clear
#define SD_INTERRUPTS_CLEAR(pSlot,Mask) WRITE_REGISTER_ULONG((PULONG)&(pSlot)->pSD->status,(Mask))

    // controller IST
DWORD SDIOControllerIstThread(PSDIO_HW_CONTEXT pController);
    // insertion IST
DWORD SDIOInsertionIstThread(PSDIO_SLOT pSlot);
    // DMA IST
DWORD SDIODmaIstThread(PSDIO_SLOT pSlot);
    // Device removal handler
VOID RemoveDevice(PSDIO_SLOT pSlot); 

VOID SDIODeinitializeDMA(PSDIO_SLOT pSlot);

	// Platform specific functions
int SDIOPlatNumSlots();
SD_API_STATUS SDIOPlatInit(PSDIO_HW_CONTEXT pController);
SD_API_STATUS SDIOPlatDeinit(PSDIO_HW_CONTEXT pController);
SD_API_STATUS SDIOPlatPower(PSDIO_HW_CONTEXT pController, BOOL PowerOn, ULONG Slot);
BOOL SDIOPlatCardWriteProteced(PSDIO_HW_CONTEXT pController, ULONG Slot);
BOOL SDIOPlatCardInserted(PSDIO_HW_CONTEXT pController, ULONG Slot);
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品不卡在线视频| 91精品国模一区二区三区| 99精品国产热久久91蜜凸| 一道本成人在线| 欧美日本不卡视频| 国产午夜精品一区二区三区视频| 久久亚洲综合av| 曰韩精品一区二区| 免费不卡在线视频| 91玉足脚交白嫩脚丫在线播放| 91久久国产综合久久| 精品三级在线看| 五月天激情综合| 国产精品一区不卡| 91传媒视频在线播放| 久久影院午夜片一区| 精品剧情在线观看| 一区二区三区不卡在线观看| 国产精品亚洲а∨天堂免在线| 91在线精品秘密一区二区| 91精品国产品国语在线不卡| 一区在线观看视频| 日韩专区中文字幕一区二区| 成人在线综合网| 欧美电视剧在线看免费| 亚洲视频在线一区| 国产在线精品视频| 欧美日韩高清影院| 亚洲免费观看在线观看| 韩国成人在线视频| 欧美酷刑日本凌虐凌虐| 亚洲三级理论片| 国产一区二区伦理| 欧美一级久久久| 亚洲国产精品一区二区www在线 | 精品在线观看免费| 精品视频色一区| 欧美国产日韩亚洲一区| 蜜臀久久99精品久久久画质超高清| 99国产精品久久久久| 久久精品视频网| 国内一区二区在线| 日韩av中文字幕一区二区三区 | 国产清纯美女被跳蛋高潮一区二区久久w| 一卡二卡三卡日韩欧美| 欧美综合色免费| 久久国产精品99久久久久久老狼 | 中文字幕一区在线观看| 国产一区 二区 三区一级| 日韩视频一区二区| 美国欧美日韩国产在线播放| 欧美成人精品1314www| 国产乱码精品1区2区3区| 国产欧美日韩一区二区三区在线观看 | aaa欧美色吧激情视频| 国产精品久久久久久户外露出| 99九九99九九九视频精品| 亚洲综合小说图片| 欧美美女一区二区| 日韩丝袜美女视频| 中文字幕av一区二区三区免费看 | 久久成人免费日本黄色| 久久九九影视网| 99久久久国产精品| 亚洲第一主播视频| 久久综合色综合88| 91啪九色porn原创视频在线观看| 午夜视频在线观看一区二区三区| 日韩女优毛片在线| 91原创在线视频| 裸体一区二区三区| **网站欧美大片在线观看| 51精品秘密在线观看| 国产91精品在线观看| 五月婷婷综合在线| 国产精品视频麻豆| 欧美高清dvd| 成人综合婷婷国产精品久久 | 在线观看亚洲精品视频| 激情综合网天天干| 亚洲欧美经典视频| 久久婷婷色综合| 欧美日韩电影一区| 成人黄色大片在线观看| 欧美a一区二区| 成人欧美一区二区三区视频网页| 欧美一区二区三区婷婷月色| 一本色道久久综合亚洲91| av在线一区二区| 精品视频一区二区不卡| 精品va天堂亚洲国产| 色噜噜狠狠色综合中国| 国产精品一二三四五| 亚洲 欧美综合在线网络| 国产女同互慰高潮91漫画| 4438成人网| 欧美视频一区在线观看| 成人国产精品免费观看动漫| 国产一区二三区好的| 日韩在线一区二区三区| 国产精品电影院| 国产精品―色哟哟| 久久综合九色欧美综合狠狠| 4438x亚洲最大成人网| 欧美日韩成人一区二区| 色吧成人激情小说| 91浏览器在线视频| 99视频在线精品| 国产ts人妖一区二区| 国产麻豆视频精品| 九色综合狠狠综合久久| 青青草97国产精品免费观看 | 色欧美片视频在线观看在线视频| 国产不卡视频在线播放| 懂色av一区二区三区蜜臀| 国内成人免费视频| 韩国三级中文字幕hd久久精品| 麻豆精品视频在线观看免费| 日韩制服丝袜先锋影音| 日韩专区在线视频| 午夜视黄欧洲亚洲| 日韩极品在线观看| 视频一区视频二区中文| 日韩中文字幕91| 精品综合久久久久久8888| 国产精品一区二区三区99| 国产一区二区三区日韩| 国产成人无遮挡在线视频| 成人网在线免费视频| 99热99精品| 欧美午夜片在线看| 欧美精品成人一区二区三区四区| 91精品国产色综合久久| 久久婷婷成人综合色| 中文字幕欧美区| 亚洲女人****多毛耸耸8| 亚洲一区在线观看免费观看电影高清| 亚洲国产一区二区三区| 精品一区二区三区在线观看国产 | 久久精品国产一区二区三区免费看| 蜜桃视频免费观看一区| 国产夫妻精品视频| 成人免费av网站| 欧美日韩中文另类| 欧美不卡一二三| 中文字幕中文在线不卡住| 亚洲国产另类精品专区| 精品一区二区日韩| 91网站在线观看视频| 91 com成人网| 久久久久97国产精华液好用吗| 亚洲欧洲韩国日本视频| 日本不卡在线视频| 成人精品视频.| 337p亚洲精品色噜噜| 欧美极品美女视频| 香蕉影视欧美成人| 粉嫩高潮美女一区二区三区| 欧美视频在线观看一区二区| 久久久www免费人成精品| 亚洲午夜电影网| 成人亚洲一区二区一| 欧美精品18+| 亚洲色图欧美偷拍| 国产一区二区调教| 欧美三级午夜理伦三级中视频| 国产欧美一区视频| 蜜桃视频在线观看一区二区| 色视频成人在线观看免| 久久久久国色av免费看影院| 亚洲一区电影777| 成人激情午夜影院| 精品国产乱码久久久久久老虎| 一区二区在线观看免费 | 成人av中文字幕| 日韩美女视频一区二区在线观看| 亚洲精品国产视频| 风间由美一区二区av101| 日韩免费视频一区| 亚瑟在线精品视频| 91成人国产精品| 中文字幕+乱码+中文字幕一区| 免费高清在线视频一区·| 欧美揉bbbbb揉bbbbb| 亚洲欧美区自拍先锋| 欧洲精品中文字幕| 国产日韩精品一区二区三区| 蜜桃传媒麻豆第一区在线观看| 欧美色手机在线观看| 亚洲男人的天堂一区二区| 懂色av一区二区三区蜜臀| 久久久亚洲国产美女国产盗摄| 免费在线视频一区| 欧美一区二区在线播放| 五月天欧美精品| 欧美剧情片在线观看| 午夜视频一区二区| 欧美一区二区三区不卡| 青青草一区二区三区| 日韩你懂的电影在线观看|