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

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

?? usbhubclassinterface.c

?? vxWorks下usb2.0的usbHUB驅(qū)動源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* usbHubClassInterface.c - Functions used by USB host stack *//* Copyright 2003 Wind River Systems, Inc. *//*Modification history--------------------01a,27jun03,nrv Changing the code to WRS standards*//*DESCRIPTIONThis module implements the functions to be used by the USB Host Software Stack. The following functions are described in this module:                    1.    Function for plug and play.                    2.    Function for power management.                    3.    Function for root hub management.                    4.    Function for selective suspend and resume.                    5.    Function for checking hub power capability.                    6.    Function for resetting a device.INCLUDE FILES: usb2/usbOsal.h usb2/usbHubCommon.h usb2/usbHubGlobalVariables.h               usb2/usbHubUtility.h usb2/usbHubClassInterface.h*//*INTERNAL******************************************************************************* * Filename         : HUB_ClassInterface.c * * Copyright        : * * THE COPYRIGHT IN THE CONTENTS OF THIS SOFTWARE VEST WITH WIPRO * LIMITED A COMPANY INCORPORATED UNDER THE LAWS OF INDIA AND HAVING * ITS REGISTERED OFFICE AT DODDAKANNELLI SARJAPUR ROAD  BANGALORE * 560 035. DISTRIBUTION OR COPYING OF THIS SOFTWARE BY * ANY INDIVIDUAL OR ENTITY OTHER THAN THE ADDRESSEE IS STRICTLY * PROHIBITED AND MAY INCUR LEGAL LIABILITY. IF YOU ARE NOT THE * ADDRESSEE PLEASE NOTIFY US IMMEDIATELY BY PHONE OR BY RETURN EMAIL. * THE ADDRESSEE IS ADVISED TO MAINTAIN THE PROPRIETARY INTERESTS OF * THIS COPYRIGHT AS PER APPLICABLE LAWS. * * * Description      : This module implements the functions to be used by the *                    USB Host Software Stack. The following functions are *                    described in this module: *                    1.    Function for plug and play. *                    2.    Function for power management. *                    3.    Function for root hub management. *                    4.    Function for selective suspend and resume. *                    5.    Function for checking hub power capability. *                    6.    Function for resetting a device. * * ******************************************************************************//************************** INCLUDE FILES *************************************/#include "usb2/usbOsal.h"#include "usb2/usbHubCommon.h"#include "usb2/usbHubGlobalVariables.h"#include "usb2/usbHubUtility.h"#include "usb2/usbHubClassInterface.h"/************************ GLOBAL FUNCTIONS DEFINITION *************************//***************************************************************************** usbHubAdd - called by USB Host Software for adding a new hub.** This routine is called by USB Host Software for adding a new hub and* to configure it.** ERRNO: None** \NOMANUAL*/LOCAL USBHST_STATUS usbHubAdd     (    UINT32 uDeviceHandle,    UINT8 uInterfaceNumber,    UINT8 uSpeed,    void ** pContext    )    {    /* pointer to the parent hub */    pUSB_HUB_INFO      pParentHub  = NULL;    /* port where the child hub is connected */    UINT8          uPortIndex  = 0;        /* Storage for the results */    USBHST_STATUS  Result      = USBHST_FAILURE;        /* The new hub pointer */    pUSB_HUB_INFO      pHub        = NULL;        /* The port Information */    pUSB_HUB_PORT_INFO pPort       = NULL;    		/* WindView Instrumentation */		USB_HUB_LOG_EVENT(			USB_HUB_WV_DEVICE,			"Entering usbHubAdd() Function",			USB_HUB_WV_FILTER);    /* Debug Message */    OS_LOG_MESSAGE_LOW(        HUB,        "usbHubAdd : Called devH=0x%x I/f Num= 0x%x,*pCon=0x%x\n",        uDeviceHandle,        uInterfaceNumber,        (UINT32)*pContext,0);            /*     * Call HUB_FindParentHubInBuses() to find the parent hub and If this     * is not found, then return USBHST_INVALID_PARAMETER.     */     pParentHub = usbHubFindParentHubInBuses(uDeviceHandle);        /* if not found return USBHST_INVALID_PARAMETER */    if (NULL == pParentHub)    {        /* Debug Message */        OS_LOG_MESSAGE_MEDIUM(            HUB,"usbHubAdd : ParentHub not found\n",0,0,0,0);                return USBHST_INVALID_PARAMETER;            }/* End of  if (NULL == pParentHub ) */    /*     * Call HUB_FindPortNumber() to find the port number for this device handle.     * If this is not found, then return USBHST_INVALID_PARAMETER.     */    uPortIndex = usbHubFindPortNumber(pParentHub,uDeviceHandle);        /* if not found return USBHST_INVALID_PARAMETER */    if ( USB_PORT_NUMBER_NOT_FOUND == uPortIndex)    {        OS_LOG_MESSAGE_MEDIUM(            HUB,"usbHubAdd : port num not found\n",0,0,0,0);                return USBHST_INVALID_PARAMETER;            }/* End of if (PORT_NUMBER_NOT_FOUND == uPortIndex ) */        /*     * Call the HUB_ConfigureHub() to configure the hub. If the function     * call fails:     * i.    Return result returned by HUB_ConfigureHub() function call.     */    Result=usbHubConfigure(&pHub, uDeviceHandle, pParentHub->pBus, pParentHub);        /* Check for the result */    if (USBHST_SUCCESS != Result)    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubAdd : Device Config failed = 0x%x\n",            Result,            0,            0,            0);        return Result;    }/* End of (USBHST_SUCCESS !=Result ) */    /* Attach the HUB_INFO structure to the parent hub. */    /* Extract the port info from parent */    OS_ASSERT( NULL != pParentHub->pPortList[uPortIndex]);          /* Verify */    pPort = pParentHub->pPortList[uPortIndex];    /* update the hub information */    OS_ASSERT( NULL == pPort->pHub);                                /* Verify */    OS_ASSERT( NULL != pHub);                                       /* Verify */    pPort->pHub=pHub;    /* Store the parent hub pointer into pContext. */    *pContext = (void *) pParentHub; 		/* WindView Instrumentation */		USB_HUB_LOG_EVENT(			USB_HUB_WV_DEVICE,			"Exiting usbHubAdd() Function",			USB_HUB_WV_FILTER);    /* Debug Message */    OS_LOG_MESSAGE_LOW(        HUB,        "usbHubAdd : Done devH=0x%x I/f Num= 0x%x,*pCon=0x%x\n",        uDeviceHandle,        uInterfaceNumber,        (UINT32)*pContext,        0);    /* Return USBHST_SUCCESS. */    return USBHST_SUCCESS;} /* End of function HUB_AddHub() *//***************************************************************************** usbHubRemove - delete a hub.** This routine is called by the USB Host Software Stack for deletion of a hub.** RETURNS: N/A** ERRNO: None** \NOMANUAL*/LOCAL void usbHubRemove     (    UINT32 uDeviceHandle,    void *  pContext    )    {    /* The pointer to the parent hub */    pUSB_HUB_INFO pParentHub       = NULL;    /* port number of the device */    UINT8 uPortIndex          = 0;    /* port count for the hub  */    UINT8 uPortCount           = 0;    /* Storage for the hub structure */    pUSB_HUB_INFO pHub             = NULL;    /* The port Information */    pUSB_HUB_PORT_INFO pPort       = NULL;		/* WindView Instrumentation */		USB_HUB_LOG_EVENT(			USB_HUB_WV_DEVICE,			"Entering usbHubRemove() Function",			USB_HUB_WV_FILTER);    /* Debug Message */    OS_LOG_MESSAGE_LOW(        HUB,        "usbHubRemove : Called devH=0x%x pCon=0x%x\n",        uDeviceHandle,        (UINT32)pContext,        0,        0);    /* If pContext is NULL then return. */    if (NULL==pContext)    {        /* Debug Message */        OS_LOG_MESSAGE_MEDIUM(            HUB,"usbHubRemove : pContext is NULL\n",0,0,0,0);        return;            } /* End of if (NULL==pContext..*/    /* Get the parent hub pointer from the pContext. */    pParentHub= (pUSB_HUB_INFO) pContext;    /* Search for the DeviceID in the parent hub. If failed return. */    /* get the port number */    uPortIndex = usbHubFindPortNumber(pParentHub,uDeviceHandle);    /* Check  if the port is found */    if (USB_PORT_NUMBER_NOT_FOUND == uPortIndex)    {        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubRemove : port number not found\n",            0,            0,            0,            0);        return;    } /* End of if (PORT_NUM.. */    /* Check if the port number is within limits */    if (uPortIndex > (pParentHub->HubDescriptor.bNbrPorts))    {        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubRemove : port num %d > %d max\n",            uPortIndex,            pParentHub->HubDescriptor.bNbrPorts,            0,            0);        return;    } /* End of (uPortIndex > (pParentHub->.... */    /*     * Retrieve HUB_INFO structure from     * parentHub::pPortList[uPortIndex]::pHub.     */    pPort = pParentHub->pPortList[uPortIndex];    /* update the hub information */    OS_ASSERT( NULL != pPort->pHub);                                /* Verify */    pHub=pPort->pHub;    /* If the HUB_INFO structure is NULL then return. */    if (NULL == pHub)    {        OS_LOG_MESSAGE_HIGH(            HUB,"usbHubRemove : pHub is NULL\n",0,0,0,0);        return;    } /* End of if (NULL== pHub) */    /* Call the USBHST_CancelURB function to cancel the URB for the hub. */    usbHstURBCancel(&(pHub->StatusChangeURB));    /*     * for all the ports in the pHub::pPortList  which are enabled,     *  i.    Call the HUB_RemoveDevice() function for     *        the pHub::pPortList[uPortCount]::uDeviceHandle.     *  ii.   Call the OS_FREE() function to free the     *        pHub::pPortList[uPortCount]     *  iii.  Set the pHub::pPortList[uPortCount] as NULL     */    for (uPortCount = 0;         uPortCount < pHub->HubDescriptor.bNbrPorts;         uPortCount++)    {        /* Retrieve the HUB_PORT_INFO structure */        pUSB_HUB_PORT_INFO pPort = pHub->pPortList[uPortCount];        /* Check if the port is enabled */        if (NULL != pPort)        {            /* Debug Message */            OS_LOG_MESSAGE_LOW(                HUB,"usbHubRemove : a device found.. del it.\n",0,0,0,0);            /* 9/5/2k3:NM: Changed here to centralise the effect*/            usbHubRemoveDevice(pHub,uPortCount);        } /* End of If (NULL != pPort) */    } /* End of for (uPortCount.... */    /*     * Call the OS_FREE() function to free all the allocated memory for     * the hub.     */    /* Get the parent port */    pPort=pParentHub->pPortList[uPortIndex];    /* Setting parent port port as not enabled */    pParentHub->pPortList[uPortIndex]=NULL;    /* Free the memory */    OS_FREE(pPort);    OS_FREE (pHub->pStatus);                        /* Free the status bitmap */    OS_FREE (pHub->StatusChangeURB.pTransferBuffer);  /* Free URB Buffer      */    OS_FREE (pHub);                                   /* Free the Hub itself  */		/* WindView Instrumentation */		USB_HUB_LOG_EVENT(			USB_HUB_WV_DEVICE,			"Exiting usbHubRemove() Function",			USB_HUB_WV_FILTER);    /* Debug Message */    OS_LOG_MESSAGE_LOW(        HUB,        "usbHubRemove : Done devH=0x%x pCon=0x%x\n",        uDeviceHandle,        (UINT32)pContext,        0,        0);    /* Return */    return;} /* End of function HUB_RemoveHub() *//***************************************************************************** usbHubSuspend - called by the USB Host Software Stack for suspending a hub.** This routine is called by the USB Host Software Stack for suspending a hub.** RETURNS: N/A** ERRNO: None** \NOMANUAL*/LOCAL void usbHubSuspend    (    UINT32 uDeviceHandle,    void *  pContext    )    {    /* The pointer to the parent hub */    pUSB_HUB_INFO pParentHub       = NULL;    /* port number of the device */    UINT8 uPortIndex          = 0;    /* port count for the hub  */    UINT8 uPortCount           = 0;    /* Storage for the hub structure */    pUSB_HUB_INFO pHub             = NULL;    /* The port Information */    pUSB_HUB_PORT_INFO pPort       = NULL;		/* WindView Instrumentation */		USB_HUB_LOG_EVENT(			USB_HUB_WV_DEVICE,			"Entering usbHubSuspend() Function",			USB_HUB_WV_FILTER);    /* Debug Message */    OS_LOG_MESSAGE_LOW(        HUB,        "usbHubSuspend : Called devH=0x%x pCon=0x%x\n",        uDeviceHandle,        (UINT32)pContext,        0,        0);    /* If pContext is NULL then return. */    if (NULL==pContext)    {        /* Debug Message */        OS_LOG_MESSAGE_MEDIUM(            HUB,"usbHubSuspend : pContext is NULL \n",0,0,0,0);        return;    } /* End of if (NULL==pContext..*/    /* Get the parent hub pointer from the pContext. */    pParentHub= (pUSB_HUB_INFO) pContext;    /* Search for the DeviceID in the parent hub. If failed return. */    /* get the port number */    uPortIndex = usbHubFindPortNumber(pParentHub,uDeviceHandle);    /* Check  if the port is found */    if (USB_PORT_NUMBER_NOT_FOUND == uPortIndex)    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,"usbHubSuspend : port num not found\n",0,0,0,0);        return;            } /* End of if (PORT_NUM.. */    /* Check if the port number is within limits */    if (uPortIndex > (pParentHub->HubDescriptor.bNbrPorts))    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubSuspend : port %d > % d max\n",            uPortIndex,            pParentHub->HubDescriptor.bNbrPorts,            0,            0);        return;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久综合| 国产精品一级在线| 在线观看日韩一区| 婷婷综合另类小说色区| 欧美男女性生活在线直播观看| 偷拍日韩校园综合在线| 日韩一区二区三区四区五区六区| 久久99久久99小草精品免视看| 2019国产精品| av在线播放成人| 亚洲影院理伦片| 日韩一区二区免费高清| 国产在线播放一区三区四| 久久久久久久久97黄色工厂| 成人av小说网| 视频一区二区国产| 欧美精品一区二区三区蜜桃| 成人理论电影网| 亚洲va欧美va人人爽| 亚洲精品一区二区精华| 99在线精品一区二区三区| 亚洲电影第三页| 久久久久久久免费视频了| 色吧成人激情小说| 久久99久国产精品黄毛片色诱| 亚洲欧洲精品天堂一级| 欧美精品在欧美一区二区少妇| 国产一区二区网址| 一区二区三区国产豹纹内裤在线| 欧美成人一区二区| 一本久道久久综合中文字幕| 九九视频精品免费| 一区二区三区不卡视频| 亚洲精品一区二区三区四区高清 | 奇米影视7777精品一区二区| 2024国产精品| 欧美另类z0zxhd电影| 国产美女精品在线| 婷婷开心久久网| 中文字幕亚洲一区二区va在线| 欧美一卡二卡在线观看| av爱爱亚洲一区| 黄页视频在线91| 亚洲第一主播视频| 亚洲欧洲日产国码二区| 精品福利一区二区三区免费视频| 在线免费观看不卡av| 丰满少妇久久久久久久| 免费不卡在线观看| 亚洲网友自拍偷拍| **性色生活片久久毛片| 久久人人爽爽爽人久久久| 69久久99精品久久久久婷婷| 色婷婷综合久色| 不卡区在线中文字幕| 国产福利精品导航| 狠狠色狠狠色综合日日91app| 婷婷丁香激情综合| 亚洲成a人在线观看| 一区二区免费在线播放| 亚洲视频精选在线| 国产精品网站在线播放| 国产亚洲欧美日韩俺去了| 精品美女一区二区| 欧美成人乱码一区二区三区| 欧美二区三区的天堂| 欧美色老头old∨ideo| 色激情天天射综合网| 99久久国产综合精品麻豆| 99久久精品国产麻豆演员表| 成人激情小说网站| 92精品国产成人观看免费| av电影在线观看一区| 成人av在线播放网址| av在线综合网| 色综合中文字幕| 欧美亚洲国产怡红院影院| 91福利国产成人精品照片| 欧美性三三影院| 在线成人免费观看| 日韩免费看的电影| 久久精品视频一区二区三区| 国产欧美日韩综合精品一区二区| 国产亚洲精品bt天堂精选| 中文在线一区二区| 亚洲欧美偷拍另类a∨色屁股| 亚洲视频免费观看| 亚洲一区二区三区在线看| 日韩精品国产精品| 久久国产精品无码网站| 国产精品系列在线观看| 99精品国产一区二区三区不卡| 91国偷自产一区二区使用方法| 欧美在线一二三四区| 欧美日韩小视频| 精品区一区二区| 国产精品日产欧美久久久久| 亚洲人亚洲人成电影网站色| 亚洲bdsm女犯bdsm网站| 经典三级视频一区| 本田岬高潮一区二区三区| 在线观看中文字幕不卡| 日韩精品一区在线| 中文字幕五月欧美| 日韩和欧美一区二区| 国产精品一区在线观看乱码| 一本色道亚洲精品aⅴ| 欧美日韩mp4| 国产午夜精品久久久久久免费视| 日韩毛片视频在线看| 天天综合色天天综合| 国产伦精品一区二区三区免费迷| 色婷婷综合久久| 欧美精品一区二区三区蜜桃视频| 亚洲桃色在线一区| 麻豆一区二区99久久久久| 99精品欧美一区二区蜜桃免费| 欧美一区二区福利视频| 国产精品久久久久天堂| 日韩精品视频网| 99国产精品久久久久久久久久久| 欧美精品在欧美一区二区少妇| 欧美激情综合网| 青青草原综合久久大伊人精品优势 | 国产精品888| 欧美日韩第一区日日骚| 欧美国产丝袜视频| 美国av一区二区| 欧美三级电影精品| 国产精品欧美综合在线| 美女任你摸久久| 91黄色免费看| 国产精品电影一区二区| 久久国产尿小便嘘嘘| 欧美午夜理伦三级在线观看| 国产精品亲子伦对白| 精品一二三四区| 欧美精品在欧美一区二区少妇| 亚洲欧美在线高清| 国产精品亚洲一区二区三区妖精 | 婷婷久久综合九色综合绿巨人| 成人免费av在线| 久久蜜桃av一区精品变态类天堂| 午夜欧美在线一二页| 色94色欧美sute亚洲线路一ni| 中文av一区二区| 国产成人在线电影| 久久久久久久久久久久久夜| 久久机这里只有精品| 4438x成人网最大色成网站| 亚洲天堂av老司机| 成人av网在线| 国产精品的网站| 成人在线综合网站| 久久久久久久久久久久电影| 精品综合久久久久久8888| 日韩一区二区三| 日韩av成人高清| 欧美日韩精品免费| 亚洲综合在线电影| 欧美在线播放高清精品| 亚洲一区二区精品视频| 日本高清不卡视频| 亚洲三级在线观看| 91美女在线观看| 亚洲欧洲综合另类在线| 色综合天天综合网国产成人综合天 | 国产精品影视网| 精品国产髙清在线看国产毛片 | 国产成人免费在线视频| 精品国产区一区| 国产一区二区精品久久99| 日韩精品一区二区三区中文精品| 久久激情五月激情| 国产欧美一区二区精品性色| 成人高清视频免费观看| 亚洲欧洲三级电影| 欧美亚洲国产一区二区三区va| 亚洲sss视频在线视频| 欧美一区二区三区小说| 九九国产精品视频| 国产精品久久久久7777按摩| 91丨porny丨在线| 亚洲第一在线综合网站| 日韩欧美激情在线| 高清不卡一区二区在线| 一区二区三区日韩欧美| 欧美夫妻性生活| 国产一区二区三区免费在线观看| 久久久久国产精品人| 91美女精品福利| 日韩av中文字幕一区二区| 久久久久国产精品厨房| 91蝌蚪porny九色| 日本人妖一区二区| 国产精品伦理在线| 欧美剧情片在线观看| 国产精品1024久久| 一区二区三区在线观看网站| 欧美一区二区三区影视|