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

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

?? usrusbtool.c

?? IXP425的BSP代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
	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;    }#endif	/*INCLUDE_USB_KEYBOARD*/#ifdef INCLUDE_USB_MOUSE/*************************************************************************** showMouseState** RETURNS: N/A*/LOCAL long mouseX;LOCAL long mouseY;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);    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, 	 	 		(STATUS  (*) (void *, ...)) 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;    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)	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_KEYBOARD*/#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 */	    txBfrCount = fread (txBfr, sizeof (char), sizeof (txBfr), txFile);	    txBfrIndex = 0;	    }	if (txCharCount == 0 || txBfrCount == 0)	    {	    closeTxFile ();	    txCharCount = 0;	    }	if (txBfrCount == 0)	    return ERROR;	*txChar = txBfr [txBfrIndex++];	--txBfrCount;	}    return OK;    }/*************************************************************************** prnAttachCallback - receives attach callbacks from printer SIO driver** RETURNS: N/A*/LOCAL SIO_CHAN *pPrnSioChan;LOCAL VOID prnAttachCallback    (    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_PRN_ATTACH) ? "USB_PRN_ATTACH" : "USB_PRN_REMOVE");    if (attachCode == USB_PRN_ATTACH)	{	if (pPrnSioChan == NULL)	    {	    if (usbPrinterSioChanLock (pChan) != OK)		fprintf (fout, "usbPrinterSioChanLock() returned ERROR\n");	    else		{		pPrnSioChan = pChan;		if ((*pPrnSioChan->pDrvFuncs->callbackInstall) (pPrnSioChan, 		    	SIO_CALLBACK_GET_TX_CHAR, 	 	 	(STATUS  (*) (void *, ...)) prnTxCallback, 			NULL) != OK)		    {		    fprintf (fout, "callbackInstall() returned ERROR.\n");		    }		}	    }	else	    {	    fprintf (fout, "Another channel already in use, ignored.\n");	    }	}    else	{	if (pChan == pPrnSioChan)	    {	    if (usbPrinterSioChanUnlock (pChan) != OK)		fprintf (fout, "usbPrinterSioChanUnlock() returned ERROR\n");	    pPrnSioChan = NULL;	    }	}    }/*************************************************************************** cmdPrnInit - initializes USB printer SIO driver** RETURNS: RET_CONTINUE*/LOCAL BOOL prnInitialized = FALSE;LOCAL UINT16 cmdPrnInit    (    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 (prnInitialized)	{	fprintf (fout, "USB printer SIO driver already initialized.\n");	return RET_CONTINUE;	}    if (usbPrinterDevInit () == OK)	{	fprintf (fout, "usbPrinterDevInit() returned OK\n");	prnInitialized = TRUE;	/* Register for attach notification */	if (usbPrinterDynamicAttachRegister (prnAttachCallback, (pVOID) fout) != OK)	    {	    fprintf (fout, "usbPrinterDynamicAttachRegister() returned ERROR\n");	    return RET_CONTINUE;	    }	}    else	fprintf (fout, "usbPrinterDevInit() returned ERROR\n");    return RET_CONTINUE;    }/*************************************************************************** cmdPrnDown - shuts down USB printer SIO driver** RETURNS: RET_CONTINUE*/LOCAL UINT16 cmdPrnDown    (    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 (!prnInitialized)	{	fprintf (fout, "USB printer SIO driver not initialized.\n");	return RET_CONTINUE;	}    prnInitialized = FALSE;    pPrnSioChan = NULL;    /* unregister */    if (usbPrinterDynamicAttachUnRegister (prnAttachCallback, (pVOID) fout) != OK)	fprintf (fout, "usbPrinterDynamicAttachUnRegister() returned ERROR\n");    if (usbPrinterDevShutdown () == OK)	fprintf (fout, "usbPrinterDevShutdown() returned OK\n");    else	fprintf (fout, "usbPrinterDevShutdown() returned ERROR\n");    return RET_CONTINUE;    }/*************************************************************************** waitForPrinter - waits for a printer to be connected** RETURNS: OK if printer connected, else ERROR*/LOCAL STATUS waitForPrinter     (    FILE *fout    )    {    THREAD_HANDLE thread;    UINT8 * pBfr;    USB_PRINTER_CAPABILITIES * pCaps;    UINT16 idLen;    UINT8 protocol;    UINT16 i;    /* Create thread to watch for keypress */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清不卡一二三区| 亚洲国产精品视频| 精品福利一区二区三区免费视频| 99久久精品国产一区二区三区| 国产精品88av| 国产电影精品久久禁18| 国产精品亚洲第一| 成人av在线资源| av成人动漫在线观看| 波多野结衣的一区二区三区| 成人性色生活片| 91在线一区二区三区| 91久久精品网| 欧美日韩午夜精品| 精品久久久久香蕉网| 久久久噜噜噜久久中文字幕色伊伊 | 久久激情五月激情| 蜜臀av性久久久久蜜臀aⅴ四虎 | 99久久综合狠狠综合久久| jizz一区二区| 欧美视频一区二区三区在线观看 | 成人性生交大片| 色综合天天性综合| 在线观看视频一区| 欧美大片一区二区| 中文字幕一区二区三区在线不卡| 亚洲精品欧美激情| 热久久免费视频| 国产精品一区在线观看你懂的| 成人av在线影院| 欧美日韩免费一区二区三区视频| 精品奇米国产一区二区三区| 国产精品九色蝌蚪自拍| 爽好久久久欧美精品| 国产成人av自拍| 欧美三级日本三级少妇99| 日韩欧美的一区| 国产精品国产三级国产| 亚洲成av人**亚洲成av**| 国产在线一区二区| 欧洲精品中文字幕| 久久久综合视频| 婷婷久久综合九色国产成人| 成人免费观看视频| 日韩三级免费观看| 亚洲成人精品一区| 国产一区二区三区精品视频| 91国产福利在线| 国产无人区一区二区三区| 日本在线不卡视频| 91视频在线看| 国产日韩欧美在线一区| 日韩av在线发布| 在线观看视频一区| 亚洲视频在线观看三级| 精品无码三级在线观看视频| 欧美日韩和欧美的一区二区| 国产精品激情偷乱一区二区∴| 久久激情五月激情| 在线播放欧美女士性生活| 亚洲人成伊人成综合网小说| 国产91精品精华液一区二区三区| 日韩一二三四区| 亚洲国产精品一区二区久久| 一本色道久久综合亚洲精品按摩| 国产欧美一区二区三区网站| 精品系列免费在线观看| 宅男在线国产精品| 午夜日韩在线观看| 欧美性大战久久久久久久蜜臀| 中文字幕一区二区三区在线观看| 成人一区二区在线观看| 国产亚洲va综合人人澡精品| 黄色小说综合网站| 26uuu另类欧美| 欧美自拍偷拍午夜视频| 亚洲大片免费看| 欧美日韩中文字幕精品| 亚洲成a人在线观看| 欧美美女直播网站| 亚洲电影第三页| 欧美日韩精品综合在线| 丝袜亚洲另类丝袜在线| 宅男在线国产精品| 久久国产精品区| 久久无码av三级| 国产精品69毛片高清亚洲| 欧美激情一区在线| 不卡的av电影| 一区二区三区中文在线| 在线电影院国产精品| 日韩福利视频网| 欧美mv日韩mv| av成人老司机| 肉肉av福利一精品导航| 久久先锋影音av| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲日本在线观看| 欧美日韩免费高清一区色橹橹| 午夜成人免费视频| 久久亚洲私人国产精品va媚药| 国产91综合一区在线观看| 亚洲色图视频网站| 欧美日韩精品一区二区天天拍小说 | 欧美日韩国产综合久久| 日本不卡一区二区三区高清视频| 日韩一区二区三| 欧美一区二区三区视频在线观看| 男女男精品视频网| 国产无人区一区二区三区| 色综合视频一区二区三区高清| 日产国产欧美视频一区精品| 久久久午夜精品| 在线免费观看日韩欧美| 狠狠网亚洲精品| 夜夜揉揉日日人人青青一国产精品| 日韩欧美激情在线| 91老司机福利 在线| 久久精品国产亚洲a| 日韩美女久久久| 亚洲精品一线二线三线| 欧美亚一区二区| 国产盗摄视频一区二区三区| 亚洲黄色av一区| 精品久久国产字幕高潮| 日本韩国欧美国产| 国产高清亚洲一区| 久久激情五月激情| 午夜欧美视频在线观看| 中文字幕五月欧美| 久久精品欧美日韩| 日韩视频免费观看高清完整版在线观看| 成人动漫一区二区在线| 国精产品一区一区三区mba视频 | 免费成人av在线播放| 一区二区成人在线| 欧美高清在线一区| 久久精品一区二区三区不卡牛牛| 91麻豆精品91久久久久久清纯| 日本乱码高清不卡字幕| 97国产一区二区| 成人性生交大片免费看视频在线 | 懂色av一区二区三区免费观看| 视频一区中文字幕国产| 亚洲一区二区三区四区不卡| 亚洲视频中文字幕| 亚洲欧洲日韩女同| 成人免费在线观看入口| 久久精品综合网| 国产日韩成人精品| 国产亚洲成av人在线观看导航 | 亚洲精品欧美激情| 亚洲美女免费在线| 一区二区三区精密机械公司| 一区二区三区欧美在线观看| 亚洲美女视频一区| 一区二区三区在线播放| 一区二区三区在线观看欧美| 亚洲一区二区三区四区中文字幕| 一区二区三区91| 亚洲va国产va欧美va观看| 日韩av一区二区三区| 蜜桃视频一区二区三区| 久久国产欧美日韩精品| 国产盗摄一区二区三区| 色综合久久久久| 欧美日韩一级二级| 日韩一二三四区| 久久久久久久综合日本| 成人欧美一区二区三区1314| 一区二区高清视频在线观看| 日本中文字幕一区二区视频| 国产精品一色哟哟哟| 91蜜桃网址入口| 欧美日韩国产经典色站一区二区三区| 91麻豆精品国产综合久久久久久 | 中文字幕亚洲区| 国产.欧美.日韩| 91麻豆国产自产在线观看| 在线观看三级视频欧美| 日韩久久久精品| 中文字幕日韩一区二区| 午夜视频一区二区| 国产精品18久久久久久久久久久久| 97久久精品人人澡人人爽| 欧美日韩久久一区二区| 久久久久久久久免费| 亚洲乱码中文字幕| 黑人巨大精品欧美一区| av亚洲精华国产精华精华| 在线播放视频一区| 17c精品麻豆一区二区免费| 日韩不卡一二三区| 91色在线porny| 精品精品欲导航| 亚洲午夜精品网| 国产大陆a不卡| 91精品国产一区二区| 亚洲色图制服丝袜| 国产精品1区2区3区|