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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usrusbtool.c

?? SL811 USB接口芯片用于VxWorks系統(tǒng)的驅(qū)動源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* usrUsbTool.c - USB Driver (USBD) and USB HCD Exerciser. */

/* Copyright 2000 Wind River Systems, Inc. */

/*
Modification history
--------------------
01m,16sep00,wef  changed all device component names to have _USB_ in them
01l,12apr00,wef  reverted to older version of usrUsbTool.c
01k,07mar00,rcb  Add casts to convert GENERIC_HANDLEs to UINT32 where necesary.
01j,29jan00,wef  made usbTool in to a component configlette
01i,17jan00,rcb  Add functions to test usbSpeakerLib.
01h,29nov99,rcb  Increase frame number fields to 32-bits in 
		 cmdGetCurrentFrame().
01g,23nov99,rcb  Added "Attach" and "Detach" commands to control attach/detach
		 of UHCI or OHCI HCD modules.  Removed automatic attachment
		 from "UsbInit" command.
01f,23nov99,rcb  Change #include ../xxx references to lower case.
01e,12nov99,rcb  Shorted path names...affects "#include" directives.
01d,07oct99,rcb  Add code to test usbMouseLib.c.
01c,04oct99,rcb  Add "dump" command.
01b,24sep99,rcb  Add "print" function to dump files to printer.
01a,01jun99,rcb  First.
*/

/*
DESCRIPTION

usbTool is a command line-driven program which allows the user to exercise
USB capabilities through the USB Driver (USBD) and USB HCD (Host Controller
Driver).  

In the vxWorks environment, the user starts usbTool by invoking the "usbTool"
entry point from the vxWorks shell. usbTool then displays a prompt:

    USB>

The user may now enter commands which will be parsed and executed by usbTool.
Each command follows the format:

    USB>command [optional parameter(s)]

Commands are executed after the user presses [enter].  The user may enter 
the "help" or "?" commands to see a list of currently supported commands.

Multiple commands may be entered on the same command line separated by 
semicolons (';').  usbTool which execute each command as if it had been 
entered on a separate line (unless a command terminates with an error, in 
which case all remaining commands entered on the same line will be ignored).

The "quit"/"exit"/"bye" command terminates usbTool.
*/


/* Include files */

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "ioLib.h"
#include "ctype.h"

#include "usb/usbPlatform.h"		    /* Basic definitions */
#include "usb/tools/cmdParser.h"	    /* Command parser util funcs */

/* #define INCLUDE_DOSFS2 */

#ifdef INCLUDE_USB_PCI
#include "usb/usbPciLib.h"		    /* PCI interface */
#endif

#include "usb/usbdLib.h"		    /* USBD interface */

#include "config.h"

#ifdef INCLUDE_UHCI
    #include "drv/usb/usbUhci.h"		/* UHCI definitions */
    #include "drv/usb/usbHcdUhciLib.h"		/* UHCI HCD entry point, etc. */
#endif

#ifdef INCLUDE_OHCI
    #include "drv/usb/usbOhci.h"		/* OHCI definitions */
    #include "drv/usb/usbHcdOhciLib.h"		/* OHCI HCD entry point, etc. */
#endif

#ifdef INCLUDE_SL811H
#include "usbSl811hs.h"
#include "usbHcdSl811hsLib.h"
#endif


#include "usb/usbHid.h" 		    /* USB HID definitions */

#ifdef INCLUDE_USB_KEYBOARD
    #include "drv/usb/usbKeyboardLib.h" 	/* USB keyboard SIO driver */
#endif

#ifdef INCLUDE_USB_MOUSE
    #include "drv/usb/usbMouseLib.h"		/* USB mouse SIO driver */
#endif

#ifdef INCLUDE_USB_PRINTER
    #include "usb/usbPrinter.h"
    #include "drv/usb/usbPrinterLib.h"		/* USB printer SIO driver */
#endif

#ifdef INCLUDE_USB_SPEAKER
    #include "usb/tools/wavFormat.h"		/* Microsoft .wav file format */
    #include "usb/usbAudio.h"			/* USB audio definitions */
    #include "drv/usb/usbSpeakerLib.h"		/* USB speaker SEQ_DEV driver */
#endif

#ifdef INCLUDE_USB_MS_BULKONLY
    #include "iosLib.h"
    #include "dosFsLib.h"
    #include "usb/usbdLib.h"
    #include "usb/usbQueueLib.h"
    #include "drv/usb/usbBulkDevLib.h"
#endif

#ifdef INCLUDE_USB_TARG
    #include "usb/target/usbTargLib.h"		/* USB target library */
    #include "drv/usb/target/usbPdiusbd12Eval.h"    /* Philips target eval */
    #include "drv/usb/target/usbTcdPdiusbd12EvalLib.h"	    /* Philips TCD */

    #include "drv/usb/target/usbTargPhilipsD12EvalLib.h"    /* Philips eval target */
    #include "drv/usb/target/usbTargKbdLib.h"	/* USB keyboard emulator */
    #include "drv/usb/target/usbTargPrnLib.h"	/* USB printer emulator */
#endif


/* defines */

#define PGM_NAME	"usbTool"
#define PGM_DESCR	"USB exerciser"
#define PGM_VERSION	"01e"
#define PGM_COPYRIGHT	"Copyright (c) 2001, Wind River Systems, Inc.\n"


/* Prompt definition */

#define PROMPT		"usb>"		/* Program prompt */

#define INDENT		2		/* indent used during bus enumerate */


/* misc defines */

#define INT_PIPE_SRVC_INTERVAL	    20	/* milliseconds */

#define CTRL_Z			    26	/* ASCI code for ^Z */

#define MAX_MFG_STR_LEN 	    40
#define MAX_PROD_STR_LEN	    40

#define TX_BFR_SIZE		    0x1000
#define AUDIO_BFR_SIZE		    0x8000


/* locals */

#ifdef	INCLUDE_USB

LOCAL BOOL initialized = FALSE;
LOCAL USBD_CLIENT_HANDLE usbdClientHandle = NULL;
LOCAL GENERIC_HANDLE uhciAttachToken = NULL;
LOCAL GENERIC_HANDLE ohciAttachToken = NULL;
LOCAL GENERIC_HANDLE sl811hAttachToken = NULL;

LOCAL BOOL enterPressed;
LOCAL BOOL irpCallbackInvoked;

#endif

#ifdef	INCLUDE_USB_PRINTER

LOCAL BOOL patternTest;

LOCAL UINT32 txCharCount;	/* count of chars to "print" */

LOCAL UINT16 nextCharVal;	/* next value for pattern test */

LOCAL FILE *txFile = NULL;	/* file being "printed" */
LOCAL char txBfr [TX_BFR_SIZE]; /* Working buffer */
LOCAL UINT16 txBfrCount;	/* count of chars in working bfr */
LOCAL UINT16 txBfrIndex;	/* ptr to next char in bfr */

#endif

#ifdef	INCLUDE_USB_TARG

LOCAL BOOL targInit = FALSE;
LOCAL USB_TARG_CHANNEL targChannel = NULL;
LOCAL UINT16 numEndpoints = 0;
LOCAL pUSB_TARG_ENDPOINT_INFO pEndpoints = NULL;
LOCAL BOOL targEnable = FALSE;

#endif	/* #ifdef INCLUDE_USB_TARG */

#ifdef INCLUDE_USB
/*************************************************************************
*
* cmdUsbInit - Initialize USBD
*
* RETURNS:  RET_CONTINUE
*/

LOCAL UINT16 cmdUsbInit
    (
    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) */
    )
    {
    UINT16 usbdVersion;
    char usbdMfg [USBD_NAME_LEN+1];

    UINT16 s;


    /* if already initialized, just show a warning */

    if (initialized)
	{
	fprintf (fout, "Already initialized.\n");
	return RET_CONTINUE;
	}


    /* Initialize the USBD */

    s = usbdInitialize ();

    fprintf (fout, "usbdInitialize() returned %d\n", s);

    if (s == OK)
	{

	/* Register ourselves with the USBD */

	s = usbdClientRegister (PGM_NAME, &usbdClientHandle);

	fprintf (fout, "usbdClientRegister() returned %d\n", s);

	if (s == OK)
	    {	

	    fprintf (fout, "usbdClientHandle = 0x%x\n", (UINT32) usbdClientHandle);

	    /* Display the USBD version */

	    if ((s = usbdVersionGet (&usbdVersion, usbdMfg)) != OK)
		{
		fprintf (fout, "usbdVersionGet() returned %d\n", s);
		}
	    else
		{
		fprintf (fout, "USBD version = 0x%4.4x\n", usbdVersion);
		fprintf (fout, "USBD mfg = '%s'\n", usbdMfg);
		}

	    if (s == OK)
		initialized = TRUE;

	    }
	}
    
    if (s != OK) 
	{
	fprintf (fout, "initialization failed\n");
	}

    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdUsbDown - Shut down USBD
*
* RETURNS:  RET_CONTINUE
*/

LOCAL UINT16 cmdUsbDown
    (
    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) */
    )

    {
    UINT16 s;


    initialized = FALSE;
    uhciAttachToken = ohciAttachToken = sl811hAttachToken = NULL;


    /* Unregister our client */

    if (usbdClientHandle == NULL)
	{
	fprintf (fout, "usbdClientHandle == NULL.  not registered\n");
	}
    else
	{
	s = usbdClientUnregister (usbdClientHandle);
	usbdClientHandle = NULL;

	fprintf (fout, "usbdClientUnregister() returned %d\n", s);
	}


    /* shut down USBD */

    s = usbdShutdown ();

    fprintf (fout, "usbdShutdown() returned %d\n", s);


    return RET_CONTINUE;
    }


/*************************************************************************
*
* getHcdType - Determines type of HCD specified by caller
*
* RETURNS: N/A
*/

LOCAL VOID getHcdType
    (
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fout, 		/* stream for output (if any) */
    HCD_EXEC_FUNC *execFunc,	/* pointer to HCD exec func */
    GENERIC_HANDLE **ppHandle,	/* pointer to generic handle pointer */
    pUINT8 pPciClass,		/* pointer to pci class var */
    pUINT8 pPciSubclass,	/* pointer to pci subclass var */
    pUINT8 pPciPgmIf,		/* pointer to pci pgmif var */
    char **ppHcdName		/* pointer to name string var */
    )

    {
    char hcdName [32];


    /* Get HCD type */

    *ppCmd = GetNextToken (*ppCmd, hcdName, sizeof (hcdName));


    if (KeywordMatch (hcdName, "uhci", 4) == 0)
	{
#ifdef INCLUDE_UHCI
	*execFunc = usbHcdUhciExec;
	*ppHandle = &uhciAttachToken;
	*pPciClass = UHCI_CLASS;
	*pPciSubclass = UHCI_SUBCLASS;
	*pPciPgmIf = UHCI_PGMIF;
	*ppHcdName = "UHCI";
#else
        fprintf (fout, "UHCI Component Not Included.\n");
        *execFunc = NULL;
#endif
	}
    else if (KeywordMatch (hcdName, "ohci", 4) == 0)
	{
#ifdef INCLUDE_OHCI
	*execFunc = usbHcdOhciExec;
	*ppHandle = &ohciAttachToken;
	*pPciClass = OHCI_CLASS;
	*pPciSubclass = OHCI_SUBCLASS;
	*pPciPgmIf = OHCI_PGMIF;
	*ppHcdName = "OHCI";
#else
        fprintf (fout, "OHCI Component Not Included.\n");
        *execFunc = NULL;
#endif
	}
    else if (KeywordMatch (hcdName, "sl811h", 6) == 0)
	{
#ifdef INCLUDE_SL811H
	*execFunc = usbHcdSl811hExec;
	*ppHandle = &sl811hAttachToken;
	*pPciClass = 0;
	*pPciSubclass = 0;
	*pPciPgmIf = 0;
	*ppHcdName = "SL811H";
#else
        fprintf (fout, "SL811H Component Not Included.\n");
        *execFunc = NULL;
#endif
	}
    else
	{
	fprintf (fout, "Must specify HCD type as 'uhci' or 'ohci' or 'sl811h'.\n");
	*execFunc = NULL;
	}

    return;
    }


/*************************************************************************
*
* cmdAttach - Attaches HCD to USBD
*
* RETURNS:  RET_CONTINUE
*/

LOCAL UINT16 cmdAttach
    (
    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) */
    )

    {
    HCD_EXEC_FUNC execFunc;
    GENERIC_HANDLE *pToken;
    UINT8 pciClass;
    UINT8 pciSubclass;
    UINT8 pciPgmIf;
    char *hcdName;

#ifdef INCLUDE_USB_PCI
    UINT8 busNo;
    UINT8 deviceNo;
    UINT8 funcNo;
    PCI_CFG_HEADER pciCfgHdr;
#endif
    UINT16 s;
#ifdef INCLUDE_SL811H
    SL811_IO_CFG sl811IOCfg = {SL811H_IO_ADDR, SL811H_IO_ADDR_DATA, SL811H_INT_VEC, SL811H_INT_LVL};
#endif    
    

    getHcdType (ppCmd, fout, &execFunc, &pToken, &pciClass, &pciSubclass,
	&pciPgmIf, &hcdName);

    if (execFunc != NULL)
	{
	if (*pToken != NULL)
	    {
	    fprintf (fout, "%s already attached.\n", hcdName);
	    return RET_CONTINUE;
	    }

	if (strcmp(hcdName, "SL811H") == 0)
	  {
	    s = usbdHcdAttach (execFunc, &sl811IOCfg, pToken);
	  }
	else
	  {
#ifdef INCLUDE_USB_PCI
	    /* Find an instance of a USB host controller */

	    if (!usbPciClassFind (pciClass, pciSubclass, pciPgmIf, 0, 
				  &busNo, &deviceNo, &funcNo))
	      {
		fprintf (fout, "No %s host controller found.\n", hcdName);
		return RET_CONTINUE;
	      }
	    
	    usbPciConfigHeaderGet (busNo, deviceNo, funcNo, &pciCfgHdr);
	    
	    /* Attach the UHCI HCD to the USBD. */
	    
	    s = usbdHcdAttach (execFunc, &pciCfgHdr, pToken);
#else
            fprintf (fout, "Not implemented.\n");
            return RET_CONTINUE;
#endif
	  }
	
	fprintf (fout, "usbdHcdAttach() returned %d\n", s);

	if (s == OK)
	    {
	    fprintf (fout, "AttachToken = 0x%x\n", (UINT32) *pToken);
	    }
	}

    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdDetach - Detaches HCD from USBD
*
* RETURNS:  RET_CONTINUE
*/

LOCAL UINT16 cmdDetach
    (
    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) */
    )

    {
    HCD_EXEC_FUNC execFunc;
    GENERIC_HANDLE *pToken;
    UINT8 pciClass;
    UINT8 pciSubclass;
    UINT8 pciPgmIf;
    char *hcdName;
    UINT16 s;


    getHcdType (ppCmd, fout, &execFunc, &pToken, &pciClass, &pciSubclass,
	&pciPgmIf, &hcdName);

    if (execFunc != NULL)
	{
	/* Detach the HCD */

	if (*pToken == NULL)
	    {
	    fprintf (fout, "%s not attached.\n", hcdName);
	    }
	else
	    {
	    fprintf (fout, "Detaching %s HCD.\n", hcdName);

	    s = usbdHcdDetach (*pToken);
	    *pToken = NULL;

	    fprintf (fout, "usbdHcdDetach() returned %d\n", s);
	    }
	}


    return RET_CONTINUE;
    }


/***************************************************************************
*
* showUsbString - reads a string descriptor and displays it
*
* RETURNS: N/A
*/

LOCAL VOID showUsbString
    (
    USBD_CLIENT_HANDLE clientHandle,
    USBD_NODE_ID nodeId,
    FILE *fout,
    UINT8 stringId,
    UINT16 maxLen
    )

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91小宝寻花一区二区三区| 日本韩国精品一区二区在线观看| 国产精品乱子久久久久| 欧美日韩一级大片网址| 国产精品18久久久久久久久 | 精品999久久久| 91国偷自产一区二区开放时间| 美女脱光内衣内裤视频久久影院| 亚洲天堂免费看| 久久综合久久鬼色中文字| 欧美日韩国产另类一区| 不卡的电视剧免费网站有什么| 秋霞成人午夜伦在线观看| 一区二区三区中文字幕| 国产精品久久久久三级| 精品成人私密视频| 日韩欧美你懂的| 欧美日韩成人综合| 色婷婷综合在线| 成人精品小蝌蚪| 国产风韵犹存在线视精品| 五月激情综合网| 亚洲一区二区精品视频| 亚洲欧洲在线观看av| 欧美精品一区二| 日韩欧美成人午夜| 欧美一区二区三区四区久久| 欧美性大战久久| 色综合久久综合网| 色乱码一区二区三区88| va亚洲va日韩不卡在线观看| 国产成人免费视频| 国产成人免费视| 大陆成人av片| 国产凹凸在线观看一区二区| 韩国av一区二区| 国内成人免费视频| 韩国精品久久久| 国产一区91精品张津瑜| 精品一区二区三区免费| 国产尤物一区二区| 国产精品一区二区三区99 | 在线国产亚洲欧美| 91视频免费观看| 91小视频免费观看| 欧美系列日韩一区| 欧美久久久影院| 欧美一区二区三区在| 精品国产一二三区| 国产亚洲精久久久久久| 国产精品国产三级国产aⅴ无密码| 国产精品久久久久三级| 一区二区三区资源| 午夜精品久久久久久久| 免费一级片91| 国产.欧美.日韩| 成人动漫在线一区| 色综合久久中文综合久久牛| 欧美日韩国产综合视频在线观看| 欧美一级黄色录像| 久久久久久久久久久99999| 国产欧美日韩精品一区| 1区2区3区精品视频| 亚洲综合色噜噜狠狠| 日韩av网站在线观看| 国产高清亚洲一区| 91丨porny丨户外露出| 欧美日韩国产免费一区二区| 精品国产伦一区二区三区观看体验| 国产亚洲人成网站| 亚洲乱码精品一二三四区日韩在线| 亚洲电影一区二区| 精品一区二区三区视频| 91在线视频网址| 欧美妇女性影城| 亚洲国产成人一区二区三区| 亚洲精品成人天堂一二三| 日韩高清一级片| 国产91精品露脸国语对白| 在线视频国内一区二区| 欧美电影精品一区二区| 中文字幕亚洲区| 麻豆精品蜜桃视频网站| 91香蕉视频mp4| 日韩精品一区在线观看| 亚洲欧美自拍偷拍色图| 日本vs亚洲vs韩国一区三区二区| 国产寡妇亲子伦一区二区| 欧美日韩一区二区三区高清| 精品国产百合女同互慰| 一区二区三区不卡视频| 国产美女主播视频一区| 欧美日韩一区中文字幕| 国产日韩高清在线| 爽好久久久欧美精品| 成人国产精品免费网站| 日韩一区二区三区在线视频| 中文字幕视频一区二区三区久| 丝袜美腿亚洲一区| 91亚洲精品久久久蜜桃| 久久久欧美精品sm网站| 午夜视黄欧洲亚洲| 99精品视频一区| 久久综合色播五月| 午夜久久久久久久久| 91一区二区三区在线播放| 久久噜噜亚洲综合| 日韩av电影天堂| 欧美在线观看一区二区| 国产精品久久久久9999吃药| 国产中文字幕一区| 在线成人小视频| 亚洲国产日韩a在线播放| 99视频在线精品| 国产欧美日韩在线看| 麻豆成人91精品二区三区| 欧美最新大片在线看| 亚洲欧洲性图库| 国产69精品久久99不卡| 久久蜜桃av一区二区天堂| 久久草av在线| 56国语精品自产拍在线观看| 亚洲国产精品视频| 91行情网站电视在线观看高清版| 国产精品电影院| 成人一区二区三区视频 | 亚洲天堂av一区| 国产精品自在在线| 精品国产自在久精品国产| 久久99久久久久久久久久久| 91精品国产一区二区三区蜜臀| 亚洲资源在线观看| 欧美中文字幕一区| 亚洲一区二区三区小说| 欧美在线999| 亚洲成在人线免费| 欧美精品99久久久**| 免费高清在线一区| 日韩欧美国产1| 国内精品写真在线观看| 久久久蜜臀国产一区二区| 国产成人综合精品三级| 欧美国产欧美综合| caoporn国产一区二区| 中文字幕视频一区| 欧美亚洲自拍偷拍| 青青草精品视频| 2023国产一二三区日本精品2022| 国产一区欧美一区| 国产精品全国免费观看高清| 色综合天天天天做夜夜夜夜做| 亚洲午夜国产一区99re久久| 欧美精品在线视频| 久久不见久久见中文字幕免费| 久久免费看少妇高潮| 不卡av免费在线观看| 一区二区国产盗摄色噜噜| 正在播放亚洲一区| 国产一区二区不卡在线| 自拍偷在线精品自拍偷无码专区| 色系网站成人免费| 免费观看成人av| 国产精品美女久久福利网站| 在线观看成人免费视频| 男男gaygay亚洲| 日本一区二区久久| 欧美日韩激情一区| 国产高清不卡二三区| 一区二区三区产品免费精品久久75| 欧美一区二区视频在线观看2020 | 一区二区三区四区在线| 欧美久久久一区| 岛国av在线一区| 天天色天天操综合| 国产欧美日产一区| 欧美日韩国产大片| 国产成人精品三级| 亚洲成年人影院| 国产午夜精品一区二区三区四区 | 91精品1区2区| 青青草91视频| 亚洲日本乱码在线观看| 日韩美女主播在线视频一区二区三区| 国产成人av自拍| 丝袜美腿亚洲综合| 中文字幕不卡在线| 91精品一区二区三区久久久久久 | 老司机精品视频在线| 一区视频在线播放| 精品粉嫩aⅴ一区二区三区四区| 99re视频精品| 久久国产精品99久久人人澡| 亚洲精品成人少妇| 国产精品色噜噜| 日韩欧美色综合网站| 91成人免费网站| 成人app网站| 国产一区二区在线观看免费| 亚洲丶国产丶欧美一区二区三区| 国产精品美女久久久久久久久久久 |