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

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

?? usrusbtool.c

?? SL811 USB接口芯片用于VxWorks系統的驅動源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
		!= OK)
		{
		fprintf (fout, "usbdTransferAbort() returned %d\n", s);
		break;
		}

	    /* wait for the callback to be invoked */

	    while (!irpCallbackInvoked)
		OSS_THREAD_SLEEP (1);
	    }
	}

    OSS_THREAD_DESTROY (thread);

pipe_done:

    if ((s = usbdPipeDestroy (usbdClientHandle, handle)) != OK)
	{
	fprintf (fout, "usbdPipeDestroy() returned %d\n", s);
	return RET_CONTINUE;
	}

    return RET_CONTINUE;
    }


#ifdef INCLUDE_USB_KEYBOARD
/*************************************************************************
*
* cmdKbdInit - initializes USB keyboard SIO driver
*
* RETURNS: RET_CONTINUE
*/

LOCAL UINT16 cmdKbdInit
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {
    if (usbKeyboardDevInit () == OK)
	fprintf (fout, "usbKeyboardDevInit() returned OK\n");
    else
	fprintf (fout, "usbKeyboardDevInit() returned ERROR\n");

    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdKbdDown - shuts down USB keyboard SIO driver
*
* RETURNS: RET_CONTINUE
*/

LOCAL UINT16 cmdKbdDown
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {
    if (usbKeyboardDevShutdown () == OK)
	fprintf (fout, "usbKeyboardDevShutdown() returned OK\n");
    else
	fprintf (fout, "usbKeyboardDevShutdown() returned ERROR\n");

    return RET_CONTINUE;
    }


/*************************************************************************
*
* kbdAttachCallback - receives callbacks from USB keyboard SIO driver
*
* RETURNS: N/A
*/

LOCAL SIO_CHAN *pKbdSioChan;

LOCAL VOID kbdAttachCallback
    (
    pVOID arg,			    /* caller-defined argument */
    SIO_CHAN *pChan,		    /* pointer to affected SIO_CHAN */
    UINT16 attachCode		    /* defined as USB_KBD_xxxx */
    )

    {
    FILE *fout = (FILE *) arg;

    fprintf (fout, "pChan = %p, attach code = %s\n", pChan,
	(attachCode == USB_KBD_ATTACH) ? "USB_KBD_ATTACH" : "USB_KBD_REMOVE");

    if (attachCode == USB_KBD_ATTACH)
	{
	if (pKbdSioChan == NULL)
	    {
	    if (usbKeyboardSioChanLock (pChan) != OK)
		fprintf (fout, "usbKeyboardSioChanLock() returned ERROR\n");
	    else
		pKbdSioChan = pChan;
	    }
	else
	    {
	    fprintf (fout, "Another channel already in use, ignored.\n");
	    }
	}
    else
	{
	if (pChan == pKbdSioChan)
	    {
	    if (usbKeyboardSioChanUnlock (pChan) != OK)
		fprintf (fout, "usbKeyboardSioChanUnlock() returned ERROR\n");

	    pKbdSioChan = NULL;
	    }
	}
    }


/*************************************************************************
*
* cmdKbdPoll - Polls keyboard SIO driver for input
*
* RETURNS: RET_CONTINUE
*/

LOCAL UINT16 cmdKbdPoll
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {
    THREAD_HANDLE thread;
    char inChar;

    /* register for callbacks */

    pKbdSioChan = NULL;

    if (usbKeyboardDynamicAttachRegister (kbdAttachCallback, (pVOID) fout) != OK)
	{
	fprintf (fout, "usbKeyboardDynamicAttachRegister() returned ERROR\n");
	return RET_CONTINUE;
	}


    /* Poll for input or until user presses CTRL-Z on USB keyboard or
     * [enter] on main keyboard. */

    /* Create thread to watch for keypress */

    enterPressed = FALSE;

    if (OSS_THREAD_CREATE (enterThread, (pVOID) fout, OSS_PRIORITY_INHERIT, "tEnter",
	&thread) != OK)
	goto pipe_done;

    fprintf (fout, "Press CTRL-Z to terminate polling.\n");

    while (!enterPressed)
	{
	if (pKbdSioChan != NULL)
	    {
	    if ((*pKbdSioChan->pDrvFuncs->pollInput) (pKbdSioChan, &inChar) == OK)
		{
		fprintf (fout, "ASCII %3d", inChar);
		if (inChar >= 32)
		    fprintf (fout, " '%c'", inChar);
		fprintf (fout, "\n");

		if (inChar == CTRL_Z)
		    {
		    fprintf (fout, "Stopped by CTRL-Z\n");
		    break;
		    }
		}
	    }

	OSS_THREAD_SLEEP (1);
	}

    OSS_THREAD_DESTROY (thread);

pipe_done:

    /* unregister */

    if (usbKeyboardDynamicAttachUnRegister (kbdAttachCallback, (pVOID) fout) != OK)
	fprintf (fout, "usbKeyboardDynamicAttachUnRegister() returned ERROR\n");

    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdKbdTest - Tests USB keyboard SIO driver
*
* RETURNS: RET_CONTINUE
*/

LOCAL UINT16 cmdKbdTest
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {

    if ( cmdKbdInit(Param,ppCmd,fin,fout) != RET_CONTINUE )
        {
	return RET_CONTINUE;
        } /* end of if () */

    if ( cmdKbdPoll(Param,ppCmd,fin,fout) != RET_CONTINUE )
        {
	return RET_CONTINUE;
        } /* end of if () */

    if ( cmdKbdDown(Param,ppCmd,fin,fout) != RET_CONTINUE )
        {
	return RET_CONTINUE;
        } /* end of if () */

    return RET_CONTINUE;
    }
#endif	/*INCLUDE_USB_KEYBOARD*/


#ifdef INCLUDE_USB_MOUSE
/*************************************************************************
*
* showMouseState
*
* RETURNS: N/A
*/

LOCAL long mouseX;
LOCAL long mouseY;
LOCAL BOOL mouseButtons_1_2;

LOCAL VOID showMouseState
    (
    FILE *fout,
    UINT8 buttons
    )

    {
    fprintf (fout, "\rx:%5ld  y:%5ld  B1:%3.3s B2:%3.3s B3:%3.3s",
	mouseX, mouseY, 
	(buttons & MOUSE_BUTTON_1) == 0 ? "UP " : "DWN",
	(buttons & MOUSE_BUTTON_2) == 0 ? "UP " : "DWN",
	(buttons & MOUSE_BUTTON_3) == 0 ? "UP " : "DWN");
    }


/*************************************************************************
*
* signExtend - extends sign from char to long
*
* RETURNS: sign-extended long value
*/

LOCAL long signExtend
    (
    char value
    )

    {
    if ((value & 0x80) != 0)
	return value | 0xffffff00;
    
    return value;
    }


/*************************************************************************
*
* mseRptCallback - invoked when reports received from mouse
*
* RETURNS: OK
*/

LOCAL STATUS mseRptCallback
    (
    void *arg,
    pHID_MSE_BOOT_REPORT pReport
    )

    {
    FILE *fout = (FILE *) arg;
    long xChange = signExtend (pReport->xDisplacement);
    long yChange = signExtend (pReport->yDisplacement);

    mouseX += xChange;
    mouseY += yChange;

    showMouseState (fout, pReport->buttonState);

    if ( (pReport->buttonState & MOUSE_BUTTON_1) &&
         (pReport->buttonState & MOUSE_BUTTON_2)   )
        {
          mouseButtons_1_2 = TRUE;
        } /* end of if () */

    return OK;
    }


/*************************************************************************
*
* mseAttachCallback - receives callbacks from USB mouse SIO driver
*
* RETURNS: N/A
*/

LOCAL SIO_CHAN *pMseSioChan;

LOCAL VOID mseAttachCallback
    (
    pVOID arg,			    /* caller-defined argument */
    SIO_CHAN *pChan,		    /* pointer to affected SIO_CHAN */
    UINT16 attachCode		    /* defined as USB_KBD_xxxx */
    )

    {
    FILE *fout = (FILE *) arg;

    fprintf (fout, "pChan = %p, attach code = %s\n", pChan,
	(attachCode == USB_MSE_ATTACH) ? "USB_MSE_ATTACH" : "USB_MSE_REMOVE");

    if (attachCode == USB_MSE_ATTACH)
	{
	if (pMseSioChan == NULL)
	    {
	    if (usbMouseSioChanLock (pChan) != OK)
		fprintf (fout, "usbMouseSioChanLock() returned ERROR\n");
	    else
		{
		pMseSioChan = pChan;

		/* Register for report callbacks */
    
		if (pMseSioChan != NULL)
		    {
		    if ((*pMseSioChan->pDrvFuncs->callbackInstall) (pMseSioChan, 
			SIO_CALLBACK_PUT_MOUSE_REPORT, mseRptCallback, fout) != OK)
			{
			fprintf (fout, "callbackInstall() returned ERROR.\n");
			}
		    }
		}
	    }
	else
	    {
	    fprintf (fout, "Another channel already in use, ignored.\n");
	    }
	}
    else
	{
	if (pChan == pMseSioChan)
	    {
	    if (usbMouseSioChanUnlock (pChan) != OK)
		fprintf (fout, "usbMouseSioChanUnlock() returned ERROR\n");

	    pMseSioChan = NULL;
	    }
	}
    }


/*************************************************************************
*
* cmdMouseTest - Tests mouse SIO driver for input
*
* RETURNS: RET_CONTINUE
*/

LOCAL UINT16 cmdMouseTest
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {
    THREAD_HANDLE thread;


    /* Initialize usbMouseLib. */

    if (usbMouseDevInit () != OK)
	{
	fprintf (fout, "usbMouseDevInit() returned ERROR\n");
	return RET_CONTINUE;
	}


    /* register for attach callbacks */

    pMseSioChan = NULL;

    mouseX = 0;
    mouseY = 0;

    if (usbMouseDynamicAttachRegister (mseAttachCallback, (pVOID) fout) != OK)
	{
	fprintf (fout, "usbMouseDynamicAttachRegister() returned ERROR\n");
	goto mouseDown;
	}


    /* Wait for use to press [enter] to terminate test. */

    /* Create thread to watch for keypress */

    enterPressed = FALSE;
    mouseButtons_1_2 = FALSE;

    fprintf (fout, "Press mouse buttons 1 & 2 at the same time to terminate polling.\n");

    if (OSS_THREAD_CREATE (enterThread, (pVOID) fout, OSS_PRIORITY_INHERIT, "tEnter",
	&thread) != OK)
	{
	fprintf (fout, "Failed to create tEnter thread.\n");
	goto mouseUnreg;
	}


    /* Wait for mouse to be attached */

    while (pMseSioChan == NULL)
	{
	if (enterPressed)
	    goto threadDone;
	OSS_THREAD_SLEEP (1);
	}


    /* Let background threads show mouse state */

    showMouseState (fout, 0);

    while (!enterPressed && !mouseButtons_1_2)
	OSS_THREAD_SLEEP (1);

    fprintf (fout, "\n");


threadDone:

    OSS_THREAD_DESTROY (thread);


mouseUnreg:

    /* unregister for attach callbacks */

    if (usbMouseDynamicAttachUnRegister (mseAttachCallback, (pVOID) fout) != OK)
	fprintf (fout, "usbMouseDynamicAttachUnRegister() returned ERROR\n");


    /* Terminate report callbacks */

    if (pMseSioChan != NULL)
	if ((*pMseSioChan->pDrvFuncs->callbackInstall) (pMseSioChan, 
	    SIO_CALLBACK_PUT_MOUSE_REPORT, NULL, NULL) != OK)
	    {
	    fprintf (fout, "callbackInstall() returned ERROR.\n");
	    }

mouseDown:

    if (usbMouseDevShutdown () != OK)
	fprintf (fout, "usbMouseDevShutdown() returned ERROR\n");


    return RET_CONTINUE;
    }

#endif	/*INCLUDE_USB_MOUSE*/


#ifdef INCLUDE_USB_PRINTER
/*************************************************************************
*
* closeTxFile - closes any open print tx file 
*
* RETURNS: N/A
*/

LOCAL VOID closeTxFile (void)
    {
    txCharCount = 0;
    
    if (txFile != NULL)
	{
	fclose (txFile);
	txFile = NULL;
	}
    }


/*************************************************************************
*
* prnTxCallback - feeds characters to USB printer SIO driver
*
* RETURNS: OK
*/

LOCAL STATUS prnTxCallback
    (
    void *callbackParam,
    char *txChar
    )

    {
    /* If no more chars to send, return an error */

    if (txCharCount == 0)
	return ERROR;

    txCharCount--;


    /* Check if running a pattern test or a file dump */

    if (patternTest)
	{
	/* Running a pattern test.  Return the next pattern char */

	if ((nextCharVal & 1) == 0)
	    *txChar = nextCharVal >> 8;
	else
	    *txChar = nextCharVal & 0xff;

	nextCharVal++;
	}
    else
	{
	/* Running a file dump test.  Return the next char from file */

	if (txBfrCount == 0 && txCharCount > 0)
	    {
	    /* Read next buffer from file */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久五月天| 欧美性极品少妇| 一区二区三区**美女毛片| 欧美日本精品一区二区三区| 国产精品综合视频| 天天色 色综合| 中文一区二区完整视频在线观看| 欧美日韩和欧美的一区二区| 福利一区二区在线观看| 婷婷成人综合网| 国产精品不卡在线| 久久丝袜美腿综合| 91精品国产高清一区二区三区蜜臀| 国产91对白在线观看九色| 琪琪一区二区三区| 亚洲一区二区在线免费观看视频| 国产日韩一级二级三级| 日韩欧美亚洲一区二区| 欧美日韩dvd在线观看| 99久久免费国产| 国产风韵犹存在线视精品| 男人操女人的视频在线观看欧美| 亚洲精品免费在线播放| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 日本中文一区二区三区| 一区二区三区四区乱视频| 国产精品狼人久久影院观看方式| 久久色在线观看| 日韩欧美一级特黄在线播放| 欧美日韩在线综合| 色综合天天综合在线视频| 成人永久看片免费视频天堂| 久久精品国产**网站演员| 日本在线播放一区二区三区| 亚洲第一成年网| 亚洲一二三四在线| 亚洲国产aⅴ成人精品无吗| 亚洲丝袜制服诱惑| 亚洲精品免费在线观看| 亚洲精品videosex极品| 夜夜嗨av一区二区三区中文字幕 | 亚洲视频你懂的| 中文字幕一区二区三区在线不卡 | 欧美精品一区二区三区蜜桃| 日韩欧美激情在线| 日韩欧美一区二区不卡| 精品国产123| 国产日产欧美一区二区三区 | 国产欧美日韩精品一区| 国产午夜精品一区二区三区四区 | 五月天中文字幕一区二区| 亚洲国产成人va在线观看天堂| 一区二区三区加勒比av| 亚洲国产视频直播| 亚洲成在线观看| 免费精品视频在线| 精品亚洲成a人| 国产成人高清在线| 91欧美一区二区| 91精品办公室少妇高潮对白| 欧美系列一区二区| 欧美一卡二卡在线| 久久新电视剧免费观看| 国产精品久线在线观看| 伊人性伊人情综合网| 午夜成人免费视频| 国产在线日韩欧美| 白白色 亚洲乱淫| 日本乱人伦aⅴ精品| 777xxx欧美| 国产日韩精品视频一区| 一区二区三区在线视频观看| 日韩高清国产一区在线| 国产一本一道久久香蕉| 91免费观看视频在线| 欧美日韩一区视频| www国产成人免费观看视频 深夜成人网| 国产欧美日本一区视频| 一区二区三区在线观看国产| 免播放器亚洲一区| 成人av资源在线| 在线电影一区二区三区| 国产精品妹子av| 爽爽淫人综合网网站| 国产一区二区日韩精品| 欧美性受xxxx| 欧美精品一区二区三区蜜桃| 综合分类小说区另类春色亚洲小说欧美| 天天操天天干天天综合网| 黄色成人免费在线| 欧美三级电影一区| 亚洲国产激情av| 婷婷成人激情在线网| 99久久99久久久精品齐齐| 日韩免费一区二区三区在线播放| 亚洲欧洲www| 激情久久久久久久久久久久久久久久| 在线视频国内一区二区| 久久综合给合久久狠狠狠97色69| 亚洲第一搞黄网站| 91在线国产福利| 久久免费美女视频| 调教+趴+乳夹+国产+精品| 99精品国产一区二区三区不卡| 精品日本一线二线三线不卡| 午夜精品一区在线观看| 99久久99久久久精品齐齐| 2023国产精品| 青青草精品视频| 欧美精品色一区二区三区| 国产欧美一区二区精品仙草咪| 偷偷要91色婷婷| 三级亚洲高清视频| 欧美三级在线看| 中文字幕欧美激情| 青青草国产成人av片免费| 欧美日本不卡视频| 国产精品久久久久9999吃药| 日韩高清欧美激情| 在线欧美一区二区| 国产精品毛片大码女人| 国产xxx精品视频大全| 欧美日韩国产综合草草| 亚洲欧洲日韩av| 激情小说欧美图片| 欧美另类变人与禽xxxxx| 国产偷国产偷亚洲高清人白洁| 日韩专区中文字幕一区二区| 成人av资源站| 久久亚洲一区二区三区四区| 日本午夜精品视频在线观看| 懂色av一区二区在线播放| 国产农村妇女精品| 久久精品国产99国产| 欧美精品xxxxbbbb| 亚洲午夜久久久久久久久电影院 | 欧美精品在线观看播放| 亚洲欧洲av色图| 国模娜娜一区二区三区| 精品成a人在线观看| 午夜精品久久久久久| 色8久久人人97超碰香蕉987| 国产精品美女久久久久久久久久久| 国产伦精品一区二区三区视频青涩 | 日韩精品一级二级 | 久久天天做天天爱综合色| 毛片av一区二区| 欧美日韩一区在线| 亚洲国产综合91精品麻豆| 色婷婷av久久久久久久| 亚洲视频一二三区| 99riav一区二区三区| 国产精品久线观看视频| 成人高清视频在线| 国产欧美精品一区二区色综合| 国产成人午夜高潮毛片| 国产人成一区二区三区影院| 国产乱人伦偷精品视频免下载| 精品国产三级电影在线观看| 久久精品二区亚洲w码| 在线精品视频一区二区| 日韩av电影一区| 欧美精品视频www在线观看| 日韩电影在线一区二区三区| 日韩精品一区二区三区视频在线观看 | 不卡视频一二三| 1000部国产精品成人观看| 91在线丨porny丨国产| 亚洲女人的天堂| 欧洲色大大久久| 午夜亚洲国产au精品一区二区| 欧美三片在线视频观看| 免费高清在线视频一区·| 91女人视频在线观看| 日本美女一区二区三区视频| 日韩免费视频一区二区| 国产精品996| 亚洲精品国产a久久久久久| 91在线国产福利| 日韩专区在线视频| 久久久精品免费网站| 成+人+亚洲+综合天堂| 日韩理论片在线| 欧美午夜理伦三级在线观看| 黄一区二区三区| 亚洲少妇屁股交4| 91精品国产福利在线观看| 国产麻豆91精品| 亚洲日本在线观看| 久久婷婷色综合| 一本色道久久综合亚洲91| 亚洲成人午夜影院| 久久久久久久一区| 在线观看一区不卡| 久久国产尿小便嘘嘘| 一区二区三区四区亚洲| 日韩欧美国产综合| 97精品久久久午夜一区二区三区| 日韩电影在线看| 国产日韩高清在线|