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

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

?? 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))        {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一个色在线综合| 成人一二三区视频| 美国欧美日韩国产在线播放| 色网综合在线观看| 午夜视黄欧洲亚洲| 国产精品久久久久永久免费观看| 国产精品免费久久久久| 偷拍日韩校园综合在线| 精品一区二区免费看| 色婷婷激情综合| 久久综合九色欧美综合狠狠 | 亚洲一区免费在线观看| 久久av中文字幕片| 色综合久久久久| 在线不卡免费av| 国产精品久久综合| 日本va欧美va瓶| 成人少妇影院yyyy| 欧美日韩一区久久| 本田岬高潮一区二区三区| 欧美精品在线视频| 亚洲欧美偷拍卡通变态| 国产精品久久一级| 国内精品免费**视频| 欧美日韩在线播放三区| 国产精品国产自产拍高清av王其 | 欧美日韩三级一区二区| 国产欧美日韩另类一区| 久久国产乱子精品免费女| 色婷婷久久一区二区三区麻豆| 久久久另类综合| 麻豆精品久久久| 在线视频一区二区三区| 国产精品综合网| 韩国欧美国产一区| 在线成人免费视频| 天天爽夜夜爽夜夜爽精品视频| 91色九色蝌蚪| 一区二区三区四区乱视频| 风间由美一区二区av101| 精品va天堂亚洲国产| 日韩和欧美一区二区三区| 91黄色激情网站| 亚洲精品免费在线播放| 亚洲免费观看高清完整版在线| 国产成人av福利| 久久亚洲精品小早川怜子| 看片网站欧美日韩| 日韩欧美二区三区| 亚洲高清视频在线| 欧美日韩免费视频| 亚洲一线二线三线视频| 色爱区综合激月婷婷| 亚洲人成小说网站色在线 | 国产91丝袜在线观看| 精品久久久久av影院| 精品亚洲成a人| 久久久精品影视| 99精品视频在线观看免费| 中文字幕一区免费在线观看| 国产成人免费网站| 国产午夜一区二区三区| 久久国产免费看| 国产午夜亚洲精品羞羞网站| jlzzjlzz亚洲日本少妇| 一区二区三区国产精华| 91麻豆精品国产91| 久久91精品国产91久久小草| 久久久综合九色合综国产精品| 国产白丝网站精品污在线入口| 国产欧美一区二区精品仙草咪| 成人深夜在线观看| 一区二区三区中文字幕在线观看| 色哟哟一区二区三区| 亚洲欧美一区二区三区极速播放 | 99久久久精品| 婷婷综合另类小说色区| 337p日本欧洲亚洲大胆色噜噜| 国产精品一级黄| 亚洲久草在线视频| 欧美电影免费观看高清完整版在线 | 成人av在线电影| 亚洲欧洲中文日韩久久av乱码| 欧美影院一区二区三区| 中文字幕一区日韩精品欧美| 欧美丰满美乳xxx高潮www| 麻豆国产91在线播放| 国产精品成人在线观看| 欧美日韩极品在线观看一区| 国产乱码精品一区二区三区五月婷| 亚洲欧洲日韩在线| 91精品国产免费| 国内精品不卡在线| 亚洲午夜日本在线观看| 欧美tk—视频vk| 欧美影院一区二区三区| 国产精品一区二区在线观看不卡| 亚洲蜜臀av乱码久久精品| 日韩一级完整毛片| 9i在线看片成人免费| 免费精品视频在线| 久久亚洲私人国产精品va媚药| 欧美写真视频网站| 成人综合在线视频| 久久国产精品区| 性久久久久久久久| 97久久精品人人做人人爽| 日韩av一级电影| 伊人开心综合网| 久久久91精品国产一区二区精品| 欧美男同性恋视频网站| 91免费版在线看| 国产福利视频一区二区三区| 亚洲成人免费av| 亚洲色大成网站www久久九九| 精品国产乱子伦一区| 欧美日韩免费一区二区三区| 99视频一区二区| 成人黄色在线网站| 久草在线在线精品观看| 日韩成人精品在线观看| 亚洲图片欧美色图| 亚洲视频网在线直播| 欧美成人福利视频| 日韩欧美资源站| 欧美美女bb生活片| 欧美视频中文字幕| 欧美无砖专区一中文字| 色88888久久久久久影院按摩| av电影在线观看一区| 久久99热这里只有精品| 亚洲一区视频在线观看视频| 亚洲精品成人天堂一二三| 亚洲人精品一区| 亚洲摸摸操操av| 日韩毛片精品高清免费| 综合av第一页| 亚洲精品你懂的| 中文字幕中文字幕在线一区 | 国产乱人伦精品一区二区在线观看| 国产成人在线视频网站| 91久久国产最好的精华液| 欧美一区二区成人| 久久九九久久九九| 亚洲国产精品久久艾草纯爱| 蜜桃av噜噜一区| 91美女在线看| 欧美tk—视频vk| 亚洲免费在线观看视频| 久久草av在线| 色婷婷狠狠综合| 久久久欧美精品sm网站| 亚洲最大的成人av| 国产伦精一区二区三区| 91国模大尺度私拍在线视频| 日韩亚洲国产中文字幕欧美| 亚洲国产成人私人影院tom| 婷婷亚洲久悠悠色悠在线播放| 国产精品夜夜嗨| 91精品免费在线观看| 中文字幕一区av| 国产麻豆成人精品| 欧美日韩国产在线播放网站| 国产精品欧美极品| 美女脱光内衣内裤视频久久影院| 99视频精品全部免费在线| 日韩美女主播在线视频一区二区三区| 国产精品国产三级国产三级人妇 | 午夜精品影院在线观看| 懂色av一区二区三区免费观看| 欧美高清精品3d| 亚洲色图19p| 成人激情图片网| 精品福利av导航| 天天操天天干天天综合网| 91麻豆免费观看| 中文字幕不卡一区| 狠狠色综合色综合网络| 欧美高清hd18日本| 亚洲福中文字幕伊人影院| 94色蜜桃网一区二区三区| 久久久久久亚洲综合影院红桃| 美腿丝袜在线亚洲一区 | 色88888久久久久久影院野外| 国产日产欧美一区| 激情综合色综合久久综合| 欧美一区二区三区色| 亚洲国产欧美一区二区三区丁香婷| 99久久婷婷国产综合精品| 欧美激情一区二区三区在线| 国产呦萝稀缺另类资源| 欧美成人aa大片| 狠狠色狠狠色综合| 精品日韩成人av| 精品系列免费在线观看| 日韩三级免费观看| 精品亚洲成a人| 久久精品人人爽人人爽| 国产精品一级片| 国产精品丝袜黑色高跟|