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

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

?? usbtransunitinit.c

?? This the compressed USB driver source code for vxworks5.6. It has device controller driver and other
?? C
?? 第 1 頁 / 共 4 頁
字號:
    (    pVOID driverParam    )    {    UINT32 message;    pUSBTU_CLIENTMSG pMessage;    pUSBTU_DEVICE_DRIVER pDriverInfo = (pUSBTU_DEVICE_DRIVER) driverParam;    pUSBTU_NODE_INFO pDevInfo;    USBTU_LOG ( " Client Thread Function : usbtuInitClientThreadFn entered \n");    while(1)        {        /* wait for a message */        msgQReceive(pDriverInfo->msgQid,                    (char*)&message,                    sizeof(UINT32),                    WAIT_FOREVER);        /* get the message pointer  */        pMessage = (pUSBTU_CLIENTMSG)message;        switch (pMessage->eventCode)            {            case ADDDEVICE:                /* message indicates device add event */                USBTU_LOG ( "usbtuInitClientThreadFn ADDDEVICE message received \n");                /* Wind View Instrumentation */                if ((usbtuInitWvFilter & USBTU_WV_FILTER) == TRUE)                    {                    char evLog[USBTU_WV_LOGSIZE];                    strncpy ((char*)evLog, (char *)(pDriverInfo->clientName),USBD_NAME_LEN );                    strcat(evLog, " : ADDDEVICE Event ");                    USB_HCD_LOG_EVENT(USBTU_WV_CLIENT_INIT, evLog, USBTU_WV_FILTER);                    }                /* call the user supplied callback */                (*pDriverInfo->attachCallback)                    (                    (USBD_NODE_ID) pMessage->hDevice,USBD_DYNA_ATTACH,                    0,                    pMessage->interface,                    pDriverInfo->class,                    pDriverInfo->subclass,                    pDriverInfo->protocol                    );                break;            case REMOVEDEVICE:                /* message indicates device removal event */                USBTU_LOG("usbtuInitClientThreadFn REMOVEDEVICE message received\n");                /* Wind View Instrumentation */                if ((usbtuInitWvFilter & USBTU_WV_FILTER) == TRUE)                    {                    char evLog[USBTU_WV_LOGSIZE];                    strncpy ((char*)evLog,(char *)(pDriverInfo->clientName),USBD_NAME_LEN );                    strcat(evLog, " : REMOVEDEVICE Event ");                    USB_HCD_LOG_EVENT(USBTU_WV_CLIENT_INIT, evLog, USBTU_WV_FILTER);                    }                /* call the user supplied callback */                 (*pDriverInfo->attachCallback)                    (                    (USBD_NODE_ID)pMessage->hDevice,                    USBD_DYNA_REMOVE,                    1,                    pMessage->interface,                    pDriverInfo->class,                    pDriverInfo->subclass,                    pDriverInfo->protocol);                 /* remove the device structure from global list */                 OSS_MUTEX_TAKE (usbtuMutex, OSS_BLOCK);                 pDevInfo = usbListFirst (&usbtuDevList);                 while (pDevInfo != NULL)                     {                     if ( pDevInfo->hDevice == pMessage->hDevice )	                 break;                     pDevInfo = usbListNext (&pDevInfo->devLink);                     }                 if (!(pDevInfo))                     {                     /* did not find device structure */                     OSS_FREE (pMessage);                     OSS_MUTEX_RELEASE (usbtuMutex);                     USBTU_LOG ( "usbtuInitClientThreadFn device not found \n");                     continue;                     }                /* unlink structure for device */                usbListUnlink(&pDevInfo->devLink);                OSS_MUTEX_RELEASE (usbtuMutex);                /* Free the node structure */                OSS_FREE(pDevInfo);                break;            case SUSPENDDEVICE:                /* message indicates device suspend event */                USBTU_LOG("usbtuInitClientThreadFn SUSPENDDEVICE message received\n");                /* Wind View Instrumentation */                if ((usbtuInitWvFilter & USBTU_WV_FILTER) == TRUE)                    {                    char evLog[USBTU_WV_LOGSIZE];                    strncpy ((char*)evLog, (char *)(pDriverInfo->clientName),USBD_NAME_LEN );                    strcat(evLog, " : SUSPENDDEVICE Event ");                    USB_HCD_LOG_EVENT(USBTU_WV_CLIENT_INIT, evLog, USBTU_WV_FILTER);                    }                /* no code defined for suspend event by Wind River,                 * so no call back called                 */                break;            case RESUMEDEVICE:                /* message indicates device resume event */                USBTU_LOG("usbtuInitClientThreadFn RESUMEDEVICE message received\n");                /* Wind View Instrumentation */                if ((usbtuInitWvFilter & USBTU_WV_FILTER) == TRUE)                    {                    char evLog[USBTU_WV_LOGSIZE];                    strncpy ((char*)evLog, (char *)(pDriverInfo->clientName),USBD_NAME_LEN );                    strcat(evLog, " : RESUMEDEVICE Event ");                    USB_HCD_LOG_EVENT(USBTU_WV_CLIENT_INIT, evLog, USBTU_WV_FILTER);                    }                /* call the user supplied callback */                 if ( pDriverInfo->mngmtCallback == NULL)                     {                     USBTU_LOG( " management callback NULL \n ");                     }                 else                 {                 (*(pDriverInfo->mngmtCallback))                    (                    pDriverInfo->mngmtCallbackParam,                    (USBD_NODE_ID)pMessage->hDevice,                    USBD_MNGMT_RESUME                    );                 }                 break;            default:                break;            }            OSS_FREE (pMessage);            USBTU_LOG("usbtuInitClientThreadFn continues to wait for more \                       messages\n");        }    }/***************************************************************************** usbtuInitClientIrpCompleteThreadFn - Client Thread Function** This function is executed by a client Thread.* The thread waits on the  message queue created for the client* The message is of the type USBTU_CLIENTMSG.* Based on the USBTU_EVENTCODE in the message it performs the action.** RETURNS: N/A** ERRNO: N/A*/VOID usbtuInitClientIrpCompleteThreadFn    (    pVOID driverParam    )    {    UINT32 message;    pUSB_IRP        pIrp;    pUSBTU_DEVICE_DRIVER pDriverInfo = (pUSBTU_DEVICE_DRIVER) driverParam;     USBTU_LOG ( " Client Thread Function : usbtuInitClientIrpCompleteThreadFn entered \n");    while(1)        {        /* wait for a message */        msgQReceive(pDriverInfo->msgQidIrpComplete,                    (char*)&message,                    sizeof(UINT32),                    WAIT_FOREVER);        /* get the message pointer  */        pIrp =     (pUSB_IRP) message;                /* message indicates IRP completion event */                USBTU_LOG("usbtuInitClientIrpCompleteThreadFn IRPCOMPLETE message received\n");                /* call the user supplied IRP completion callback */        (*pIrp->userCallback)(pIrp);            USBTU_LOG("usbtuInitClientIrpCompleteThreadFn continues to wait for more \                       messages\n");        }    }/***************************************************************************** usbtuInitDeviceAdd - Device Attach Callback** This function is called from interrupt context by USBD* on a device attach.** RETURNS: USBHST_SUCCESS, or USBHST_FAILURE on failure** ERRNO: N/A*/USBHST_STATUS usbtuInitDeviceAdd    (    UINT32 hDevice,    UINT8 interfaceNumber,    UINT8 speed,    void** ppDriverData    )    {    pUSBTU_TUMSG   pTuMessage;    USBTU_LOG ( " Device Attach Callback usbtuInitDeviceAdd() entered \n");    /* allocate a message structure to send to Translation Unit thread */    if ( !(pTuMessage = OSS_CALLOC( sizeof (USBTU_TUMSG))))        {        USBTU_LOG ( "usbtuInitDeviceAdd malloc failed \n");        return USBHST_FAILURE;        }    else        {        /* initialize message structure */        pTuMessage->eventCode = ADDDEVICE;        pTuMessage->hDevice = hDevice;        pTuMessage->interface = interfaceNumber;        pTuMessage->ppDriverData = ppDriverData;        /* send message ptr */        if (msgQSend(usbtuMsgQid,(char *) &pTuMessage , sizeof(char *),                     NO_WAIT, MSG_PRI_URGENT )                     !=OK)            USBTU_LOG ( "tuinitDeviceAdd msgQSend failed \n");        }    USBTU_LOG ( "usbtuInitDeviceAdd left \n");    return USBHST_SUCCESS;    }/***************************************************************************** usbtuInitDeviceRemove - Device Detach Callback** This function is called from interrupt context by USBD* on a device detach.** RETURNS: N/A** ERRNO: N/A*/VOID usbtuInitDeviceRemove    (    UINT32 hDevice,    PVOID pDriverData    )    {    pUSBTU_TUMSG   pTuMessage;    USBTU_LOG ( " Device Detach Callback usbtuInitDeviceRemove() entered \n");    /* allocate a message structure to send to Translation Unit thread */    if ( !(pTuMessage = OSS_CALLOC( sizeof (USBTU_TUMSG))))        {        USBTU_LOG ( "usbtuInitDeviceRemove malloc failed \n");        }    else        {        /* initialize message structure */        pTuMessage->eventCode = REMOVEDEVICE;        pTuMessage->hDevice = hDevice;        pTuMessage->ppDriverData = pDriverData;        /* send message ptr */        if ( msgQSend(usbtuMsgQid,(char *) &pTuMessage,                      sizeof(char *) , NO_WAIT, MSG_PRI_URGENT )                      != OK)            USBTU_LOG ( "usbtuInitDeviceRemove msgQSend failed \n");        }    USBTU_LOG ( "usbtuInitDeviceRemove left \n");    }/***************************************************************************** usbtuInitDeviceSuspend - Device Suspend Callback** This function is called from interrupt context by USBD* on a device suspend.** RETURNS: N/A** ERRNO: N/A*/VOID usbtuInitDeviceSuspend    (    UINT32 hDevice,    PVOID ppSuspendData    )    {    pUSBTU_TUMSG   pTuMessage;    USBTU_LOG ( "Device Suspend Callback usbtuInitDeviceSuspend() entered \n");    /* allocate a message structure to send to Translation Unit thread */    if ( !(pTuMessage = OSS_CALLOC( sizeof (USBTU_TUMSG))))        {        USBTU_LOG ( "usbtuInitDeviceSuspend malloc failed \n");        }    else        {        /* initialize message structure */        pTuMessage->eventCode = SUSPENDDEVICE;        pTuMessage->hDevice = hDevice;        pTuMessage->ppDriverData = ppSuspendData;        /* send message ptr */        if ( msgQSend(usbtuMsgQid,(char *) &pTuMessage,                      sizeof(char *) , NO_WAIT, MSG_PRI_URGENT )                      != OK)            USBTU_LOG ( "usbtuInitDeviceSuspend msgQSend failed \n");        }    USBTU_LOG ( "usbtuInitDeviceSuspend left \n");    }/***************************************************************************** usbtuInitDeviceResume - Device Resume Callback** This function is called from interrupt context by USBD* on a device resume.** RETURNS: N/A** ERRNO: N/A*/VOID usbtuInitDeviceResume    (    UINT32 hDevice,    PVOID pSuspendData    )    {    pUSBTU_TUMSG   pTuMessage;    USBTU_LOG ( "Device Resume Callback usbtuInitDeviceResume() entered \n");    /* allocate a message structure to send to Translation Unit thread */    if (!(pTuMessage = OSS_CALLOC( sizeof (USBTU_TUMSG))))        {        USBTU_LOG ( "usbtuInitDeviceResume malloc failed \n");        }    else        {        /* initialize message structure */        pTuMessage->eventCode = RESUMEDEVICE;        pTuMessage->hDevice = hDevice;        pTuMessage->ppDriverData = pSuspendData;        /* send message ptr  */        if ( msgQSend(usbtuMsgQid,(char *) &pTuMessage , sizeof(char *),                      NO_WAIT, MSG_PRI_URGENT )                      != OK )            USBTU_LOG ( "usbtuInitDeviceResume msgQSend failed \n");        }    USBTU_LOG ( "usbtuInitDeviceResume left \n");    }/* End of file. */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线视频免费| 国产精品88av| 久久99蜜桃精品| 91蜜桃婷婷狠狠久久综合9色| 51精品久久久久久久蜜臀| 中文字幕视频一区| 国产一区欧美一区| 欧美精品xxxxbbbb| 亚洲狠狠丁香婷婷综合久久久| 久久福利资源站| 5月丁香婷婷综合| 一区二区三区在线观看网站| 国产**成人网毛片九色| 3atv一区二区三区| 亚洲一卡二卡三卡四卡| 不卡视频一二三四| 日本一二三不卡| 国产一区二区三区美女| 精品粉嫩超白一线天av| 日本欧美一区二区| 欧美高清激情brazzers| 亚洲一区日韩精品中文字幕| 99re视频精品| 欧美激情中文字幕| 精品在线播放午夜| 日韩免费性生活视频播放| 午夜影视日本亚洲欧洲精品| 在线免费观看视频一区| 亚洲同性gay激情无套| 成人一区二区在线观看| 久久久国际精品| 成人午夜在线免费| 中文字幕第一区综合| 国产98色在线|日韩| 国产亚洲欧美日韩俺去了| 国产在线精品免费av| 久久久99免费| 国产高清不卡一区二区| 国产日本欧洲亚洲| 国产成人午夜精品影院观看视频| 欧美精品一区二区高清在线观看| 久久国产精品露脸对白| 精品三级av在线| 国产成人日日夜夜| 亚洲欧洲国产日韩| 欧洲国产伦久久久久久久| 亚洲成在线观看| 日韩视频在线你懂得| 国产在线视视频有精品| 欧美经典三级视频一区二区三区| 成人av免费在线| 亚洲精品中文字幕乱码三区| 在线观看网站黄不卡| 日韩不卡一区二区三区 | 久久久国产午夜精品| 国产·精品毛片| 亚洲最新视频在线播放| 欧美妇女性影城| 国产一区二区三区| 国产精品久久久久aaaa樱花 | 欧美成人激情免费网| 久久精品国产一区二区| 国产精品国模大尺度视频| 欧美性一二三区| 国产在线精品国自产拍免费| 亚洲欧美另类小说视频| 欧美一区二区在线免费播放| 粗大黑人巨茎大战欧美成人| 香蕉乱码成人久久天堂爱免费| 精品三级在线观看| 在线欧美日韩国产| 国产成人免费视频一区| 亚洲成人tv网| 亚洲欧洲一区二区三区| 欧美剧在线免费观看网站 | 美国十次综合导航| 中文字幕一区二区三区在线不卡| 欧美一区二视频| 一本色道亚洲精品aⅴ| 久久成人久久鬼色| 一区二区三区四区不卡在线| 2022国产精品视频| 在线免费av一区| 懂色av中文一区二区三区| 天堂av在线一区| 亚洲人成网站精品片在线观看| 日韩一区二区三区av| 91福利精品第一导航| 成人影视亚洲图片在线| 麻豆国产精品777777在线| 一区二区三区不卡视频| 国产亚洲精品aa午夜观看| 欧美福利电影网| 色老汉av一区二区三区| 成人激情午夜影院| 国产精品自在欧美一区| 日韩成人伦理电影在线观看| 亚洲国产一二三| 综合久久一区二区三区| 国产精品妹子av| 国产日韩精品一区二区浪潮av| 欧美一区二区网站| 欧美无乱码久久久免费午夜一区| 95精品视频在线| 粗大黑人巨茎大战欧美成人| 国产成人99久久亚洲综合精品| 久久se精品一区精品二区| 石原莉奈一区二区三区在线观看| 一区二区三区精品| 国产精品青草久久| 国产精品夫妻自拍| 国产精品美女久久久久久久| 国产女人18水真多18精品一级做 | 国产成人一区二区精品非洲| 国产一区二区日韩精品| 国产一区二区在线视频| 久久精品国产久精国产爱| 久久精品国产99| 经典一区二区三区| 国产一区二区三区四区五区入口| 久久91精品国产91久久小草| 激情综合五月天| 国产精品一区在线观看乱码| 成人小视频在线观看| 不卡的av电影| 欧美主播一区二区三区| 欧美日本在线看| 日韩欧美国产一二三区| 26uuu久久天堂性欧美| 日本一区免费视频| 亚洲人妖av一区二区| 亚洲国产精品影院| 麻豆一区二区三区| 国产成人av影院| 色综合天天综合在线视频| 在线亚洲免费视频| 日韩视频免费直播| 中文字幕国产一区| 一区二区三区美女视频| 蜜臀av一区二区在线观看| 狠狠色丁香久久婷婷综合_中| 国产成人在线免费| 色偷偷成人一区二区三区91| 51精品秘密在线观看| 国产视频视频一区| 亚洲黄色尤物视频| 九九久久精品视频 | 国内精品久久久久影院薰衣草 | 国产激情91久久精品导航| av在线不卡免费看| 欧美日韩一区二区在线观看| 日韩一卡二卡三卡| 亚洲三级免费电影| 精品一二三四区| 91极品美女在线| 欧美激情综合在线| 日韩电影在线免费观看| 国产风韵犹存在线视精品| 欧美日本一区二区三区四区| 国产亚洲自拍一区| 丝袜a∨在线一区二区三区不卡| 国产精品亚洲成人| 欧美日韩在线亚洲一区蜜芽| 国产欧美日韩亚州综合| 亚洲成人精品一区| 91亚洲精品一区二区乱码| 精品盗摄一区二区三区| 亚洲国产va精品久久久不卡综合| 风间由美性色一区二区三区| 91精品国产综合久久久久久 | 国产精品沙发午睡系列990531| 婷婷综合五月天| 色综合久久久久久久| 久久久精品免费免费| 久88久久88久久久| 5858s免费视频成人| 亚洲国产一区视频| 色婷婷久久99综合精品jk白丝| 国产亚洲精品bt天堂精选| 日韩av一区二区在线影视| 在线观看欧美日本| 亚洲丝袜制服诱惑| 成人美女视频在线看| 久久久久99精品一区| 韩国视频一区二区| 日韩三区在线观看| 三级亚洲高清视频| 欧美夫妻性生活| 日韩一区欧美二区| 欧美日韩高清一区二区| 亚洲a一区二区| 欧美亚洲另类激情小说| 亚洲综合免费观看高清完整版在线| 国产成人精品亚洲日本在线桃色| 久久新电视剧免费观看| 另类成人小视频在线| 欧美变态tickling挠脚心| 奇米影视7777精品一区二区| 欧美高清性hdvideosex| 日韩av高清在线观看|