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

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

?? usbhubbusmanager.c

?? vxWorks下usb2.0的usbHUB驅動源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* usbHubBusManager.c - Manages topology and other information about bus *//* Copyright 2003 Wind River Systems, Inc. *//*Modification history--------------------01a,27jun03,nrv Changing the code to WRS standards*//*DESCRIPTIONThis is the module that manages the topology and other  informationabout a bus. This is an autonomous thread that is initiated every timea root hub is detected and this ends only when the USB Hub Class Driveris unloaded or when the root hub is disabled. This is used in conjunctionwith the Port Event Handling Module and Hub Event Handling Module.INCLUDE FILES:  usb2/usbOsal.h usb2/usbHst.h usb2/usbHubCommon.h                usb2/usbHubUtility.h usb2/usbHubEventHandler.h                usb2/usbHubPortEventHandler.h usb2/usbHubBusManager.h                usb2/usbHubGlobalVariables.h*//*INTERNAL ******************************************************************************* * Filename         : HUB_BusManager.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 is the module that manages the topology and other *                    information about a bus. This is an autonomous thread that *                    is initiated every time a root hub is detected and this *                    ends only when the USB Hub Class Driver is unloaded or *                    when the root hub is disabled. This is used in conjunction *                    with the Port Event Handling Module and *                    Hub Event Handling Module. * * ******************************************************************************//************************** INCLUDE FILES *************************************/#include "usb2/usbOsal.h"#include "usb2/usbHst.h"#include "usb2/usbHubCommon.h"#include "usb2/usbHubUtility.h"#include "usb2/usbHubEventHandler.h"#include "usb2/usbHubPortEventHandler.h"#include "usb2/usbHubBusManager.h"#include "usb2/usbHubGlobalVariables.h"/****************** MODULE SPECIFIC FUNCTIONS DECLARATION *********************//* * This function is used to recursively work on a hub to handle any event that * may have occurred on the hub. */LOCAL void usbHubStatusChangeHandler (pUSB_HUB_INFO pHub);/************************ GLOBAL FUNCTIONS DEFINITION *************************//***************************************************************************** usbHubThread - thread that keeps checking every hub on a bus.** This routine checks every hub on a bus for events that require handling.** RETURNS: N/A** ERRNO: None** \NOMANUAL*/LOCAL void usbHubThread    (    void * pContext    )    {    /* The pointer for the scanning of the buses */    pUSB_HUB_BUS_INFO pWorkingBus = NULL;    /* If pContext is NULL then return*/    if (NULL == pContext)    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubThread: pContext is NULL:0x%x\n",            (UINT32)pContext,            0,            0,            0);                return;    }        /* Retrieve the HUB_BUS_INFO structure from the pContext.*/    pWorkingBus=(pUSB_HUB_BUS_INFO) pContext;        /* Debug Message */    OS_LOG_MESSAGE_LOW(        HUB,        "usbHubThread: Started for Bus ID:0x%x\n",        pWorkingBus->uBusHandle,        0,        0,        0);    /*     * Loop infintely     * i.    If HUB_BUS_INFO::pRootHubInfo is not NULL then call     * HUB_StatusChangeHandler() with HUB_BUS_INFO::pRootHubInfo     */    while (1)    {        if (NULL != pWorkingBus->pRootHubInfo)        {            /* Call the status change handler for the Root hub info */            usbHubStatusChangeHandler(pWorkingBus->pRootHubInfo);                    } /* End of if (NULL!=pWorking.... */                /*         * Sleep for some time to allow for the rest of the threads to do thier         * work         */        OS_DELAY_MS(2);            } /* End of while (1) */        /* Return*/    return;} /* End of HUB_BusManager() *//******************* MODULE SPECIFIC FUNCTIONS DEFINITION *********************//***************************************************************************** usbHubStatusChangeHandler - used to recursively work on a hub.** usbHubStatusChangeHandler - used to recursively work on a hub to handle* any event that  may have occurred on the hub.** RETURNS: N/A** ERRNO: None** \NOMANUAL*/LOCAL void usbHubStatusChangeHandler     (    pUSB_HUB_INFO pHub    )    {    /* For Storing the results. */    USBHST_STATUS Result=USBHST_SUCCESS;    BOOLEAN bResult = FALSE;    /* Counter for the ports */    UINT8 uPortCount = 0;        /* If the pHub is NULL then return.*/    if (NULL == pHub)    {        /* Debug Message */        OS_LOG_MESSAGE_MEDIUM(            HUB,            "usbHubStatusChangeHandler:pHub is NULL:0x%x\n",            (UINT32)pHub,            0,            0,            0);                /* return */        return;            } /* End of if (NULL==.. */        /*     * Call HUB_IS_HUB_EVENT() to check if any hub event has occurred on this     * hub. If this calls returns TRUE,     *     * i.  Call HUB_HubEventHandler() with pHub and if this call fails, set the     *     pHub::StateOfHub as MARKED_FOR_DELETION.     */    if (TRUE == USB_HUB_IS_EVENT(pHub->pStatus))    {        /* Debug Message */        OS_LOG_MESSAGE_LOW(            HUB,            "usbHubStatusChangeHandler:HubEvent Detected:0x%x: 0x%x\n",            pHub->uDeviceHandle,            (pHub->pStatus)[0],            0,            0);                /* Call the Hub event handler */        Result = usbHubEventHandler(pHub);                /* check the result */        if (USBHST_SUCCESS != Result)        {            /* Debug Message */            OS_LOG_MESSAGE_HIGH(                HUB,                "usbHubStatusChangeHandler:HubEventHdlr Failed:0x%x:0x%x\n",                pHub->uDeviceHandle,                Result,                0,                0);                        /* Mark the hub for deletion */            pHub->StateOfHub = USB_MARKED_FOR_DELETION;                    } /* End of if (USBHST_SUCCESS !=Result) */            }/* End of if (TRUE== HUB_IS_HUB_EVENT()) */        if (USB_MARKED_FOR_DELETION != pHub->StateOfHub)    {        /*         * For each port available, do:         * i.  If pHub::pBus::nNumberOfHubEvents is non zero then  go to step 6.         * ii. If pHub::StateOfHub is MARKED_FOR_DELETION then go to step 5.         * iii.If pHub::pStatus contains 1 for the index corresponding to the         *     port number then,         *     a.    Call HUB_PortEventHandler() with the pHub and the port         *           number if this call fails, set the pHub::StateOfHub as         *           MARKED_FOR_DELETION and go to step 5.         * iv. Retrieve the HUB_PORT_INFO structure from the         *     pHub::pPortList[port number]. If this port is enabled,         *     a.    If the HUB_PORT_INFO::StateOfPort is HUB_DEBOUNCE_PENDING         *           then call HUB_DebounceHandler(). If this call fails, then         *           set the pHub::StateOfHub as MARKED_FOR_DELETION and         *           go to step 5.         *     b.    If the HUB_PORT_INFO::StateOfPort is HUB_RESET_PENDING then         *           call the HUB_HandleDeviceConnection(). If this call fails,         *           then set the pHub::StateOfHub as MARKED_FOR_DELETION         *           and go to step 5.         *     c.    If the HUB_PORT_INFO::StateOfPort is not         *           MARKED_FOR_DELETION then go to step 3         *     d.    If HUB_PORT_INFO::pHub is NULL then call         *           HUB_RemoveDevice() and free HUB_PORT_INFO and set the         *           pHub::pPortList[port count] as NULL.         *     e.    If HUB_PORT_INFO::pHub is not NULL then call         *           USBHST_RemoveDevice().         *     f.    Call HUB_CLEAR_PORT_FEATURE() with the PORT_ENABLE as the         *           feature. If this call fails then set the pHub::StateOfHub         *           as MARKED_FOR_DELETION and go to step 5.         */        for (uPortCount = 0;             uPortCount < pHub->HubDescriptor.bNbrPorts;             uPortCount++)        {            /* To store the HUB_PORT_INFO structure */            pUSB_HUB_PORT_INFO pPort = NULL;            /*             * i.  If pHub::pBus::uNumberOfHubEvents is non zero then             * go to step 6.             */            if (0 < pHub->pBus->uNumberOfHubEvents)            {                /* Debug Message */                OS_LOG_MESSAGE_HIGH(                    HUB,                    "usbHubStatusChangeHandler:HubEvents detect:0x%x:Evts=%d\n",                    pHub->uDeviceHandle,                    pHub->pBus->uNumberOfHubEvents,                    0,                    0);                break;            } /* End of if (0<pHub->pBus->nNumberOfHubEvents) */            /*             * ii. If pHub::StateOfHub is MARKED_FOR_DELETION then             * go to step 5.             */            if (USB_MARKED_FOR_DELETION == pHub->StateOfHub)            {                /* Debug Message */                OS_LOG_MESSAGE_MEDIUM(                    HUB,                    "HUB_StatusChangeHandler:hub marked for delete:0x%x:\n",                    pHub->uDeviceHandle,                    0,                    0,                    0);                break;            } /* End of if (MARKED_FOR_DELETION ==pHub->StateOfHub)  */            /*             * iii.If pHub::pStatus contains 1 for the index             * corresponding to the port number then,             * Note: The port number is port count +1             */            bResult = USB_HUB_IS_PORT_EVENT(pHub->pStatus,uPortCount+1);            if (TRUE == bResult)            {                /* Debug Message */                                         OS_LOG_MESSAGE_LOW(                    HUB,                    "usbHubStatusChangeHandler:Port Evnt detect:0x%x:port=%d\n",                    pHub->uDeviceHandle,                    uPortCount,                    0,                    0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美中文字幕一区| 欧美日韩综合不卡| 久久aⅴ国产欧美74aaa| 日韩精品一二三| 偷拍日韩校园综合在线| 五月婷婷久久丁香| 日韩成人免费电影| 激情欧美一区二区| 国产99久久久国产精品潘金 | 国产亚洲欧美日韩在线一区| 欧美一级二级在线观看| 777午夜精品免费视频| 69堂国产成人免费视频| 日韩一区二区高清| 久久久99久久精品欧美| 中文字幕第一页久久| 亚洲欧美在线视频观看| 亚洲网友自拍偷拍| 青青草国产精品亚洲专区无| 国产精品综合在线视频| 成人黄页在线观看| 在线精品国精品国产尤物884a| 欧美日韩免费在线视频| 日韩午夜激情av| 中文字幕国产一区| 亚洲电影第三页| 激情国产一区二区| 色哟哟一区二区在线观看| 欧美日韩aaaaaa| 337p日本欧洲亚洲大胆色噜噜| 亚洲欧洲性图库| 五月天婷婷综合| 国产成人日日夜夜| 欧美在线不卡一区| 日本一区二区成人在线| 午夜精品国产更新| 国产91精品露脸国语对白| 欧美午夜片在线看| 精品国产123| 一区二区三区免费网站| 国产永久精品大片wwwapp| 一本色道久久加勒比精品| 欧美一级免费大片| 一区二区三区在线高清| 日本不卡中文字幕| 在线免费观看视频一区| 久久久精品2019中文字幕之3| 夜夜亚洲天天久久| 成人精品免费看| 日韩免费高清av| 亚洲成在线观看| 91原创在线视频| 国产清纯白嫩初高生在线观看91 | va亚洲va日韩不卡在线观看| 91精品国产综合久久久久久 | 日韩欧美国产午夜精品| 亚洲精品乱码久久久久久黑人| 久久成人精品无人区| 欧美色手机在线观看| 中文字幕日韩精品一区| 国产永久精品大片wwwapp| 欧美一区二区三区思思人| 亚洲国产精品综合小说图片区| av不卡免费在线观看| 欧美激情综合五月色丁香小说| 久久国产精品无码网站| 91精品国产欧美一区二区| 亚洲电影视频在线| 欧日韩精品视频| 一区二区三区在线播| 色天天综合色天天久久| 国产精品成人免费精品自在线观看 | 色婷婷一区二区| 国产精品视频免费看| 国产视频一区不卡| 秋霞午夜鲁丝一区二区老狼| 9色porny自拍视频一区二区| 久久久久久亚洲综合影院红桃| 日产国产高清一区二区三区 | 成人白浆超碰人人人人| 国产亚洲精久久久久久| 国产精品自拍av| 国产亚洲va综合人人澡精品| 国产精品一区在线观看你懂的| 欧美电影免费观看高清完整版| 欧美aaa在线| 2024国产精品| 成人午夜视频免费看| 国产精品久久综合| 色综合久久久久综合| 亚洲精品欧美激情| 欧美日韩亚洲国产综合| 视频在线观看一区二区三区| 日韩女优av电影| 国产麻豆精品一区二区| 国产精品视频免费| 色婷婷综合久久久| 日本va欧美va欧美va精品| 欧美成人a∨高清免费观看| 丁香网亚洲国际| 成人欧美一区二区三区视频网页| 91黄色在线观看| 久久精品久久久精品美女| 久久免费午夜影院| 色美美综合视频| 日韩av电影免费观看高清完整版| 久久久久久毛片| 欧美性高清videossexo| 精品一区二区三区在线视频| 国产精品视频线看| 91精品欧美综合在线观看最新| 国产成人午夜精品影院观看视频 | 天天av天天翘天天综合网| 精品精品国产高清a毛片牛牛 | 亚洲高清免费观看 | 欧美日韩中文国产| 国产伦精品一区二区三区视频青涩 | 99视频一区二区| 日本v片在线高清不卡在线观看| 久久亚洲精华国产精华液| 在线精品视频一区二区三四| 国产一区欧美二区| 亚洲va欧美va人人爽午夜| 国产蜜臀av在线一区二区三区| 欧美日韩一区三区| 春色校园综合激情亚洲| 日本三级亚洲精品| 一区二区三区在线观看视频| 国产色一区二区| 欧美一区二区三区啪啪| 91婷婷韩国欧美一区二区| 国产一区二区三区电影在线观看 | 精品视频色一区| 懂色av中文一区二区三区 | 国产精品免费av| 日韩精品一区二区三区中文不卡| 日本高清免费不卡视频| av中文字幕在线不卡| 国产精品99久久久久久久女警| 轻轻草成人在线| 亚洲另类中文字| 国产精品丝袜91| 国产精品毛片a∨一区二区三区| 精品国产91亚洲一区二区三区婷婷| 欧美日韩国产高清一区二区| 91片在线免费观看| 99久久综合狠狠综合久久| 国产精品中文字幕一区二区三区| 久久精品国产精品青草| 丝袜美腿亚洲一区| 日日摸夜夜添夜夜添国产精品| 亚洲大片一区二区三区| 国产精品欧美一区二区三区| 国产欧美日韩麻豆91| 欧美国产综合一区二区| 国产欧美精品一区二区色综合朱莉| 精品国一区二区三区| 26uuu欧美日本| 国产色产综合产在线视频| 欧美激情综合网| 国产精品久久二区二区| 中文字幕免费不卡| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 2024国产精品| 国产精品成人免费在线| 亚洲精品久久久蜜桃| 亚洲成人三级小说| 奇米精品一区二区三区四区| 另类小说图片综合网| 国产99一区视频免费| 99国产欧美另类久久久精品| 91视频国产观看| 7777精品久久久大香线蕉 | 国产色产综合色产在线视频| 亚洲国产电影在线观看| 亚洲欧洲中文日韩久久av乱码| 亚洲精品乱码久久久久久久久| 图片区小说区区亚洲影院| 日本欧美一区二区三区乱码| 国产精品综合网| 欧美影视一区在线| 26uuu精品一区二区在线观看| 国产精品国产精品国产专区不片| 一区二区在线观看视频 | 国产亚洲短视频| 一区二区三区欧美| 久国产精品韩国三级视频| 99久久99久久免费精品蜜臀| 欧美肥大bbwbbw高潮| 国产亚洲欧美色| 亚洲成人动漫在线免费观看| 国产成人精品免费| 91精品在线观看入口| 中文子幕无线码一区tr| 天天色天天操综合| 99久久精品免费观看| 欧美成人一区二区三区在线观看| 中文字幕在线不卡国产视频| 麻豆国产91在线播放| 色狠狠桃花综合|