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

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

?? usrusbtool.c

?? SL811 USB接口芯片用于VxWorks系統的驅動源代碼
?? 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
    )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区亚洲一区| 日韩不卡一区二区三区| 国产精品一区二区三区乱码| 欧美精品一区二区三区蜜桃视频 | 欧美电影在线免费观看| 日韩精品欧美精品| 精品久久人人做人人爱| 国产高清一区日本| ...中文天堂在线一区| 99久久婷婷国产综合精品电影| 亚洲欧美在线观看| 午夜精品123| 欧美成人r级一区二区三区| 裸体健美xxxx欧美裸体表演| 欧美丰满美乳xxx高潮www| 免费av成人在线| 久久日一线二线三线suv| 国产99精品国产| 亚洲天堂2014| 欧美猛男gaygay网站| 久久激情五月激情| 色综合视频在线观看| 午夜电影网亚洲视频| 亚洲精品在线一区二区| 成人国产精品免费网站| 亚洲成av人影院在线观看网| 欧美一区二区三区婷婷月色 | 天堂影院一区二区| 日韩免费电影网站| 99免费精品在线观看| 日韩久久免费av| 9i在线看片成人免费| 日韩极品在线观看| 久久久美女毛片| 欧美日韩一区视频| 国产一区视频网站| 亚洲午夜久久久| 国产亚洲精品精华液| 欧美色精品在线视频| 高清在线观看日韩| 26uuu亚洲婷婷狠狠天堂| 99久久久无码国产精品| 日本欧美加勒比视频| 一区在线播放视频| 精品三级在线看| 欧美性做爰猛烈叫床潮| 国产剧情在线观看一区二区| 亚洲第一主播视频| 国产精品久久久久久久第一福利 | 日日夜夜精品视频免费| 中文一区二区在线观看| 欧美一二三四区在线| 色综合久久精品| 国产一区不卡在线| 午夜精品福利在线| 日韩理论电影院| 国产欧美日本一区视频| 日韩欧美在线不卡| 欧美日韩国产高清一区二区三区 | 91福利精品第一导航| 国产高清久久久久| 久久99精品国产麻豆婷婷 | 久久精品无码一区二区三区| 欧美色综合天天久久综合精品| 国产一区二区精品久久91| 午夜欧美大尺度福利影院在线看| 亚洲蜜臀av乱码久久精品| 中文字幕免费在线观看视频一区| 欧美成人高清电影在线| 日韩视频在线一区二区| 欧美精品久久99| 在线视频你懂得一区| 成人午夜激情影院| 国产91精品久久久久久久网曝门| 久久影视一区二区| 精品剧情v国产在线观看在线| 7777精品伊人久久久大香线蕉最新版| 91小宝寻花一区二区三区| 亚洲精品美国一| 一区二区三区小说| 亚洲欧洲一区二区三区| 中文字幕亚洲欧美在线不卡| 国产精品美女www爽爽爽| 欧美激情综合五月色丁香小说| 国产亚洲综合在线| 国产精品沙发午睡系列990531| 国产欧美久久久精品影院| 欧美国产日韩精品免费观看| 色狠狠桃花综合| 欧美性大战久久| 欧美日韩aaaaa| 日韩精品一区二区在线| 亚洲精品一线二线三线| 久久久久久**毛片大全| 欧美极品aⅴ影院| 最新中文字幕一区二区三区| 中文字幕av资源一区| 一区二区三区四区视频精品免费| 一区二区三区日本| 午夜精品在线视频一区| 久久免费看少妇高潮| 亚洲国产精华液网站w| 综合在线观看色| 丝袜脚交一区二区| 久久99精品国产.久久久久| 国产精品一区二区三区四区| 99re在线视频这里只有精品| 欧美性大战久久久| xfplay精品久久| 亚洲天堂精品在线观看| 五月婷婷激情综合网| 国产一区亚洲一区| 一本高清dvd不卡在线观看| 欧美日韩一区三区四区| 久久久久成人黄色影片| 亚洲天堂中文字幕| 久久成人久久鬼色| 91亚洲男人天堂| 日韩欧美色综合| 亚洲欧洲日韩一区二区三区| 亚洲国产成人精品视频| 精品综合免费视频观看| www.日本不卡| 欧美一激情一区二区三区| 久久久蜜臀国产一区二区| 一片黄亚洲嫩模| 久久99精品久久只有精品| 91免费看`日韩一区二区| 91精品久久久久久蜜臀| 中文字幕 久热精品 视频在线| 性做久久久久久免费观看| 国产成人a级片| 欧美一级日韩免费不卡| 亚洲六月丁香色婷婷综合久久 | 精彩视频一区二区三区| 一道本成人在线| 久久久久久亚洲综合影院红桃| 一区二区视频在线| 国产aⅴ精品一区二区三区色成熟| 欧美日韩在线一区二区| 国产精品免费人成网站| 久久精品国产一区二区三 | 精品久久久影院| 亚洲国产欧美日韩另类综合| 成人在线综合网| 欧美一区二区精美| 亚洲精品菠萝久久久久久久| 国产盗摄女厕一区二区三区| 8x8x8国产精品| 亚洲精品午夜久久久| 国产精品久久三| 国产老女人精品毛片久久| 欧美一区二区观看视频| 亚洲国产日韩精品| 色婷婷国产精品| 欧美日韩在线亚洲一区蜜芽| 国产精品女上位| 国产高清久久久久| 久久先锋影音av| 久久电影网站中文字幕| 日韩视频在线你懂得| 日本欧美一区二区三区乱码| 欧美人动与zoxxxx乱| 亚洲综合免费观看高清完整版在线| 国产91丝袜在线18| 国产三级一区二区| 国产精品一区久久久久| 久久久久国色av免费看影院| 国产精品一区免费在线观看| 日本一区二区视频在线观看| 国产专区欧美精品| 精品国产乱码久久久久久牛牛| 日韩精品色哟哟| 日韩一区二区三区av| 麻豆91精品视频| 精品国产一区二区三区四区四 | 一区二区三区不卡在线观看| 91亚洲精品久久久蜜桃| 亚洲一级二级三级| 欧美日韩激情一区二区| 五月激情综合婷婷| 日韩女同互慰一区二区| 韩国av一区二区| 中文字幕免费不卡| 99国产精品99久久久久久| 亚洲一区二区三区国产| 欧美日韩精品电影| 久久66热re国产| 国产欧美精品一区| 91片黄在线观看| 午夜精品久久久久久久99水蜜桃| 日韩欧美中文一区二区| 国产精品一卡二卡在线观看| 国产精品日韩成人| 91黄色免费网站| 麻豆久久久久久久| 国产午夜精品福利| 成人国产精品免费网站| 一区二区三区色| 欧美成人一区二区三区|