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

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

?? usbtcdnet2280interrupt.c

?? This the compressed USB driver source code for vxworks5.6. It has device controller driver and other
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* usbTcdNET2280Interrupt.c - defines modules for interrupt handling *//* Copyright 2004 Wind River Systems, Inc. *//*Modification history--------------------01i,30sep04,pdg  DMA testing fixes01h,29sep04,ami  Mips related Changes01g,23sep04,pdg  Fix for short packet handling and not losing a setup                 interrupt.01f,22sep04,pdg  Fix for setting the address01e,21sep04,pdg  Full speed testing fixes01d,20sep04,ami  NET2280 tested for High Speed01c,17sep04,ami  After Control, Interrupt IN and Bulk OUT Testing   01b,08sep04,ami  Code Review Comments Incorporated01a,03sep04,ami Written*//*DESCRIPTIONThis file implements the interrupt related functionalities of TCD(Target Controller Driver) for the Netchip NET2280INCLUDE FILES: usb/usbPlatform.h, usb/ossLib.h, usb/usb.h,               usb/target/usbHalCommon.h, usb/target/usbTcd.h               drv/usb/target/usbNET2280.h,               drv/usb/target/usbNET2280Tcd.h,               drv/usb/target/usbTcdNET2280Debug.h               usb/target/usbPeriphInstr.h*//* includes */#include "usb/usbPlatform.h"#include "usb/ossLib.h"#include "usb/usb.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/usbTcdNET2280Debug.h"#include "usb/target/usbPeriphInstr.h"/********************************************************************************* usbTcdNET2280Isr - isr of NET2280 TCD** This is the ISR for the NET2280 TCD.** RETURNS: N/A** ERRNO:*   none** \NOMANUAL*/LOCAL VOID usbTcdNET2280Isr    (    pUSB_TCD_NET2280_TARGET	pTarget		/* ISR Parameters */    )    {    UINT32	data32 = 0 ;			/* temporary register */    /* WindView Instrumentation */    USB_TCD_LOG_EVENT(USB_TCD_NET2280_INTERRUPT,    "usbTcdNET2280Isr entered...", USB_TCD_NET2280_WV_FILTER);    USB_NET2280_DEBUG ("usbTcdNET2280Isr: Entered...\n",0,0,0,0,0,0);    if ( pTarget == NULL )        {        USB_NET2280_ERROR("usbTcdNET2280Isr : Bad Parameters...\n",0,0,0,0,0,0);        return;        }    /* Disable the Interrupts. Reset bit 31 of PCIIRQENB1 register */    data32 = NET2280_CFG_READ (pTarget, NET2280_PCIIRQENB1_REG);    data32 &= ~NET2280_XIRQENB1_INTEN;    NET2280_CFG_WRITE (pTarget, NET2280_PCIIRQENB1_REG, data32);    /* Call the HAL ISR */    (*pTarget->usbHalIsr)(pTarget->usbHalIsrParam);    /* Enable the Interrupts. Set bit 31 of PCIIRQENB1 register */    data32 = NET2280_CFG_READ (pTarget, NET2280_PCIIRQENB1_REG);    data32 |= NET2280_XIRQENB1_INTEN;    NET2280_CFG_WRITE (pTarget, NET2280_PCIIRQENB1_REG, data32);    USB_NET2280_DEBUG ("usbTcdNET2280Isr: Exiting...\n",0,0,0,0,0,0);    return;    }/********************************************************************************* usbTcdNET2280FncInterruptStatusGet - to get the interrupt status** This function returns the interrupt status i.e whether the reset interrupt,* suspend interrupt, resume interrupt, disconnect interrupt or endpoint* related interrupt is pending. It also carries out the handling of certain* interrpts which are not intimated to the HAL.** RETURNS: OK or ERROR, if the interrupt status is not retrieved successfully** ERRNO:* \is* \i S_usbTcdLib_BAD_PARAM.* Bad Parameter is passed.* \ie** \NOMANUAL*/LOCAL STATUS usbTcdNET2280FncInterruptStatusGet    (    pTRB_INTERRUPT_STATUS_GET_CLEAR pTrb	/* TRB to be executed */    )    {    pTRB_HEADER	pHeader = (pTRB_HEADER) pTrb;	/* TRB_HEADER */    pUSB_TCD_NET2280_TARGET	pTarget = NULL;	/* USB_TCD_NET2280_TARGET */    UINT32	data32 = 0;			/* temporary variable */    UINT8	i = 0;#ifdef NET2280_DMA_SUPPORTED    UINT32	tempData = 0;			/* Temporary variable */#endif    /* WindView Instrumentation */    USB_TCD_LOG_EVENT(USB_TCD_NET2280_INTERRUPT,    "usbTcdNET2280FncInterruptStatusGet entered...", USB_TCD_NET2280_WV_FILTER);    USB_NET2280_DEBUG ("usbTcdNET2280FncInterruptStatusGet: Entered...\n",    0,0,0,0,0,0);    /* Validate Parameters */    if ((pHeader == NULL) || (pHeader->trbLength < sizeof (TRB_HEADER)) ||        (pHeader->handle == NULL))        {        /* WindView Instrumentation */        USB_TCD_LOG_EVENT(USB_TCD_NET2280_INTERRUPT,        "usbTcdNET2280FncInterruptStatusGet exiting: Bad Parameter Received...",        USB_TCD_NET2280_WV_FILTER);        USB_NET2280_ERROR ("usbTcdNET2280FncInterruptStatusGet: \        Bad Parameters...\n",0,0,0,0,0,0);        return ossStatus (S_usbTcdLib_BAD_PARAM);        }    pTarget =  (pUSB_TCD_NET2280_TARGET) pHeader->handle;    /* Reset uInterruptStatus */    pTrb->uInterruptStatus = 0;    /*     * Read IRQSTAT0 register to determine the whether any endpoint related     * interrupts have occured     */    data32 = NET2280_CFG_READ (pTarget, NET2280_IRQSTAT0_REG);    /* Mask the unwanted interrupts */    data32 &= NET2280_CFG_READ(pTarget,NET2280_PCIIRQENB0_REG);      /* If bit 7 is set, setup interrupt has occured */    if ((data32 & NET2280_IRQENB0_SETUP) != 0)        {        /* To store the value of interruptEnable register */        UINT32 intEnableValue = 0;        USB_NET2280_DEBUG ("usbTcdNET2280FncInterruptStatusGet: Setup Interrupt\        ...\n",0,0,0,0,0,0);        /* WindView Instrumentation */        USB_TCD_LOG_EVENT(USB_TCD_NET2280_INTERRUPT,        "usbTcdNET2280FncInterruptStatusGet: Setup Event Occured...",        USB_TCD_NET2280_WV_FILTER);        pTarget->setupIntPending = TRUE;        /*         * Disable the setup interrupt, till we handle the setup. This will         * be enabled in the endpoint interrupt status clear.         */        intEnableValue = NET2280_CFG_READ(pTarget,NET2280_PCIIRQENB0_REG);        intEnableValue &= ~NET2280_IRQENB0_SETUP;        NET2280_CFG_WRITE (pTarget,NET2280_PCIIRQENB0_REG, intEnableValue);        /* Set the endpoint interrupt mask value */        pTrb->uInterruptStatus |= USBTCD_ENDPOINT_INTERRUPT_MASK;        }    /* Check if any endpoint specific interrupts have occured */     if ((data32 & NET2280_IRQENB0_EPMASK) != 0)         {        /* If bits 0:6 are set, endpoint related interrupt has occured */        for (i = NET2280_ENDPT_0_OUT; i <= NET2280_ENDPT_F; i++)            {            if ((data32 & NET2280_IRQENB0_EP(i)) != 0)                { 	        UINT32	dataEpStat = 0;                 /* set bit 4 if TRB :: uInterruptStatus */                pTrb->uInterruptStatus |= USBTCD_ENDPOINT_INTERRUPT_MASK;                /*                 * Read the EP_STAT regsiter for the endpoint and determine the                  * type of interrupt that has occured                 */                dataEpStat = NET2280_CFG_READ (pTarget,                              NET2280_EP_STAT_OFFSET(i));                /*                 * If the endpoint is not NET2280_ENDPT_0, update endptIntPending and                  * clear the particular bit in EP_STAT regsiter,                 * else determine the type of interrupt on endpoint 0, update                  * endptIntPending accordingle and clear the EP_STAT register                 */                 if (i != NET2280_ENDPT_0_OUT)                  {                                 pTarget->endptIntPending |= (1 << i);                  /* Clear the EP_STAT register */                  dataEpStat = (NET2280_EP_STAT_DPT | NET2280_EP_STAT_DPR |                                                      NET2280_EP_STAT_SPOD);                  NET2280_CFG_WRITE (pTarget,  NET2280_EP_STAT_OFFSET(i),                                    dataEpStat);                                                 }                   else                                       {                    if ((dataEpStat & NET2280_EP_STAT_DPT) != 0)                        {                        /*                          * Check if the address is to be set. If this                         * condition succeeds, then the data packet                         * transmitted interrupt has occured on the                         * status stage completion of the setAddress                         * standard request. So we write to OURADDR register                         * to set the new address.                         */                        if (pTarget->addressTobeSet != 0)                            {                                                       NET2280_CFG_WRITE(pTarget, NET2280_OURADDR_REG,                                              pTarget->addressTobeSet);                                                       /* Reset the addressTobeSet value */                            pTarget->addressTobeSet = 0;                            }                         /* Control In Interrupt. Set bit 7 of endptIntPending */                         pTarget->endptIntPending |= (1 << NET2280_ENDPT_0_IN);                        /* Clear the EP_STAT regsiter */                        NET2280_CFG_WRITE (pTarget,  NET2280_EP_STAT_OFFSET(i),                                    NET2280_EP_STAT_DPT);                        }                    if ((dataEpStat & NET2280_EP_STAT_DPR) != 0)                        {                        if (pTarget->setupIntPending == FALSE)                            {                            /* Clear the EP_STAT regsiter */                            NET2280_CFG_WRITE (pTarget,  NET2280_EP_STAT_OFFSET(i),                                                dataEpStat & NET2280_EP_STAT_DPR);                            }                        else                            {                            UINT32 dataTemp = 0;                              dataTemp = NET2280_CFG_READ (pTarget,                                                    NET2280_EP_IRQENB_OFFSET(i));                            dataTemp &= ~NET2280_EP_STAT_DPR;                            NET2280_CFG_WRITE(pTarget,                                          NET2280_EP_IRQENB_OFFSET(i),dataTemp);                                                      }                        /*                         * Disable the control status interrupt. We enable this in                          * usbTcdNET2280FncCopyDataToEpbuf, when the callback calls this                          * function for status stage. This ensures that we have handled                          * Data OUT stage before handling the Control Status stage                         */                                                          dataEpStat = NET2280_CFG_READ (pTarget,                                                        NET2280_PCIIRQENB1_REG);                        dataEpStat &= ~NET2280_XIRQENB1_CS;                        NET2280_CFG_WRITE (pTarget, NET2280_PCIIRQENB1_REG,                                            dataEpStat);                                                    		pTarget->statusINPending = TRUE;	                        /* Control Out Interrupt. Set bit 0 of endptIntPending */                        pTarget->endptIntPending |= (1 << NET2280_ENDPT_0_OUT);                        }                    }                }            }    	}    /* Read IRQSTAT1 register */    data32 = NET2280_CFG_READ (pTarget, NET2280_IRQSTAT1_REG);    /* Mask the unwanted interrupts */    data32 &= NET2280_CFG_READ(pTarget,NET2280_PCIIRQENB1_REG );    /* reset interrupt */    if ((data32 & NET2280_IRQENB1_RPRESET) != 0)        {        USB_NET2280_DEBUG ("usbTcdNET2280FncInterruptStatusGet: Reset Interrupt\        ...\n",0,0,0,0,0,0);        /* WindView Instrumentation */        USB_TCD_LOG_EVENT(USB_TCD_NET2280_INTERRUPT,        "usbTcdNET2280FncInterruptStatusGet: Reset Event Occured...",        USB_TCD_NET2280_WV_FILTER);    	/* set bit 1 of TRB :: uInterruptStatus */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品视频网| 亚洲自拍欧美精品| 欧美午夜免费电影| 不卡的av在线播放| 91在线观看成人| 欧美羞羞免费网站| 欧美精品在线观看一区二区| 欧美日韩精品高清| 日韩欧美一区二区免费| 26uuu国产日韩综合| 久久精品水蜜桃av综合天堂| 国产欧美一区二区三区在线老狼| 久久先锋影音av| 亚洲欧洲av在线| 亚洲主播在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久精品久久综合| 国产精品一区二区果冻传媒| 粉嫩av一区二区三区粉嫩| 国产成人免费网站| 色噜噜狠狠成人中文综合 | 丝袜诱惑亚洲看片| 美女网站色91| 不卡高清视频专区| 欧美中文字幕一区二区三区 | 日韩激情在线观看| 国产成人在线看| 91麻豆蜜桃一区二区三区| 欧美日韩在线电影| 国产婷婷一区二区| 亚洲一区二区精品久久av| 精品亚洲porn| 日本韩国一区二区三区视频| 日韩精品中文字幕一区| 亚洲日本在线a| 国内精品伊人久久久久av影院| 精品视频一区三区九区| 国产三级精品三级在线专区| 亚洲成人在线观看视频| 成人激情电影免费在线观看| 3d动漫精品啪啪1区2区免费| 国产精品乱码久久久久久| 亚洲综合av网| 成人精品国产福利| 日韩精品中午字幕| 亚洲高清免费观看高清完整版在线观看| 久久www免费人成看片高清| 91影视在线播放| 久久嫩草精品久久久久| 午夜成人在线视频| 99re8在线精品视频免费播放| 精品成人一区二区三区| 午夜精品福利一区二区三区蜜桃| 成人午夜电影网站| 2019国产精品| 免费不卡在线观看| 欧美日韩国产首页在线观看| 亚洲女同女同女同女同女同69| 国产jizzjizz一区二区| 精品国产一区a| 久久国产免费看| 欧美一区二区性放荡片| 亚洲国产成人av| 欧洲亚洲精品在线| 一区二区三区视频在线看| 国产成人在线免费| 久久久99免费| 成人性生交大片免费看视频在线| 久久中文字幕电影| 国产东北露脸精品视频| 2020国产成人综合网| 狠狠色狠狠色合久久伊人| 日韩欧美在线不卡| 久久精品国产免费| 26uuu国产在线精品一区二区| 麻豆国产精品777777在线| 欧美一级生活片| 久久国产生活片100| 精品久久久久久久久久久院品网| 久久99精品国产麻豆婷婷洗澡| 日韩一区二区三区电影在线观看| 日韩精品国产精品| 精品国产欧美一区二区| 国产综合色产在线精品| 久久久亚洲高清| 成人福利在线看| 一区二区三区日韩欧美| 欧美在线综合视频| 日精品一区二区三区| 日韩欧美国产一区在线观看| 国内欧美视频一区二区| 国产精品福利av| 欧美三级日本三级少妇99| 五月激情六月综合| 精品乱人伦小说| 国产成人在线免费观看| 亚洲激情在线播放| 日韩视频在线永久播放| 懂色av中文字幕一区二区三区| 中文字幕亚洲成人| 91精品国产福利| 国产成人亚洲综合a∨婷婷| 亚洲国产cao| 精品1区2区在线观看| jlzzjlzz国产精品久久| 亚洲成人激情社区| 国产亚洲午夜高清国产拍精品 | 91啪亚洲精品| 日韩国产成人精品| 亚洲国产精品二十页| 欧美日韩视频在线一区二区| 国产麻豆精品久久一二三| 亚洲一区免费视频| 久久久久一区二区三区四区| 欧美亚洲一区三区| 国产精品456| 日韩精品每日更新| 亚洲日本韩国一区| 日韩欧美高清dvd碟片| 色老汉av一区二区三区| 国产精品99久久久久久久女警| 午夜在线成人av| 国产精品情趣视频| 精品理论电影在线| 日本韩国一区二区| 成人在线视频首页| 国模一区二区三区白浆| 亚洲一区免费在线观看| 午夜欧美2019年伦理| 日本一区二区三区视频视频| 日韩欧美一二三四区| 欧美三级韩国三级日本一级| 丰满岳乱妇一区二区三区| 美女网站视频久久| 日韩不卡免费视频| 一区二区三区中文字幕在线观看| 久久久精品2019中文字幕之3| 日韩午夜电影在线观看| 精品视频123区在线观看| av激情成人网| 成人99免费视频| 国产jizzjizz一区二区| 国产剧情在线观看一区二区| 极品少妇一区二区三区精品视频| 亚洲一二三专区| 亚洲国产精品影院| 亚洲小少妇裸体bbw| 亚洲国产精品一区二区久久恐怖片 | 亚洲精品第1页| 中文字幕av免费专区久久| 国产三级一区二区三区| 久久伊人蜜桃av一区二区| 欧美一激情一区二区三区| 欧美一级日韩免费不卡| 欧美一区二区三区四区在线观看| 在线综合+亚洲+欧美中文字幕| 欧美精品18+| 91精品国产91久久久久久一区二区 | 亚洲私人黄色宅男| 一区二区三区av电影| 怡红院av一区二区三区| 亚洲一区精品在线| 日韩黄色片在线观看| 美女精品自拍一二三四| 国产伦精品一区二区三区视频青涩 | 成人免费小视频| 亚洲色图欧洲色图| 亚洲va中文字幕| 精品一区二区三区视频| 国产成人免费视频精品含羞草妖精| 国产激情偷乱视频一区二区三区| 成人一区二区三区视频在线观看| 91蜜桃在线观看| 制服丝袜av成人在线看| 欧美va亚洲va香蕉在线 | 成人va在线观看| 欧美自拍偷拍一区| 日韩视频永久免费| 成人欧美一区二区三区白人 | 欧美日韩和欧美的一区二区| 日韩一区二区在线观看| 国产无遮挡一区二区三区毛片日本| 国产精品入口麻豆原神| 亚洲第一福利一区| 国产精品亚洲一区二区三区妖精 | 亚洲情趣在线观看| 美女视频一区二区三区| www.亚洲色图| 欧美老年两性高潮| 日本一区二区三区在线不卡| 亚洲成人在线免费| 国产成人在线视频免费播放| 欧美喷潮久久久xxxxx| 国产精品天美传媒| 香蕉加勒比综合久久| 成人一区二区三区| 欧美mv日韩mv国产网站app| 亚洲日本护士毛茸茸| 国产美女在线观看一区| 欧美亚州韩日在线看免费版国语版|