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

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

?? xsdma.h

?? ylpxa270 GPRS 通信代碼
?? H
字號:
/******************************************************************************
**
**  COPYRIGHT (C) 2000, 2001 Intel Corporation.
**
**  This software as well as the software described in it is furnished under 
**  license and may only be used or copied in accordance with the terms of the 
**  license. The information in this file is furnished for informational use 
**  only, is subject to change without notice, and should not be construed as 
**  a commitment by Intel Corporation. Intel Corporation assumes no 
**  responsibility or liability for any errors or inaccuracies that may appear 
**  in this document or any software that may be provided in association with 
**  this document. 
**  Except as permitted by such license, no part of this document may be 
**  reproduced, stored in a retrieval system, or transmitted in any form or by 
**  any means without the express written consent of Intel Corporation. 
**
**  FILENAME:      xsdma.h
**
**  PURPOSE:       Contains module private declarations and definitions for 
**                 the DMA controller.
**
**  LAST MODIFIED: $Modtime: 7/17/03 1:01p $
******************************************************************************/


#ifndef C_DMA_CONTROLLER
#define C_DMA_CONTROLLER
/*
*******************************************************************************
    Error sub-location codes for ERR_L_XSDMA location code
*******************************************************************************
*/

#define ERR_S_DMA_REG_HANDLER    0x01 // XsDmaRegisterHandler
#define ERR_S_DMA_UNR_HANDLER    0x02 // XsDmaUnregisterHandler
#define ERR_S_DMA_INT_HANDLER    0x03 // XsDmaInterruptHandler
#define ERR_S_DMA_HWSETUP        0x04 // XsDmaHWSetup
#define ERR_S_DMA_START          0x05 // XsDmaStart
#define ERR_S_DMA_UNTIL_STOPPED  0x06 // XsDmaWaitUntilStopped() 
#define ERR_S_DMA_DESTROY_LINK   0x07 // XsDmaDestroyLink() 
#define ERR_S_DMA_INT_REASON_EN  0x08 // XsDmaIntReasonEnable()
#define ERR_S_DMA_RANGE_CHANNEL  0x09 // XsDmaRangeCheckChannel()
#define ERR_S_DMA_BACK_LINKS     0x0A // XsDmaMakeBackLinksInChain()
#define ERR_S_DMA_BARE_DESC      0x0B // XsDmaCreateBareDescChain()
#define ERR_S_DMA_POPULATE_DESC  0x0C // XsDmaPopulateDescWithBufs()
#define ERR_S_DMA_POPULATE_CHAIN 0x0D // XsDmaPopulateChainWithBufs()
#define ERR_S_DMA_DESCR_CHAIN    0x0E // XsDmaCreateDescriptorFromChan()
#define ERR_S_DMA_CONFIG_DEVICE  0x0F // XsDmaConfigureDevice()
#define ERR_S_DMA_CONFIG_MEM     0x10 // XsDmaConfigureMemToMem()

/*
*******************************************************************************
Structure for channels and the relative priority. 
*******************************************************************************
*/
typedef struct XsDmaChannelPrioritySearchEntryS
{
    UINT channel;
    XsDmaChannelPriorityT priority;
}XsDmaChannelPrioritySearchEntryT;

/*
*******************************************************************************
This is a structure of DMA register groups that will make accesses more easily
through simple program control instead of long-winded switch constructs.
*******************************************************************************
*/

typedef struct XsDmaDescriptorGroupS {
    VUINT   DDADR;  // descriptor address reg
    VUINT   DSADR;  // source address register
    VUINT   DTADR;  // target address register
    VUINT   DCMD;   // command address register
}XsDmaDescriptorGroupT;

/*
*******************************************************************************
    XsDmaDrcmrIdT for indexing the DRCMR registers.
*******************************************************************************
*/

typedef enum XsDmaDrcmrIdE
{
    XSDMA_DRCMR_ID_DREQ_0         =   0, // companion chip request 0
    XSDMA_DRCMR_ID_DREQ_1         =   1, // companion chip request 1
    XSDMA_DRCMR_ID_I2S_RX         =   2, // I2S receive request
    XSDMA_DRCMR_ID_I2S_TX         =   3, // I2S transmit request
    XSDMA_DRCMR_ID_BTUART_RX      =   4, // BTUART receive request
    XSDMA_DRCMR_ID_BTUART_TX      =   5, // BTUART transmit request
    XSDMA_DRCMR_ID_FFUART_RX      =   6, // FFUART receive request
    XSDMA_DRCMR_ID_FFUART_TX      =   7, // FFUART transmit request
    XSDMA_DRCMR_ID_AC97_MIC_RX    =   8, // AC97 microphone request
    XSDMA_DRCMR_ID_AC97_MODEM_RX  =   9, // AC97 MODEM receive request
    XSDMA_DRCMR_ID_AC97_MODEM_TX  =   10, // AC97 MODEM transmit request
    XSDMA_DRCMR_ID_AC97_AUDIO_RX  =   11, // AC97 Audio receive request
    XSDMA_DRCMR_ID_AC97_AUDIO_TX  =   12, // AC97 Audio transmit request
    XSDMA_DRCMR_ID_SSP1_RX        =   13, // SSP receive request
    XSDMA_DRCMR_ID_SSP1_TX        =   14, // SSP transmit request
    XSDMA_DRCMR_ID_SSP2_RX        =   15, // SSP2 receive request
    XSDMA_DRCMR_ID_SSP2_TX        =   16, // SSP2 transmit request
    XSDMA_DRCMR_ID_FICP_RX        =   17, // ICP receive request
    XSDMA_DRCMR_ID_FICP_TX        =   18, // ICP transmit request
    XSDMA_DRCMR_ID_STUART_RX      =   19, // STUART receive request
    XSDMA_DRCMR_ID_STUART_TX      =   20, // STUART transmit request
    XSDMA_DRCMR_ID_MMC_RX         =   21, // MMC receive request
    XSDMA_DRCMR_ID_MMC_TX         =   22, // MMC transmit request
    XSDMA_DRCMR_ID_RSVD_23        =   23, // reserved
    XSDMA_DRCMR_ID_USB_UDC_EP_0   =   24, // USB endpoint 0 request
    XSDMA_DRCMR_ID_USB_UDC_EP_A   =   25, // USB endpoint A request
    XSDMA_DRCMR_ID_USB_UDC_EP_B   =   26, // USB endpoint B request
    XSDMA_DRCMR_ID_USB_UDC_EP_C   =   27, // USB endpoint C request
    XSDMA_DRCMR_ID_USB_UDC_EP_D   =   28, // USB endpoint D request
    XSDMA_DRCMR_ID_USB_UDC_EP_E   =   29, // USB endpoint E request
    XSDMA_DRCMR_ID_USB_UDC_EP_F   =   30, // USB endpoint F request
    XSDMA_DRCMR_ID_USB_UDC_EP_G   =   31, // USB endpoint G request
    XSDMA_DRCMR_ID_USB_UDC_EP_H   =   32, // USB endpoint H request
    XSDMA_DRCMR_ID_USB_UDC_EP_I   =   33, // USB endpoint I request
    XSDMA_DRCMR_ID_USB_UDC_EP_J   =   34, // USB endpoint J request
    XSDMA_DRCMR_ID_USB_UDC_EP_K   =   35, // USB endpoint K request
    XSDMA_DRCMR_ID_USB_UDC_EP_L   =   36, // USB endpoint L request
    XSDMA_DRCMR_ID_USB_UDC_EP_M   =   37, // USB endpoint M request
    XSDMA_DRCMR_ID_USB_UDC_EP_N   =   38, // USB endpoint N request
    XSDMA_DRCMR_ID_USB_UDC_EP_P   =   39, // USB endpoint P request
    XSDMA_DRCMR_ID_USB_UDC_EP_Q   =   40, // USB endpoint Q request
    XSDMA_DRCMR_ID_USB_UDC_EP_R   =   41, // USB endpoint R request
    XSDMA_DRCMR_ID_USB_UDC_EP_S   =   42, // USB endpoint S request
    XSDMA_DRCMR_ID_USB_UDC_EP_T   =   43, // USB endpoint T request
    XSDMA_DRCMR_ID_USB_UDC_EP_U   =   44, // USB endpoint U request
    XSDMA_DRCMR_ID_USB_UDC_EP_V   =   45, // USB endpoint V request
    XSDMA_DRCMR_ID_USB_UDC_EP_W   =   46, // USB endpoint W request
    XSDMA_DRCMR_ID_USB_UDC_EP_X   =   47, // USB endpoint X request
    XSDMA_DRCMR_ID_BASEBAND_RX_1  =   48, // Baseband Receive Request 1
    XSDMA_DRCMR_ID_BASEBAND_TX_1  =   49, // Baseband Transmit Request 1
    XSDMA_DRCMR_ID_BASEBAND_RX_2  =   50, // Baseband Receive Request 2
    XSDMA_DRCMR_ID_BASEBAND_TX_2  =   51, // Baseband Transmit Request 2
    XSDMA_DRCMR_ID_BASEBAND_RX_3  =   52, // Baseband Receive Request 3
    XSDMA_DRCMR_ID_BASEBAND_TX_3  =   53, // Baseband Transmit Request 3
    XSDMA_DRCMR_ID_BASEBAND_RX_4  =   54, // Baseband Receive Request 4
    XSDMA_DRCMR_ID_BASEBAND_TX_4  =   55, // Baseband Transmit Request 4
    XSDMA_DRCMR_ID_BASEBAND_RX_5  =   56, // Baseband Receive Request 5
    XSDMA_DRCMR_ID_BASEBAND_TX_5  =   57, // Baseband Transmit Request 5
    XSDMA_DRCMR_ID_BASEBAND_RX_6  =   58, // Baseband Receive Request 6
    XSDMA_DRCMR_ID_BASEBAND_TX_6  =   59, // Baseband Transmit Request 6
    XSDMA_DRCMR_ID_BASEBAND_RX_7  =   60, // Baseband Receive Request 7
    XSDMA_DRCMR_ID_BASEBAND_TX_7  =   61, // Baseband Transmit Request 7
    XSDMA_DRCMR_ID_USIM_RX        =   62, // USIM receive request
    XSDMA_DRCMR_ID_USIM_TX        =   63, // USIM transmit request
    XSDMA_DRCMR2_ID_MEM_STICK_RX  = 1024, // Memory Stick receive request
    XSDMA_DRCMR2_ID_MEM_STICK_TX  = 1025, // Memory Stick transmit request
    XSDMA_DRCMR2_ID_SSP3_RX       = 1026, // SSP3 receive request
    XSDMA_DRCMR2_ID_SSP3_TX       = 1027, // SSP3 transmit request
    
    XSDMA_DRCMR_ID_MAX            = XSDMA_DRCMR_ID_USIM_TX,
    XSDMA_DRCMR_ID_NUM            = (XSDMA_DRCMR_ID_MAX+1),
    XSDMA_DRCMR_ID_ILLEGAL        = XSDMA_DRCMR_ID_NUM,

    XSDMA_DRCMR2_ID_NUM           = (XSDMA_DRCMR2_ID_SSP3_TX - XSDMA_DRCMR2_ID_MEM_STICK_RX) + 1,
    
    // Memory doesn't have a DRCMR.  Define this for users of records
    //  where XsDmaDrcmrIdT values are stored.
    XSDMA_DRCMR_ID_MEMORY         = (XSDMA_DRCMR_ID_NUM+1)

} XsDmaDrcmrIdT;

/*
*******************************************************************************
Mask version of the DMA control register set structure
*******************************************************************************
*/

typedef struct XsDmaCtrlS {
    VUINT32   DCSR[XSDMA_CHANNEL_NUM]; //DMA CSRs by channel

    UINT32    PAD0[28];  // unused addresses
    VUINT32   DINT;        // DMA interrupt register

    UINT32    PAD1[3];  // unused addresses                           // Indexed by the XsDmaDrcmrIdT enums.
    VUINT32   DRCMR[XSDMA_DRCMR_ID_NUM];
    XsDmaDescriptorGroupT DDG[XSDMA_CHANNEL_NUM]; // DMA descriptor group array
    UINT32    PAD2[832];
    VUINT32   DRCMR2[XSDMA_DRCMR2_ID_NUM];

} XsDmaCtrlT;

/*
*******************************************************************************
This structure is used to pass a bucket of parameters around when creating 
DMA descriptors.  Descriptors can be for memory to memory transfers,
peripheral to memory, or mem to peripheral.
*******************************************************************************
*/

typedef struct XsDmaDescriptorParamsS
{
    // Information to create and determine the properties of the descriptor
    XsDmaDescriptorElementsTPT thisDescP;
    INT channel;
    INT transferLength;
    BOOL setStopBit;

    // Contents of the descriptor to be built
    UINT32 nextPhysicalAddr;
    UINT32 sourcePhysicalAddr;
    UINT32 targetPhysicalAddr;
    UINT32 commandRegister;
    XsDmaDescriptorElementsTPT nextVirtualAddr;
    PVOID  sourceVirtualAddr;
    PVOID  targetVirtualAddr;
    UINT32 sourceDeviceType;
    UINT32 targetDeviceType;
    UINT32 currentPhysicalAddr; // the physical address of this descriptor
    XsDmaDescriptorElementsTPT prevDescrP;

} XsDmaDescriptorParamsT;

/*
*******************************************************************************
    Constants and structure for main processor DMA Controller's channel 
    configuration table.  Includes members for the registered client interrupt 
    handlers (callbacks).
*******************************************************************************
*/

typedef struct XsDmaChannelConfigEntryS
{
    BOOL        isAssigned;            // Channel has been assigned
    XsDmaDeviceNamesT
                sourceDeviceName;
    XsDmaDeviceNamesT
                targetDeviceName;
    XsDmaDrcmrIdT
                drcmrId;
    XsDmaHandlerFnPT                   // Pointer to the client's registered 
                registeredHandlerFnP;  //  handler for this channel.
    void*       registeredParamP;      // Pass back to registered handler

} XsDmaChannelConfigEntryT;


static
XsDmaChannelConfigEntryT XsDmaChannelConfigTable [XSDMA_CHANNEL_NUM];

/*
*******************************************************************************
    Function prototypes
*******************************************************************************
*/

static void XsDmaInitAll(void);
static INT  XsDmaModifyChannelUsage(ChannelOperationsT, 
                                      INT32, 
                                      XsDmaChannelPriorityT, 
                                      XsDmaChannelStatusT*);
static void XsDmaSetupMem2MemDescriptor (XsDmaDescriptorParamsT* );
static void XsDmaSetupMem2PeriphDescriptor(XsDmaDescriptorParamsT* );
static void XsDmaSetupPeriph2MemDescriptor(XsDmaDescriptorParamsT* );
static void XsDmaInterruptHandler (void *);
static XsDmaDrcmrIdT XsDmaMapDevice2DrcmrId (XsDmaDeviceNamesT, BOOL);
static void XsDmaFillDescriptorStructure (XsDmaDescriptorParamsT*);
static UINT32 XsDmaDestroyLink (XsDmaDescriptorElementsTPT);
static UINT32 XsDmaPopulateDescWithBufs (XsDmaDescriptorElementsTPT );


/********************************************************************************/

#endif // C_DMA_CONTROLLER

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
热久久国产精品| 国产片一区二区三区| 日韩欧美一区二区三区在线| 国产午夜精品理论片a级大结局| 日韩一区欧美小说| 偷拍与自拍一区| 国产在线不卡一卡二卡三卡四卡| 国产91富婆露脸刺激对白| 色婷婷国产精品| 欧美一级久久久久久久大片| 五月天视频一区| 亚洲国产精品t66y| 亚洲国产视频直播| 国产呦萝稀缺另类资源| 在线国产亚洲欧美| 精品久久国产97色综合| 国产欧美一区二区精品性| 亚洲乱码一区二区三区在线观看| 免播放器亚洲一区| 99re热视频精品| 91精品国产综合久久久久久久| 欧美国产激情一区二区三区蜜月| 亚洲bt欧美bt精品777| 国产一区二区伦理| 欧美日韩美少妇| 中文字幕精品一区| 青青草97国产精品免费观看无弹窗版| k8久久久一区二区三区 | 久久精品欧美日韩精品| 亚洲午夜久久久久久久久久久 | 久久久久久久久久美女| 一区二区三区久久| 国产剧情在线观看一区二区| 欧美午夜不卡视频| 国产精品丝袜一区| 激情综合亚洲精品| 欧美日韩日本视频| 中文字幕在线一区| 国内不卡的二区三区中文字幕| 在线观看亚洲一区| 国产精品久久久久影视| 国产资源精品在线观看| 91精品婷婷国产综合久久竹菊| 亚洲免费av高清| www.66久久| 欧美激情中文不卡| 久久av老司机精品网站导航| 欧美日韩国产另类一区| 亚洲欧美日本在线| caoporm超碰国产精品| 国产丝袜欧美中文另类| 精品综合久久久久久8888| 在线电影欧美成精品| 一区二区三区影院| 91麻豆免费在线观看| 国产精品美女久久福利网站| 国产一区二区三区香蕉| 欧美成人乱码一区二区三区| 日本强好片久久久久久aaa| 在线欧美小视频| 亚洲综合色区另类av| 91网站最新网址| 最新久久zyz资源站| 风间由美性色一区二区三区| 精品99久久久久久| 久久精品99国产精品| 欧美一区二区在线免费观看| 亚洲.国产.中文慕字在线| 欧美三级乱人伦电影| 亚洲1区2区3区4区| 欧美麻豆精品久久久久久| 亚洲成人你懂的| 欧美日韩欧美一区二区| 天涯成人国产亚洲精品一区av| 欧美日韩色一区| 在线视频综合导航| 欧美成人官网二区| 国产一区二区在线观看视频| 欧美精品一区二区高清在线观看| 蜜臀av性久久久久蜜臀av麻豆| 91精品久久久久久蜜臀| 青娱乐精品视频| 精品久久久三级丝袜| 国产精品一区二区在线播放| 国产人久久人人人人爽| 成人激情动漫在线观看| 亚洲视频一区二区在线| 日本高清不卡aⅴ免费网站| 亚洲国产精品欧美一二99| 91麻豆精品国产自产在线观看一区 | 日产精品久久久久久久性色| 日韩欧美精品三级| 国产盗摄一区二区三区| 1000精品久久久久久久久| 在线欧美一区二区| 蜜臀av性久久久久av蜜臀妖精| 亚洲精品一区二区三区99| 国产成人精品免费网站| 亚洲女性喷水在线观看一区| 欧美日韩视频在线观看一区二区三区 | 国产福利一区二区三区视频| 国产精品嫩草影院com| 色哟哟日韩精品| 日本在线不卡视频| 久久精品夜色噜噜亚洲a∨| av不卡在线观看| 五月婷婷另类国产| 久久一区二区视频| 91同城在线观看| 日韩激情在线观看| 国产欧美精品一区二区色综合| 91在线视频18| 秋霞成人午夜伦在线观看| 国产精品区一区二区三| 欧美天堂一区二区三区| 激情av综合网| 亚洲精品久久久久久国产精华液 | 精品综合免费视频观看| 国产精品看片你懂得| 欧美喷水一区二区| 国产成人亚洲综合a∨婷婷| 亚洲高清中文字幕| 久久精品人人做人人综合| 欧美色视频在线观看| 国产精品一区二区三区99| 亚洲一区二区综合| 久久久久9999亚洲精品| 欧美亚洲综合久久| 丁香网亚洲国际| 日本伊人精品一区二区三区观看方式| 国产欧美日韩在线观看| 欧美日韩精品电影| 成人免费毛片app| 蜜臀精品久久久久久蜜臀| 自拍偷拍欧美激情| 欧美变态tickling挠脚心| 91浏览器入口在线观看| 狠狠色丁香婷综合久久| 亚洲永久免费视频| 国产女人18毛片水真多成人如厕| 欧美军同video69gay| 波多野结衣亚洲一区| 蜜桃av一区二区| 亚洲影院久久精品| 亚洲国产精品成人综合色在线婷婷 | 日韩不卡在线观看日韩不卡视频| 久久久久久久久久久黄色| 欧美影院午夜播放| 成人免费高清在线观看| 美女视频免费一区| 亚洲国产成人av网| 亚洲视频一区在线观看| 国产午夜一区二区三区| 日韩精品一区二区三区四区视频| 欧美亚洲禁片免费| 北条麻妃一区二区三区| 国产美女娇喘av呻吟久久| 强制捆绑调教一区二区| 亚洲一区二区黄色| 亚洲视频中文字幕| 国产精品成人免费| 日本一区二区三区国色天香| 欧美大片在线观看一区二区| 欧美日韩国产大片| 日本精品免费观看高清观看| av资源网一区| 成人a区在线观看| 国产精品99久久久久久有的能看 | 日韩亚洲国产中文字幕欧美| 欧美色倩网站大全免费| 欧美伊人精品成人久久综合97 | 爽爽淫人综合网网站| 亚洲最大成人网4388xx| 亚洲婷婷综合久久一本伊一区| 亚洲国产精品二十页| 欧美韩日一区二区三区四区| 久久久精品国产免费观看同学| 日韩欧美亚洲另类制服综合在线| 91精品婷婷国产综合久久性色| 在线不卡中文字幕| 欧美日韩电影一区| 制服丝袜中文字幕亚洲| 日韩视频一区二区三区在线播放 | 开心九九激情九九欧美日韩精美视频电影| 亚洲一区二区三区四区不卡| 亚洲自拍都市欧美小说| 亚洲成av人片观看| 日韩精品电影在线观看| 麻豆精品视频在线观看免费| 国产一区二区三区综合| 成人激情小说乱人伦| 99久久精品费精品国产一区二区| 99久久99久久精品国产片果冻| 91视频你懂的| 欧美午夜片在线看| 精品视频123区在线观看| 欧美一区永久视频免费观看| 精品国产91洋老外米糕| 国产亚洲精品中文字幕| 国产精品丝袜黑色高跟|