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

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

?? usbtcdnet2280initexit.c

?? This the compressed USB driver source code for vxworks5.6. It has device controller driver and other
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* usbTcdNET2280InitExit.c - initialization/uninitialization for NET2280 TCD *//* Copyright 2004 Wind River Systems, Inc. *//*Modification history--------------------01h,19oct04,ami  #if 0 removed in usbTcdNet2280FncAttach function01g,30sep04,pdg  Removed usbTcdNET2280Util.c01f,29sep04,pdg  Include filename changed01e,29sep04,ami  Changes for Mips01d,20sep04,ami  NET2280 tested in High Speed01c,17sep04,ami  After Control, Interrupt IN and Bulk OUT Testing01b,08sep04,ami  Code Review Comments Incorporated01a,04sep04,ami  First.*//*DESCRIPTIONThis file implements the initialization and uninitialization modules of TCD(Target Controller Driver) for the Netchip NET2280.This module exports a single entry point, usbTcdNET2280Exec().  This isthe USB_TCD_EXEC_FUNC for this TCD.  The caller passes requests to the TCD byconstructing TRBs, or Target Request Blocks, and passing them to this entrypoint.TCDs are initialized by invoking the TCD_FNC_ATTACH function.  In response tothis function, the TCD returns information about the target controller,including its USB speed, the number of endpoints it supports etc.INCLUDE FILES: usb/usbPlatform.h, usb/ossLib.h, usb/usbPciLib.h,               usb/target/usbHalCommon.h, usb/target/usbTcd.h               drv/usb/target/usbNET2280.h,               drv/usb/target/usbNET2280Tcd.h,               drv/usb/target/usbTcdNET2280Lib.h,               drv/usb/target/usbTcdNET2280Debug.h, rebootLib.h,               usb/target/usbPeriphInstr.h*//* includes */#include "usb/usbPlatform.h"#include "usb/ossLib.h"#include "usb/usbPciLib.h"#include "usb/target/usbHalCommon.h"#include "usb/target/usbTcd.h"#include "drv/usb/target/usbNET2280.h"#include "drv/usb/target/usbNET2280Tcd.h"#include "drv/usb/target/usbTcdNET2280Lib.h"#include "drv/usb/target/usbTcdNET2280Debug.h"#include "usb/target/usbPeriphInstr.h"#include "rebootLib.h"#include "usbTcdNET2280DeviceControl.c"#include "usbTcdNET2280Endpoint.c"#include "usbTcdNET2280Interrupt.c"/* defines */#define MAX_NET2280_CONTROLLERS 5/* globals */UINT32 usbNET2280Debug = 0;UINT32 baseNET2280Addr[MAX_NET2280_CONTROLLERS] = {0,0,0,0,0};   /******************************************************************************** usbNET2280Exit - function to be called on a reboot** This function clears the USBCTL register bit on a reboot.** RETURNS: None.** ERRNO:*   None.** \NOMANUAL*/LOCAL VOID usbNET2280Exit    (    int	startType    )    {        UINT8	i = 0;    for (i = 0; i < MAX_NET2280_CONTROLLERS; i++)        {                 /* for all NET2280 controllers, reset the USB_CTL register */         if (baseNET2280Addr [i] != 0)              *(volatile UINT32 *)(baseNET2280Addr [i] + NET2280_USBCTL_REG) = 0;         }    } /******************************************************************************** usbTcdNET2280FncAttach - function implementing function code TCD_FNC_ATTACH** The purpose of this function is to initialize the Target Controller* for USB operation.** RETURNS: OK or ERROR if failed to initialize the Target Controller.** ERRNO:* \is* \i S_usbTcdLib_BAD_PARAM* Bad parameter is passed.** \i S_usbTcdLib_OUT_OF_MEMORY* No more memory to allocate variables.** \i S_usbTcdLib_HW_NOT_READY* Hardware is not ready.** \i  S_usbTcdLib_GENERAL_FAULT* Fault occured in upper software layers.* \ie** \NOMANUAL*/LOCAL STATUS usbTcdNET2280FncAttach    (    pTRB_ATTACH		pTrb		/* TRB to be executed */    )    {    pTRB_HEADER pHeader = (pTRB_HEADER) pTrb;	/* TRB_HEADER */    pUSB_TCD_NET2280_TARGET	pTarget = NULL;	/* USB_TCD_NET2280_TARGET */    pUSB_TCD_NET2280_PARAMS	pParams = NULL;	/* USB_TCD_NET2280_PARAMS */    UINT32	data32 = 0;			/* temporary variable */    UINT8	i = 0 ;    /* WindView Instrumentation */    USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,    "usbTcdNET2280FncAttach entered...", USB_TCD_NET2280_WV_FILTER);    USB_NET2280_DEBUG ("usbTcdNET2280FncAttach : Entered...\n",0,0,0,0,0,0);    /* Validate Parameters */    if (pHeader == NULL || pHeader->trbLength < sizeof (TRB_HEADER))        {        /* WindView Instrumentation */        USB_TCD_LOG_EVENT (USB_TCD_NET2280_INIT_EXIT,        "usbTcdNET2280FncAttach exiting: Bad Parameter Received...",        USB_TCD_NET2280_WV_FILTER);        USB_NET2280_ERROR ("usbTcdNET2280FncAttach : Bad Parameters...\n",        0,0,0,0,0,0);        return ossStatus (S_usbTcdLib_BAD_PARAM);        }    if ( (pTrb->tcdParam == NULL ) || (pTrb->usbHalIsr == NULL ) ||         (pTrb->pHalDeviceInfo == NULL) || (pTrb->pDeviceInfo == NULL)  )        {        /* WindView Instrumentation */        USB_TCD_LOG_EVENT (USB_TCD_NET2280_INIT_EXIT,        "usbTcdNET2280FncAttach exiting: Bad Parameter Received...",        USB_TCD_NET2280_WV_FILTER);        USB_NET2280_ERROR ("usbTcdNET2280FncAttach : Bad Parameters...\n",        0,0,0,0,0,0);        return ossStatus (S_usbTcdLib_BAD_PARAM);        }    pParams = (pUSB_TCD_NET2280_PARAMS)pTrb->tcdParam;    /*     * Check if the base address[0] is valid.If not, the device is not located,     * return an error in this case     */    if (pParams->ioBase[0] == 0)        {        /* WindView Instrumentation */        USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,        "usbTcdNET2280FncAttach exiting: Device not located...",        USB_TCD_NET2280_WV_FILTER);                USB_NET2280_ERROR ("usbTcdNET2280FncAttach : Device not located... \n",        0,0,0,0,0,0);        return ossStatus (S_usbTcdLib_HW_NOT_READY);        }    /* Create a pUSB_TCD_NET2280_TARGET structure to manage controller. */    if ((pTarget = OSS_CALLOC (sizeof (*pTarget))) == NULL )        {        /* WindView Instrumentation */        USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,        "usbTcdNET2280FncAttach exiting: Memory Allocation Error...",        USB_TCD_NET2280_WV_FILTER);        USB_NET2280_ERROR ("usbTcdNET2280FncAttach : Memory Allocation Error \        ...\n",0,0,0,0,0,0);        return ossStatus (S_usbTcdLib_OUT_OF_MEMORY);        }    /* Store the user supplied parameters */    for (i = 0 ; i < NET2280_NO_OF_PCI_BADDR ; i++)        pTarget->ioBase [i] = pParams->ioBase [i];    pTarget->irq = pParams->irq;    /*      * Store the base addresses in a vacant slot in the the global variable.     * It is used to reset the USB_CTL register during warm reboot.     */    for (i = 0; i < MAX_NET2280_CONTROLLERS; i++)        {        if (baseNET2280Addr [i] == 0)                        baseNET2280Addr [i] = pTarget->ioBase [0];        }               /* Hook the function which needs to be called on a reboot */     if(ERROR == rebootHookAdd((FUNCPTR)usbNET2280Exit))	{        /* WindView Instrumentation */         USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,        "usbTcdNET2280FncAttach exiting: Enable to hook function for reboot...",        USB_TCD_NET2280_WV_FILTER);           USB_NET2280_ERROR ( " usbTcdNET2280FncAttach: Not able \        to hook a function on reboot ", 0,0,0,0,0,0);        OSS_FREE (pTarget);		return ERROR;        }    /* Initialize the DEVINIT regsiter. */        data32 = NET2280_DEVINIT_CLK_FREQ;    data32 |= NET2280_DEVINIT_PCIEN | NET2280_DEVINIT_8051_RESET;    NET2280_CFG_WRITE (pTarget, NET2280_DEVINIT_REG, data32);    /* Reset the FIFO */    data32 = NET2280_CFG_READ (pTarget, NET2280_DEVINIT_REG);    data32 |= NET2280_DEVINIT_FIFO_RESET | NET2280_DEVINIT_USB_RESET;       NET2280_CFG_WRITE (pTarget, NET2280_DEVINIT_REG, data32);    /* Disable auto-enumeration by setting all bits of STDRSP register to 0 */    NET2280_CFG_WRITE (pTarget, NET2280_STDRSP_REG, 0);    /* clear the interrupt status register */    NET2280_CFG_WRITE (pTarget, NET2280_IRQSTAT0_REG, NET2280_IRQENB0_SETUP);    NET2280_CFG_WRITE (pTarget, NET2280_IRQSTAT1_REG, NET2280_IRQENB1_REG_MASK);     /*     * Enable the interrupts for resume, suspend, root port reset, VBUS status     * change, power state status change, parity error interrupt & PCI     * Interrupt Enable     */    /* Suspend Interrupt needs to be handled */    data32 = NET2280_IRQENB1_RESM |              NET2280_IRQENB1_RPRESET | NET2280_IRQENB1_VBUS |             NET2280_IRQENB1_PSCINTEN | NET2280_IRQENB1_PCIPARITYERR |             NET2280_IRQENB1_INTEN;    NET2280_CFG_WRITE (pTarget, NET2280_PCIIRQENB1_REG, data32);     /*     * Set the Bit USB Root Port Wakeup Eanble of USBCTL register to enable the     * root part wake up condition to be detected      */    data32 = NET2280_USBCTL_REG_RPWE;    NET2280_CFG_WRITE (pTarget, NET2280_USBCTL_REG, data32);    /* Store HAL parameters */    pTarget->usbHalIsr = pTrb->usbHalIsr;    pTarget->usbHalIsrParam = pTrb->usbHalIsrParam;    /* Return target information to caller */    pTrb->pHalDeviceInfo->uNumberEndpoints = NET2280_NUM_ENDPOINTS;    /* supports remote wake up, test mode feature and is USB2 compliant */    pTrb->pDeviceInfo->uDeviceFeature = USB_FEATURE_DEVICE_REMOTE_WAKEUP |                                        USB_FEATURE_TEST_MODE |                                        USB_FEATURE_USB20;    /* Reset the dmaEot */    pTarget->dmaEot = 0;    /* supported endpoint bitmap */    pTrb->pDeviceInfo->uEndpointNumberBitmap = USB_NET2280_TCD_ENDPOINT_BITMAP;    /* Hook the ISR */    if (usbPciIntConnect ((INT_HANDLER_PROTOTYPE)usbTcdNET2280Isr,        (pVOID)pTarget, pTarget->irq)!= OK)        {        OSS_FREE (pTarget);        USB_NET2280_ERROR ("usbTcdNET2280FncAttach :Error Hooking the ISR...\n",        0,0,0,0,0,0);        return ERROR;        }    /* update handle */    pHeader->handle = pTarget;    USB_NET2280_DEBUG ("usbTcdNET2280FncAttach : Exiting...\n",0,0,0,0,0,0);    return OK;    }/******************************************************************************** usbTcdNET2280FncDetach - implements TCD_FNC_DETACH** The purpose of this function is to shutdown the Target Controller** RETURNS: OK or ERROR, if TCD is not able to detach.** ERRNO:* \is* \i S_usbTcdLib_BAD_PARAM* Bad parameter is passed.* \ie** \NOMANUAL*/LOCAL STATUS usbTcdNET2280FncDetach    (    pTRB_DETACH		pTrb		/* TRB to be executed */    )    {    pTRB_HEADER	pHeader = (pTRB_HEADER) pTrb;	/* TRB_HEADER */    pUSB_TCD_NET2280_TARGET	pTarget = NULL;	/* pUSB_TCD_NET2280_TARGET */    UINT32	data32 = 0;    /* WindView Instrumentation */    USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,   "usbTcdNET2280FncDetach entered...", USB_TCD_NET2280_WV_FILTER);    USB_NET2280_DEBUG ("usbTcdNET2280FncDetach : Entered...\n",0,0,0,0,0,0);    /* Validate parameters */    if (pHeader == NULL || pHeader->trbLength < sizeof (TRB_HEADER) ||        (pHeader->handle == NULL))        {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久99精品久久久久久| 欧美亚洲一区二区在线| 午夜精品久久久久久久| 久久众筹精品私拍模特| 91在线无精精品入口| 亚洲精品免费在线播放| 精品精品国产高清a毛片牛牛 | 国内外成人在线| 日韩专区在线视频| 亚洲一卡二卡三卡四卡| 国产精品女主播av| 精品国产一二三区| 久久精品亚洲精品国产欧美kt∨| 欧美亚洲一区三区| 91免费小视频| 91麻豆国产在线观看| 99久久伊人久久99| 国产99精品视频| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲国产sm捆绑调教视频 | 久久精品国产精品亚洲精品| 亚洲精选视频免费看| 国产偷国产偷亚洲高清人白洁| 精品成人佐山爱一区二区| 日韩欧美一区二区不卡| 欧美v国产在线一区二区三区| 欧美人与z0zoxxxx视频| 日韩欧美一级特黄在线播放| 久久久国产午夜精品| 国产人成一区二区三区影院| 欧美三级中文字幕在线观看| 99精品视频一区二区三区| 国产精品一区二区黑丝| 国产成人精品在线看| 成人激情免费电影网址| 韩国精品久久久| 狠狠色狠狠色综合日日91app| 久久99精品久久只有精品| 亚洲h在线观看| 丝袜亚洲另类欧美| 国产精品资源在线看| 色婷婷亚洲精品| 欧美肥妇bbw| 欧美国产激情一区二区三区蜜月| 一区二区三区不卡视频在线观看| 青青草97国产精品免费观看无弹窗版| 国产美女娇喘av呻吟久久| 成人97人人超碰人人99| 欧美亚洲综合网| 国产亚洲短视频| 视频一区在线视频| 国产乱子轮精品视频| 成人av影视在线观看| 欧美日韩另类一区| 91精品欧美久久久久久动漫| 337p粉嫩大胆噜噜噜噜噜91av| 日韩一区二区三免费高清| 欧美国产日韩一二三区| 亚洲成a人v欧美综合天堂| 99久久精品一区二区| 精品剧情v国产在线观看在线| 亚洲黄色在线视频| 日本特黄久久久高潮| 欧美特级限制片免费在线观看| 国产片一区二区| 亚洲二区在线视频| 国产传媒日韩欧美成人| 欧美私人免费视频| 日韩理论片在线| 日韩精品免费视频人成| 国产成人综合亚洲91猫咪| 国产成人在线网站| 欧美日韩一级二级| 国产三级三级三级精品8ⅰ区| 亚洲欧美视频在线观看视频| 看国产成人h片视频| 欧美成人猛片aaaaaaa| 久久精品国产精品亚洲红杏| 欧美成人女星排名| 毛片av中文字幕一区二区| 欧美军同video69gay| 婷婷成人综合网| 2020日本不卡一区二区视频| 国产专区综合网| 中文字幕乱码久久午夜不卡| gogo大胆日本视频一区| 亚洲黄网站在线观看| 色天使色偷偷av一区二区 | 欧美一区二区三区免费| 日韩精品欧美精品| 国产精品少妇自拍| 欧美一区二区三区免费视频| 国产成人av网站| 亚洲va国产天堂va久久en| 欧美一级电影网站| 91麻豆免费视频| 久久99精品久久久| 欧美韩国日本综合| 日韩视频国产视频| 色狠狠av一区二区三区| 亚洲大尺度视频在线观看| 精品国产乱码久久久久久浪潮 | 欧美日韩亚洲综合在线| 免费看日韩a级影片| 精品国产免费久久| 欧洲精品一区二区三区在线观看| 免费观看久久久4p| 日韩精品一区二| 成人app软件下载大全免费| 日韩vs国产vs欧美| 国产精品免费久久| 911精品产国品一二三产区| 不卡av电影在线播放| 亚洲成人免费影院| 日韩毛片高清在线播放| 欧美日韩不卡一区二区| av一区二区不卡| 岛国精品在线播放| 久久99蜜桃精品| 热久久国产精品| 免费精品视频在线| 天堂精品中文字幕在线| 亚欧色一区w666天堂| 一区二区三区中文在线| 国产亚洲欧美一区在线观看| 日韩一区二区在线看| 欧美一区二区免费| 日韩色视频在线观看| 欧美色视频一区| 99久久免费精品| 91麻豆国产福利在线观看| 国产99久久久国产精品潘金| 国产99一区视频免费| 久久精工是国产品牌吗| 午夜精品久久一牛影视| 亚洲午夜视频在线| 日韩影院免费视频| 久久99蜜桃精品| 国产精品66部| 色八戒一区二区三区| 欧美亚洲日本一区| 欧美www视频| 亚洲欧美在线视频观看| 亚洲第一狼人社区| 久久国产精品99久久人人澡| 成人一级片在线观看| 91浏览器入口在线观看| 欧美丰满嫩嫩电影| 国产清纯白嫩初高生在线观看91 | 麻豆精品视频在线观看视频| 日本成人中文字幕| 成人免费看黄yyy456| 欧美日韩在线播| 亚洲精品一区二区三区99| 一区二区视频在线看| 久久精品免费观看| 欧美色欧美亚洲另类二区| 国产女主播视频一区二区| 亚洲制服丝袜av| 99riav一区二区三区| 欧美疯狂做受xxxx富婆| 中文子幕无线码一区tr| 美腿丝袜亚洲色图| 欧美伊人精品成人久久综合97| 欧美大胆一级视频| 亚洲视频网在线直播| 日本不卡视频在线观看| 92国产精品观看| 久久久亚洲精华液精华液精华液| 亚洲黄网站在线观看| 国产mv日韩mv欧美| 中文字幕不卡的av| 樱桃国产成人精品视频| 欧美日韩中文字幕一区| 亚洲尤物在线视频观看| 欧美日韩免费不卡视频一区二区三区| 亚洲精品国产成人久久av盗摄 | 欧美日韩一区视频| 欧美精品欧美精品系列| 亚洲欧美日韩一区二区三区在线观看| 韩国av一区二区三区在线观看| 精品视频一区二区不卡| 日韩一区有码在线| 国产精品一区二区久激情瑜伽| 欧美一级片在线观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 怡红院av一区二区三区| 99国产精品久| 亚洲综合成人在线| 在线免费一区三区| 亚洲高清免费视频| 在线播放国产精品二区一二区四区 | 精品视频免费看| 日本va欧美va瓶| 久久久蜜桃精品| 不卡视频一二三| 中文字幕视频一区| 欧美亚洲日本一区| 亚洲成在线观看| 久久蜜桃av一区二区天堂|