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

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

?? 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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区午夜精品| 色婷婷综合久久| 亚洲靠逼com| 国产调教视频一区| 欧美一区二区免费观在线| 国产91露脸合集magnet| 一区二区三区久久久| 精品国产91久久久久久久妲己| 欧洲视频一区二区| 福利电影一区二区| 国产又黄又大久久| 韩国精品主播一区二区在线观看 | 亚洲三级在线播放| 91精品国产麻豆| 在线免费观看不卡av| 激情都市一区二区| 国产麻豆一精品一av一免费| 免费成人深夜小野草| 亚洲免费观看高清完整版在线观看 | 欧美一区二区三区不卡| 91啪亚洲精品| 欧美性受极品xxxx喷水| 欧美日韩国产一级| 色婷婷亚洲综合| 欧美午夜电影一区| 欧美性受xxxx黑人xyx性爽| 91在线国产福利| 91成人网在线| 91麻豆精品国产91久久久久久 | 久久久午夜精品理论片中文字幕| 91麻豆精品国产自产在线| 精品国产91久久久久久久妲己| 精品国产欧美一区二区| 久久无码av三级| 亚洲欧洲精品天堂一级| 亚洲精品国产精华液| 麻豆国产精品777777在线| 国产一区二三区好的| 国产成人免费在线观看不卡| 欧洲国产伦久久久久久久| 欧美一激情一区二区三区| 久久久精品中文字幕麻豆发布| 欧美国产精品专区| 洋洋成人永久网站入口| 青青草97国产精品免费观看| 久久99国产精品尤物| 成人国产精品免费网站| 欧美日韩成人在线| 成人免费在线视频| 免费在线观看一区二区三区| 色综合咪咪久久| 中文字幕免费一区| 亚洲chinese男男1069| 成人听书哪个软件好| 欧美久久久久久久久久| 成人欧美一区二区三区小说| 国产成人精品一区二区三区四区| 在线欧美日韩精品| 久久久蜜桃精品| 久久精品国产精品亚洲精品| 色中色一区二区| 亚洲欧洲在线观看av| 丁香激情综合国产| 国产欧美视频在线观看| 激情深爱一区二区| 精品国产伦一区二区三区免费| 日日夜夜一区二区| 欧美日韩在线精品一区二区三区激情| 国产精品日韩精品欧美在线| 成人激情午夜影院| 国产精品传媒视频| 99re热这里只有精品视频| 国产精品久久久久精k8| www.性欧美| 亚洲成人在线观看视频| 欧美日本在线一区| 日韩av一级片| 精品精品国产高清一毛片一天堂| 蜜桃久久久久久| 中文字幕av资源一区| 成人aa视频在线观看| 亚洲美女偷拍久久| 欧美精品自拍偷拍| 国产成人福利片| 一区二区三区高清在线| 在线观看91av| 粉嫩嫩av羞羞动漫久久久| 亚洲一区二区在线视频| 国产亚洲成av人在线观看导航 | 国产中文字幕精品| 国产精品美女www爽爽爽| 色先锋久久av资源部| 麻豆一区二区在线| 日本va欧美va瓶| 国产免费久久精品| 欧美高清视频一二三区| 成人做爰69片免费看网站| 日本人妖一区二区| 亚洲欧洲无码一区二区三区| 91精品国产综合久久精品app| 国产精品自产自拍| 青青草一区二区三区| 亚洲一区二区欧美日韩| 国产精品视频yy9299一区| 亚洲天堂免费在线观看视频| 精品国产一区二区精华| 色天天综合久久久久综合片| 国内精品视频一区二区三区八戒| 蜜臀av一区二区| 亚洲午夜视频在线| 中文字幕一区二区三区四区| 久久夜色精品一区| 精品国产髙清在线看国产毛片| 欧美日韩久久一区| 91污片在线观看| 色一区在线观看| 色妞www精品视频| 91日韩在线专区| 不卡在线视频中文字幕| 成人少妇影院yyyy| av一区二区不卡| 99精品久久只有精品| 99视频一区二区| 91麻豆国产精品久久| 欧日韩精品视频| 6080国产精品一区二区| 日韩一区二区免费在线观看| 欧美一区二区三区免费在线看 | 日韩精品福利网| 日本美女视频一区二区| 免费人成在线不卡| 久久99久久久久| 极品少妇xxxx偷拍精品少妇| 国产一区二区免费在线| 成人黄页在线观看| 欧美浪妇xxxx高跟鞋交| 日韩免费视频线观看| 国产精品美女久久久久aⅴ国产馆| 亚洲人成网站影音先锋播放| 亚洲成人动漫精品| 国产成人在线色| 欧美久久一二区| 国产欧美一区二区在线观看| 玉米视频成人免费看| 久久精品国产秦先生| 99国产精品久久久| 精品少妇一区二区三区免费观看 | 一区视频在线播放| 激情综合五月婷婷| 在线观看91视频| 日本一区二区三区dvd视频在线| 1024成人网色www| 国产一区不卡精品| 欧美一区二区视频免费观看| 亚洲三级小视频| 国产老妇另类xxxxx| 欧美人牲a欧美精品| 亚洲人成小说网站色在线| 国产一区在线精品| 欧美一级黄色片| 亚洲电影你懂得| 99亚偷拍自图区亚洲| 国产色综合一区| 国内精品久久久久影院色| 制服丝袜日韩国产| 亚洲一卡二卡三卡四卡五卡| a4yy欧美一区二区三区| 日韩精品一区二区三区中文精品| 亚洲午夜久久久久久久久电影院| av欧美精品.com| 亚洲视频一二三| 91猫先生在线| 亚洲综合网站在线观看| 91同城在线观看| 中文字幕欧美一| 色婷婷久久99综合精品jk白丝| 中文字幕日韩精品一区| 99久久国产免费看| 亚洲免费观看高清完整版在线| 欧美少妇一区二区| 国产精品亚洲专一区二区三区| 中文字幕第一页久久| thepron国产精品| 午夜精品一区二区三区免费视频 | 国产亚洲视频系列| 粉嫩嫩av羞羞动漫久久久| 亚洲第一激情av| 久久中文字幕电影| 欧美艳星brazzers| 国产成人av电影在线播放| 亚洲欧美日韩久久| 日本韩国欧美国产| 国产精品一区一区| 樱花影视一区二区| 精品国产乱子伦一区| av在线不卡网| 美女国产一区二区| 亚洲日本丝袜连裤袜办公室| 91精品欧美综合在线观看最新| eeuss鲁片一区二区三区在线看|