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

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

?? usbhubutility.c

?? vxWorks下usb2.0的usbHUB驅動源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
            (UINT32)pHub,            uPortIndex,            0,            0);        return  USBHST_SUCCESS;    }/* End of if ( HUB_PORT_DEBOUNCE_TIME.... */    /*     * Call HUB_GET_PORT_STATUS() to get the HUB_PORT_STATUS structure.     * If this fails then return result.     */    Result = USB_HUB_GET_PORT_STATUS(pHub,                                 uPortIndex,                                 (PUINT8)(&PortStatus),                                 &uLength);    if (USBHST_SUCCESS !=Result)    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubPortDebounceHandler:getPortStatus FAIL:0x%x\n",            Result,            0,            0,            0);        return Result;    }/* End of if (USBHST_SUCCESS... */   /* swap the members of the structure */    PortStatus.wPortChange  = OS_UINT16_LE_TO_CPU(PortStatus.wPortChange);    PortStatus.wPortStatus  = OS_UINT16_LE_TO_CPU(PortStatus.wPortStatus);    /*     * If the HUB_PORT_STATUS:;wPortStatus is DISCONNECTED then     * i.    Set the HUB_PORT_INFO::StateOfPort as MARKED_FOR_DELETION     * ii.   Return USBHST_SUCCESS     */    if (0 ==( PortStatus.wPortStatus & USB_PORT_CONNECTION_VALUE) )    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubPortDebounceHandler:DisConnection:0x%x\n",            PortStatus.wPortStatus,            0,            0,            0);        /* Mark the port for deletion */        USB_MARK_FOR_DELETE_PORT(pHub,pPort);        return  USBHST_SUCCESS;    } /* End of if (0==... */    /*     * If the device is connected to a High speed bus,      * The max tiers allowed is as per 2.00 spec     * else     * The max tiers allowed is as per 1.1 spec     */    if (USBHST_HIGH_SPEED != pHub->pBus->uBusSpeed)    {        uMaxTier = HUB_MAX_ALLOWED_DEPTH_USB1_1 ;    }    else    {        uMaxTier = HUB_MAX_ALLOWED_DEPTH_USB2_0;    }    /*      * if pHub::uCurrentTier is HUB_MAX_ALLOWED_DEPTH then     * i.    Set the HUB_PORT_INFO::StateOfPort as MARKED_FOR_DELETION     * ii.   Return USBHST_SUCCESS     */    if (uMaxTier  == pHub->uCurrentTier)    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubPortDebounceHandler:Number of Tiers exceeded Max %d\n",            pHub->uCurrentTier,            0,            0,            0);        /* Mark the port for deletion */        USB_MARK_FOR_DELETE_PORT(pHub,pPort);        return  USBHST_SUCCESS;            }/* End of if (HUB_MAX_ALLO... */    /* Update the StateOfPort as HUB_RESET_PENDING.*/    pPort->StateOfPort=USB_HUB_RESET_PENDING;    /* Debug Message */    OS_LOG_MESSAGE_LOW(        HUB,"usbHubPortDebounceHandler:Done\n",0,0,0,0);    /* Return  USBHST_SUCCESS*/    return  USBHST_SUCCESS;} /* End of HUB_PortDebounceHandler() *//***************************************************************************** usbHubConfigure - Configures a given hub.*** This routine configures a given hub.** RETURNS: USBHST_SUCCESS, USBHST_FAILURE,* USBHST_INSUFFICIENT_MEMORY if the  memory allocation failed.** ERRNO: None** \NOMANUAL*/LOCAL USBHST_STATUS usbHubConfigure    (    pUSB_HUB_INFO    * pHub,    UINT32             uDeviceHandle,    pUSB_HUB_BUS_INFO  pBus,    pUSB_HUB_INFO      pParentHub     )    {    /* To store the return value */    USBHST_STATUS Result = USBHST_FAILURE;    /* Buffer to store incoming Device descriptor */    UINT8  *      pDeviceDescriptor= NULL;    /* Buffer to store incoming Configuration descriptor */    UINT8  *     pConfigDescriptor= NULL;        /* Pointer to parse Configuration descriptor */    UINT8  *     pParseDesc = NULL ;  	    /* Buffer to store incoming Hub descriptor */    UINT8         pHubDescriptor[6];    /* Buffer for the status change interrupt IN bit map data */    UINT8  *     pStatusChangeData = NULL;    /* Data Store for the status change interrupt IN bit map data */    UINT8  *     pStatusData = NULL;    /* Hub Structure for this hub */    pUSB_HUB_INFO pNewHub    = NULL;    /* Length of descriptor to be stored here */    UINT32         uLength   = 0;    /* Number of ports */    UINT8         uNumPorts  = 0;    /* Counter for the port number */    UINT8         uPortCount = 0;     /* Structure to parse the device descriptor */    pUSBHST_DEVICE_DESCRIPTOR pParseDeviceDesc = NULL;    /* Structure to parse the configuration descriptor */    pUSBHST_CONFIG_DESCRIPTOR pParseConfigDesc = NULL;    /* Structure to parse the interface descriptor */    pUSBHST_INTERFACE_DESCRIPTOR pParseInterfaceDesc = NULL;    /* Structure to parse the interface descriptor */    pUSBHST_INTERFACE_DESCRIPTOR pParseAlternateInterfaceDesc = NULL;    /* Structure to parse the endpoint descriptor */    pUSBHST_ENDPOINT_DESCRIPTOR pParseEndpointDesc = NULL;    /* Variable to store the sequence of descriptors */     UINT32 uDescriptorSequence = 0;    /* Count for number of descriptors which follow config desc */    UINT8  uCount = 0;     /* parsed length of desc to be updated here */     UINT16 uLengthParsed = 0;     /* length of desc to be stored here */     UINT16 uDescLength =0 ;	 /* status of hub */    UINT16 uStatusOfHub = 0;		/* WindView Instrumentation */		USB_HUB_LOG_EVENT(			USB_HUB_WV_DEVICE,			"Entering usbHubconfigure() Function",			USB_HUB_WV_FILTER);    /* Debug Message */    OS_LOG_MESSAGE_LOW(        HUB,        "usbHubconfigure:Called uDevHndl:0x%x pPHub=0x%x, pBus=0x%x\n",        uDeviceHandle,        (UINT32)pParentHub,        (UINT32)pBus,        0);    OS_ASSERT(NULL != pHub);                                        /* Verify */    OS_ASSERT(NULL != pBus);                                        /* Verify */    /*     * Call OS_MALLOC() to allocate Buffer of 18 bytes. If call failed,     * return USBHST_INSUFFICIENT_MEMORY.     */     pDeviceDescriptor = (UINT8 *) OS_MALLOC(18*sizeof(UINT8));     /* Check for call failure */    if (NULL == pDeviceDescriptor)    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,"usbHubConfigure:INSUFF MEMORY-pDeviceDescriptor 18\n",0,0,0,0);        return USBHST_INSUFFICIENT_MEMORY;            }/* End of if (NULL == pDeviceDescriptor ) */    /* Clear the allocated buffer.*/    OS_MEMSET(pDeviceDescriptor,0,sizeof(UINT8)*18);     uLength = 18;    /*    * Call USBHST_GetDescriptor() for uDeviceHandle,    * DEVICE_DESCRIPTOR and for 18 bytes. If call fails,    * i.    Call OS_FREE() to free the Buffer.    * ii.    Return result.    */    Result= usbHstGetDescriptor(    uDeviceHandle, /* Device Handle */                                     USBHST_DEVICE_DESC, /* Desc type */                                     0, /* descriptor index */                                     0, /* language ID */                                     &uLength, /* Size of the descriptor */                                     /* buffer to copy to */                                     (UINT8 *)pDeviceDescriptor );    if (( USBHST_SUCCESS != Result)||(18 != uLength ))    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubConfigure:GetDeviceDesc fail R=0x%x L=%d\n",            Result,            uLength,            0,            0);        /* Free the memory allocated */        OS_FREE (pDeviceDescriptor);        return Result;            }/* End of if ( USBHST_SUCCESS !=Result) */    /* Parse the Device Descriptor buffer */    pParseDeviceDesc = (pUSBHST_DEVICE_DESCRIPTOR) pDeviceDescriptor;        /* Validate the device descriptor */     Result = usbHubValidateDescriptor(pDeviceDescriptor,pParseDeviceDesc->bcdUSB                                    ,USBHST_DEVICE_DESC );    if(USBHST_SUCCESS != Result)	{        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubConfigure:ValidateDeviceDesc fail \n",            0,            0,            0,            0);        /* Free the memory allocated */         OS_FREE (pDeviceDescriptor);        return USBHST_INVALID_PARAMETER;	}    /*     * Call OS_MALLOC() to allocate Buffer of 8 bytes. If call failed,     * return USBHST_INSUFFICIENT_MEMORY.     */    pConfigDescriptor = (UINT8 * ) OS_MALLOC(8*sizeof(UINT8));    /* Set the desc length as 8 */    uLength=8;    /* Check for call failure */    if (NULL == pConfigDescriptor)    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,"usbHubConfigure:INSUFF MEMORY-pConfigdesc 8\n",0,0,0,0);        OS_FREE (pDeviceDescriptor);        return USBHST_INSUFFICIENT_MEMORY;            }/* End of if (NULL == pConfigDescriptor ) */    /* Clear the allocated buffer.*/    OS_MEMSET(pConfigDescriptor,0,sizeof(UINT8)*8);   /*    * Call USBHST_GetDescriptor() for uDeviceHandle,    * CONFIGURATION_DESCRIPTOR and for 8 bytes. If call fails,    * i.    Call OS_FREE() to free the Buffer.    * ii.    Return result.    */    Result= usbHstGetDescriptor(    uDeviceHandle, /* Device Handle */                                     USBHST_CONFIG_DESC, /* Desc type */                                     /* descriptor index */                                     USB_DEF_ACTIVE_HUB_CONFIG_INDEX,                                     0 , /* language ID */                                     &uLength, /* Size of the descriptor */                                     /* buffer to copy to */                                     (UINT8 *)pConfigDescriptor );    if (( USBHST_SUCCESS != Result)||(8 != uLength ))    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubConfigure:getconfdesc fail R=0x%x L=%d\n",            Result,            uLength,            0,            0);        /* Free the memory allocated */        OS_FREE (pDeviceDescriptor);        OS_FREE (pConfigDescriptor);        return Result;            }/* End of if ( USBHST_SUCCESS !=Result) */    /*     * Parse the configuration descriptor and find the complete length of the     * descriptor.     */    uLength=USB_HUB_CONFIG_wTotalLength(pConfigDescriptor);    /* Call OS_FREE to free the Buffer.*/    OS_FREE(pConfigDescriptor);   /*    * Call OS_MALLOC() to allocate configuration buffer for the complete length    * of the descriptor. If call failed, return USBHST_INSUFFICIENT_MEMORY.    */    pConfigDescriptor = (UINT8 *) OS_MALLOC(uLength*sizeof(UINT8));    /* Check for call failure */    if (NULL == pConfigDescriptor)    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubConfigure:INSUFF MEMORY-pConfigdesc %d\n",            uLength*sizeof(UINT8),            0,            0,            0);                        OS_FREE (pDeviceDescriptor);        return USBHST_INSUFFICIENT_MEMORY;    }/* End of if (NULL == pConfigDescriptor ) */    /* Clear the allocated buffer */    OS_MEMSET(pConfigDescriptor,0,sizeof(UINT8)*uLength);    /*      * Call HUB_GetDescriptor() for uDeviceHandle, CONFIGURATION_DESCRIPTOR and     * for complete length. If call fails,     * i.    Call OS_FREE() to free the configuration buffer.     * ii.    Return USBHST_FAILURE.     */    Result= usbHstGetDescriptor(    uDeviceHandle, /* Device Handle */                                     USBHST_CONFIG_DESC, /* Desc type */                                     /* descriptor index */                                     USB_DEF_ACTIVE_HUB_CONFIG_INDEX,                                     0 , /* language ID */                                     &uLength , /* Size of the descriptor */                                     /* buffer to copy to */                                     (UINT8 *)pConfigDescriptor );    /* check  the  result and lenth of descriptor*/    if (( USBHST_SUCCESS != Result)||        (uLength != USB_HUB_CONFIG_wTotalLength(pConfigDescriptor)) )    {        /* Debug Message */        OS_LOG_MESSAGE_HIGH(            HUB,            "usbHubConfigure:getconfdesc fail R=0x%x L=%d\n",            Result,            uLength,            0,            0);/* End of if (( USBHST_SUCCESS != Result.......*/                    /* Free the memory allocated */        OS_FREE (pDeviceDescriptor);        /* Free the memory allocated */        OS_FREE (pConfigDescriptor);        return Result;    }/* End of if ( USBHST_SUCCESS !=Result) */     /* pointer for parsing the desc */     pParseDesc = pConfigDescriptor;     /*     * In this loop we parse the config desc and also keep track of the sequence     * in which the desriptors arrive     * 1) If Default Interface Descriptor then update uDescriptorSequence as     *    value one left shifted by (Four * ucount)     * 2) If Alternate Interface Descriptor then update uDescriptorSequence as     *    value Four left shifted by (Four * ucount)     * 3) If End Point Descriptor then update uDescriptorSequence as     *    value two left shifted by (Four * ucount)     */     while(uCount < 3)	 {        /* this switch  selects the descriptor type  */        switch (pParseDesc[1])		{         /* this is a interface descriptor */         case USBHST_INTERFACE_DESC :           /*validate the endpoint descriptor */           Result = usbHubValidateDescriptor                        (                        pParseDesc,                        pParseDeviceDesc->bcdUSB,                        USBHST_INTERFACE_DESC                        );      	   if(USBHST_SUCCESS != Result)	  	        {                /* Debug Message */                OS_LOG_MESSAGE_HIGH(                  HUB,"usbHubConfigure:ValidateInterfaceDescriptor fail \n",0,0,0,0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合中文字幕国产 | 狠狠色丁香婷婷综合| 国产一区二区三区四区五区美女| 国产黄色精品视频| 欧美放荡的少妇| 中文字幕高清不卡| 免费高清不卡av| 色8久久人人97超碰香蕉987| 欧美zozo另类异族| 天天色综合成人网| 91黄色激情网站| 国产精品视频一区二区三区不卡 | 中文字幕一区二区三区在线播放| 午夜国产精品影院在线观看| av午夜一区麻豆| 久久综合资源网| 视频一区视频二区中文| 在线视频国内自拍亚洲视频| 国产视频一区二区在线观看| 日韩av电影免费观看高清完整版| 91丨九色丨蝌蚪丨老版| 国产精品美女久久久久久| 激情五月婷婷综合| 91精品久久久久久蜜臀| 伊人婷婷欧美激情| 91美女精品福利| 国产精品久久久久久久裸模| 国产精品亚洲综合一区在线观看| 精品福利视频一区二区三区| 日韩黄色免费电影| 91精品视频网| 奇米影视一区二区三区小说| 欧美日韩五月天| 婷婷综合另类小说色区| 欧美日韩精品一区二区三区蜜桃| 亚洲高清视频的网址| 欧美日韩午夜影院| 日韩高清国产一区在线| 精品欧美一区二区久久| 久久国产剧场电影| 国产亚洲一区字幕| 成人av电影在线| 亚洲欧美一区二区三区国产精品| av男人天堂一区| 成人免费在线视频| 色国产综合视频| 日韩精品每日更新| 91精品婷婷国产综合久久性色| 全部av―极品视觉盛宴亚洲| 日韩欧美精品三级| 成人精品小蝌蚪| 一区二区三区欧美激情| 欧美日韩久久一区| 美女一区二区三区在线观看| 久久久国产综合精品女国产盗摄| 国产凹凸在线观看一区二区| 中文字幕在线一区免费| 91成人网在线| 奇米色一区二区| 久久夜色精品国产噜噜av| 国产成人免费xxxxxxxx| 亚洲男女一区二区三区| 777奇米成人网| 丰满放荡岳乱妇91ww| 亚洲一区二区精品3399| 日韩欧美中文字幕一区| 国产99久久久国产精品免费看| 亚洲区小说区图片区qvod| 91精品国产综合久久香蕉的特点 | ㊣最新国产の精品bt伙计久久| 色呦呦日韩精品| 日本少妇一区二区| 国产精品毛片久久久久久| 在线欧美日韩国产| 国模套图日韩精品一区二区 | 国产老妇另类xxxxx| 亚洲日本一区二区三区| 欧美成人三级在线| 91蜜桃免费观看视频| 久久99久久久欧美国产| 亚洲精品少妇30p| 久久久久久黄色| 欧美日本在线一区| 99国产欧美另类久久久精品| 麻豆一区二区在线| 一个色妞综合视频在线观看| 国产日韩亚洲欧美综合| 欧美精品在欧美一区二区少妇| 国产精品18久久久| 欧美96一区二区免费视频| 亚洲日本在线视频观看| 亚洲精品一区二区三区99| 欧美羞羞免费网站| 9久草视频在线视频精品| 国产在线一区观看| 日本欧美加勒比视频| 亚洲色图欧美激情| 国产精品久久久久四虎| 久久久久久久综合色一本| 91精品综合久久久久久| 精品视频1区2区3区| 91小视频在线| 不卡在线观看av| 成人精品免费视频| 国产成人综合亚洲网站| 韩国v欧美v亚洲v日本v| 蜜臀久久久99精品久久久久久| 亚洲国产精品尤物yw在线观看| 最新日韩av在线| 中文字幕在线观看不卡视频| 久久五月婷婷丁香社区| 精品日本一线二线三线不卡| 欧美四级电影在线观看| 在线亚洲欧美专区二区| 日本高清视频一区二区| 91老师国产黑色丝袜在线| 高潮精品一区videoshd| 成人aa视频在线观看| 懂色av一区二区三区免费观看| 国产精品影视在线观看| 国产成人午夜精品影院观看视频 | 午夜精品久久久久久久蜜桃app| 亚洲色图在线播放| 一区二区三区毛片| 图片区小说区国产精品视频| 亚洲成人免费av| 日本欧美肥老太交大片| 裸体在线国模精品偷拍| 国产麻豆精品一区二区| 国产91对白在线观看九色| 成人精品一区二区三区中文字幕| 99精品黄色片免费大全| 色噜噜狠狠一区二区三区果冻| 色哟哟精品一区| 欧美三级乱人伦电影| 日韩免费观看高清完整版 | 综合av第一页| 一区二区三区四区不卡在线| 亚洲宅男天堂在线观看无病毒| 婷婷丁香久久五月婷婷| 激情综合五月婷婷| 国产毛片精品视频| 91亚洲永久精品| 91麻豆精品国产91久久久资源速度| 7777精品伊人久久久大香线蕉最新版| 91精品国产91久久久久久最新毛片| 欧美成人性福生活免费看| 国产精品看片你懂得| 亚洲国产人成综合网站| 国内成人自拍视频| 色综合一个色综合亚洲| 91精品国产综合久久小美女| 国产丝袜欧美中文另类| 亚洲午夜一区二区三区| 国产在线精品一区二区夜色| av在线不卡免费看| 欧美一区二区三区婷婷月色| 欧美激情一区三区| 午夜国产精品一区| 国产成人av电影免费在线观看| 欧美日韩亚洲另类| 国产精品无人区| 热久久一区二区| 色综合中文字幕国产 | 欧美四级电影网| 欧美激情资源网| 奇米亚洲午夜久久精品| a4yy欧美一区二区三区| 欧美一区二区三区日韩| 亚洲黄色av一区| 国产91精品免费| 91麻豆精品国产91久久久资源速度 | 91麻豆精品视频| 欧美r级电影在线观看| 一区二区三区不卡在线观看| 国产在线播精品第三| 欧美午夜视频网站| 成人欧美一区二区三区小说| 激情av综合网| 欧美一区二区三区啪啪| 一区二区高清免费观看影视大全| 国产一本一道久久香蕉| 日韩一区二区三区精品视频| 亚洲国产精品视频| 色素色在线综合| 成人免费在线播放视频| 国产精品18久久久久久久久| 日韩欧美区一区二| 日韩电影在线一区二区三区| 欧美综合亚洲图片综合区| 综合欧美亚洲日本| 成人91在线观看| 国产精品久久久久影视| 国产白丝网站精品污在线入口| 精品盗摄一区二区三区| 麻豆91免费观看| 日韩久久久精品| 欧美aaaaaa午夜精品| 欧美大片一区二区三区| 奇米影视一区二区三区小说|