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

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

?? usrusbtool.c

?? sl811hs_vxworks_host_driver_v1_0_13 sl811的主驅動
?? C
?? 第 1 頁 / 共 5 頁
字號:
    {
    UINT8 bfr [USB_MAX_DESCR_LEN];
    pUSB_STRING_DESCR pString = (pUSB_STRING_DESCR) bfr;
    UINT16 actLen;
    UINT16 i;
    char c;
    UINT16 languageId=0;
    UINT16 id;
    int    lang_len;
    int    lang_count;
    UINT8 *lang_ptr;

    /* Read device descriptor to get string Ids for mfg/model */

    /* Find out about language id */
    if (usbdDescriptorGet (clientHandle, nodeId,
	USB_RT_STANDARD | USB_RT_DEVICE, USB_DESCR_STRING, 0, 0,
	sizeof (bfr), (pUINT8) &bfr, &actLen) != OK)
	{
	fprintf (fout, "<<can't read string>>");
	return;
	}

    lang_len   = pString->length - sizeof(pString->length) - sizeof(pString->descriptorType);
    lang_count = lang_len/sizeof(languageId);
    lang_ptr   = pString->string;

    for ( i=0; i<lang_len && lang_ptr ; i++,lang_ptr+=2 )
    {
      if ( lang_ptr[0]==0x09 && lang_ptr[1]==0x04 )
      {
        /* Select US English if it's available */
        languageId = (lang_ptr[1]<<8) | lang_ptr[0];
        break;
      } /* end of if () */
    } /* end of for () */

    if ( languageId==0 && lang_len>0 && pString->string )
    {
      /* Try any first choice */
      languageId = (pString->string[1]<<8) | pString->string[0];
    } /* end of if () */

    if (usbdDescriptorGet (clientHandle, nodeId,
	USB_RT_STANDARD | USB_RT_DEVICE, USB_DESCR_STRING, stringId, languageId,
	sizeof (bfr), (pUINT8) &bfr, &actLen) != OK)
	{
	fprintf (fout, "<<can't read string>>");
	return;
	}

    for (i = 0; i + 2 < actLen && i < maxLen * 2; i += 2)
	{
	c = pString->string [i];
	fprintf (fout, "%c", (isprint ((int) c)) ? c : '_');
	}

    if (i + 2 < actLen)
	fprintf (fout, "...");
    }


/***************************************************************************
*
* showMfgModel - Display mfg/model strings for a USB device
*
* RETURNS: N/A
*/

LOCAL VOID showMfgModel
    (
    USBD_CLIENT_HANDLE clientHandle,
    USBD_NODE_ID nodeId,
    FILE *fout
    )

    {
    USB_DEVICE_DESCR devDescr;
    UINT16 actLen;

    /* Read device descriptor to get string Ids for mfg/model */

    if (usbdDescriptorGet (clientHandle, nodeId,
	USB_RT_STANDARD | USB_RT_DEVICE, USB_DESCR_DEVICE, 0, 0,
	sizeof (devDescr), (pUINT8) &devDescr, &actLen) != OK ||
	actLen < sizeof (devDescr))
	return;

    if (devDescr.manufacturerIndex != 0 || devDescr.productIndex != 0)
	fprintf (fout, " = ");

    if (devDescr.manufacturerIndex != 0)
	{
	showUsbString (clientHandle, nodeId, fout, devDescr.manufacturerIndex,
	    MAX_MFG_STR_LEN);
	fprintf (fout, "/");
	}

    if (devDescr.productIndex != 0)
	{
	showUsbString (clientHandle, nodeId, fout, devDescr.productIndex,
	    MAX_PROD_STR_LEN);
	}
    }


/***************************************************************************
*
* HubEnumerate - Enumerate all ports on the specified hub
* 
* This routine enumerates all devices from the specified HubId down.
* <clientHandle> must be a valid USBD_CLIENT_HANDLE.  <hubId> specifies
* the Node Id of the first USB hub to be enumerated.
*
* RETURNS: OK, or ERROR if USBD returns an error.
*/

LOCAL UINT16 HubEnumerate
    (
    USBD_CLIENT_HANDLE clientHandle,	/* Caller抯 USBD client handle */
    USBD_NODE_ID hubId, 		/* Node Id for hub to enumerate */
    FILE *fout,
    UINT16 indent
    )

    {
    UINT16 portCount;			/* Number of ports on this hub */
    UINT16 portIndex;			/* current port index */
    UINT16 nodeType;			/* type of node being enumerated */
    USBD_NODE_ID nodeId;		/* id of node being enumerated */
    UINT16 s;

    /* Retrieve the number of ports for this hub. */

    fprintf (fout, "%*shub 0x%x", indent, "", (UINT32) hubId);
    showMfgModel (clientHandle, hubId, fout);
    fprintf (fout, "\n");

    if ((s = usbdHubPortCountGet (clientHandle, hubId, &portCount)) 
	!= OK)
	{
	fprintf (fout, "usbdHubPortCountGet() returned %d\n", s);
	return ERROR;
	}

    fprintf (fout, "%*sport count = %d\n", indent+INDENT, "", portCount);

    /* See if a device is attached to each of the hub抯 ports. */

    for (portIndex = 0; portIndex < portCount; portIndex++) 
	{
	if ((s = usbdNodeIdGet (clientHandle, hubId, portIndex, &nodeType, 
	    &nodeId)) != OK)
	    {
	    fprintf (fout, "%*susbdNodeIdGet() returned %d\n", indent+INDENT, "", 
		s);
	    return ERROR;
	    }

	switch (nodeType)
	    {
	    case USB_NODETYPE_NONE:	/* No device attached. */

		fprintf (fout, "%*sport %d not connected\n", indent+INDENT, "", 
		    portIndex);
		break;

	    case USB_NODETYPE_HUB:	/* Another hub found. */

		fprintf (fout, "%*sport %d is hub 0x%x\n", indent+INDENT, "",
		    portIndex, (UINT32) nodeId);

		if (HubEnumerate (clientHandle, nodeId, fout, indent+INDENT) 
		    != OK)
		    return ERROR;

		break;

	    case USB_NODETYPE_DEVICE:	/* Device attached to port. */

		fprintf (fout, "%*sport %d is device 0x%x", indent+INDENT, "",
		    portIndex, (UINT32) nodeId);

		showMfgModel (clientHandle, nodeId, fout);
		fprintf (fout, "\n");

		break;

	    default:			/* Unknown node type code */

		fprintf (fout, "%*snode type not recognized for node 0x%x\n",
		    indent+INDENT, "", (UINT32) nodeId);
		break;
	    }
	}

    return OK;
    }


/***************************************************************************
*
* USBEnumerate - Enumerate all USB host controllers in the system.
* 
* This routine enumerates all USB host controllers, hubs, and devices
* currently connected to the system.  The caller must register with the
* USBD prior to calling this function and supply its USBD_CLIENT_HANDLE
* in <clientHandle>.
*
* RETURNS: OK, or ERROR if USBD returns an error.
*/

LOCAL UINT16 USBEnumerate
    (
    USBD_CLIENT_HANDLE clientHandle,	/* Caller抯 USBD client handle */
    FILE *fout
    )

    {
    UINT16 busCount;			/* Number of USB host controllers */
    UINT16 busIndex;			/* current bus index */
    USBD_NODE_ID rootId;		/* Root hub id for current bus */
    UINT16 s;


    /* Retrieve the number of USB host controllers in the system. */

    if ((s = usbdBusCountGet (clientHandle, &busCount)) != OK)
	{
	fprintf (fout, "usbdBusCountGet() returned %d\n", s);
	return ERROR;
	}

    fprintf (fout, "bus count = %d\n", busCount);

    /* Retrieve the root hub id for each host controller and enumerate it. */

    for (busIndex = 0; busIndex < busCount; busIndex++) 
	{
	if ((s = usbdRootNodeIdGet (clientHandle, busIndex, &rootId))
	    != OK)
	    {
	    fprintf (fout, "usbdRootNodeIdGet() returned %d\n", s);
	    return ERROR;
	    }

	fprintf (fout, "enumerating bus %d\n", busIndex);
	
	if (HubEnumerate (clientHandle, rootId, fout, INDENT) != OK)
	    return ERROR;
	}

    return OK;
    }


/*************************************************************************
*
* cmdUsbEnum - Enumerate USBs attached to system
*
* RETURNS:  RET_CONTINUE;
*/

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

    {
    USBEnumerate (usbdClientHandle, fout);

    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdUsbStats - Show bus statistics
*
* RETURNS:  RET_CONTINUE;
*/

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

    {
    long nodeId;
    USBD_STATS stats;
    UINT16 s;

    /* Extract parameters. */

    *ppCmd = GetHexToken (*ppCmd, &nodeId, -1);


    /* Validate parameters */

    if (nodeId == -1)
	{
	fprintf (fout, "Must specify a node id.\n");
	return RET_CONTINUE;
	}


    /* Execute function. */

    if ((s = usbdStatisticsGet (usbdClientHandle, (GENERIC_HANDLE) nodeId, &stats, sizeof (stats)))
	!= OK)
	fprintf (fout, "usbdStatisticsGet() returned %d\n", s);
    else
	{
	fprintf (fout, "totalTransfersIn    = %ld\n", (long) stats.totalTransfersIn);
	fprintf (fout, "totalTransfersout   = %ld\n", (long) stats.totalTransfersOut);
	fprintf (fout, "totalReceiveErrors  = %ld\n", (long) stats.totalReceiveErrors);
	fprintf (fout, "totalTransmitErrors = %ld\n", (long) stats.totalTransmitErrors);
	}

    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdGetConfig - get current configuration value for a device
*
* RETURNS:  RET_CONTINUE;
*/

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

    {
    long nodeId;
    UINT16 configuration;
    UINT16 s;

    /* Extract parameters. */

    *ppCmd = GetHexToken (*ppCmd, &nodeId, -1);


    /* Validate parameters */

    if (nodeId == -1)
	{
	fprintf (fout, "Must specify a node id.\n");
	return RET_CONTINUE;
	}


    /* Execute function. */

    if ((s = usbdConfigurationGet (usbdClientHandle, (GENERIC_HANDLE) nodeId, &configuration))
	!= OK)
	fprintf (fout, "usbdConfigurationGet() returned %d\n", s);
    else
	fprintf (fout, "current configuration = 0x%x\n", configuration);


    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdSetConfig - set current configuration value for a device
*
* RETURNS:  RET_CONTINUE;
*/

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

    {
    long nodeId;
    long configuration;
    UINT16 s;

    /* Extract parameters. */

    *ppCmd = GetHexToken (*ppCmd, &nodeId, -1);
    *ppCmd = GetHexToken (*ppCmd, &configuration, -1);


    /* Validate parameters */

    if (nodeId == -1 || configuration == -1)
	{
	fprintf (fout, "Must specify a node id and configuration value.\n");
	return RET_CONTINUE;
	}


    /* Execute function. */

    s = usbdConfigurationSet (usbdClientHandle, (GENERIC_HANDLE) nodeId, (UINT16) configuration, 0);
    fprintf (fout, "usbdConfigurationSet() returned %d\n", s);

    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdGetInterface - get alt. setting for an interface
*
* RETURNS:  RET_CONTINUE;
*/

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

    {
    long nodeId;
    long index;
    UINT16 altSetting;
    UINT16 s;

    /* Extract parameters. */

    *ppCmd = GetHexToken (*ppCmd, &nodeId, -1);
    *ppCmd = GetHexToken (*ppCmd, &index, -1);


    /* Validate parameters */

    if (nodeId == -1 || index == -1)
	{
	fprintf (fout, "Must specify a node id and interface number.\n");
	return RET_CONTINUE;
	}


    /* Execute function. */

    if ((s = usbdInterfaceGet (usbdClientHandle, (GENERIC_HANDLE) nodeId, index, &altSetting))
	!= OK)
	fprintf (fout, "usbdInterfaceGet() returned %d\n", s);
    else
	fprintf (fout, "alternate setting = 0x%x\n", altSetting);


    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdSetInterface - set alt. setting for an interface
*
* RETURNS:  RET_CONTINUE;
*/

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

    {
    long nodeId;
    long index;
    long altSetting;
    UINT16 s;

    /* Extract parameters. */

    *ppCmd = GetHexToken (*ppCmd, &nodeId, -1);
    *ppCmd = GetHexToken (*ppCmd, &index, -1);
    *ppCmd = GetHexToken (*ppCmd, &altSetting, -1);


    /* Validate parameters */

    if (nodeId == -1 || index == -1 || altSetting == -1)
	{
	fprintf (fout, "Must specify a node id, interface number, and alt. setting.\n");
	return RET_CONTINUE;
	}


    /* Execute function. */

    s = usbdInterfaceSet (usbdClientHandle, (GENERIC_HANDLE) nodeId, index, altSetting);
    fprintf (fout, "usbdInterfaceSet() returned %d\n", s);

    return RET_CONTINUE;
    }
#endif	/* INCLUDE_USB from way above*/


/*************************************************************************
*
* displayMem - dumps memory to display
*
* RETURNS:  N/A
*/

LOCAL VOID displayMem
    (
    UINT16 bfrLen,
    pUINT8 pBfr,
    FILE *fout
    )

    {
    int i,j;

    for (i = 0; i < bfrLen; i += 16)
	{
	for (j = i; j < bfrLen && j < i+16; j++)
	    {
	    fprintf (fout, "%2.2x ", pBfr [j]);
	    if (j % 16 == 7)
		fprintf (fout, " ");
	    }
	fprintf (fout, " ");
	for (j = i; j < bfrLen && j < i+16; j++)
	    {
	    fprintf (fout, "%c", (pBfr [j] >= 32 && pBfr [j] <= 127) ? 
		pBfr [j] : '.');
	    }
	fprintf (fout, "\n");
	}
    }

#ifdef INCLUDE_USB

/*************************************************************************
*
* cmdGetStatus - get status for a device/interface/endpoint
*
* RETURNS:  RET_CONTINUE;
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米影视一区二区三区小说| 成人免费观看男女羞羞视频| 国产一区二区三区高清播放| 91色九色蝌蚪| 精品国内二区三区| 亚洲国产日韩精品| 成人午夜精品在线| 久久亚洲精品国产精品紫薇| 婷婷丁香久久五月婷婷| 91麻豆国产福利精品| 国产欧美一区二区在线| 亚洲午夜精品一区二区三区他趣| 激情另类小说区图片区视频区| 欧美美女视频在线观看| 亚洲嫩草精品久久| 成人高清视频在线| 国产亚洲精品福利| 国产在线麻豆精品观看| 欧美一卡二卡三卡| 午夜精品久久一牛影视| 日本电影亚洲天堂一区| 日韩一区在线播放| 成人av在线影院| 国产日产精品1区| 韩日欧美一区二区三区| 日韩一区二区免费在线观看| 水野朝阳av一区二区三区| 欧美综合亚洲图片综合区| 亚洲欧美激情小说另类| 91网站在线播放| 亚洲欧美一区二区三区孕妇| 色综合久久综合网| 亚洲激情六月丁香| 欧美午夜电影在线播放| 亚洲国产精品人人做人人爽| 欧美丝袜第三区| 亚洲高清免费视频| 在线播放亚洲一区| 久久国产精品色| 久久久久久久久久久电影| 韩国女主播成人在线观看| 久久综合久久鬼色| 岛国精品在线观看| 最新久久zyz资源站| 色吊一区二区三区| 亚洲韩国一区二区三区| 欧美精品日韩一本| 精品在线观看免费| 久久精品人人爽人人爽| av激情成人网| 亚洲图片欧美视频| 精品国产乱码久久久久久久 | 色香色香欲天天天影视综合网| 亚洲日穴在线视频| 欧美区视频在线观看| 韩国一区二区视频| 国产精品女同互慰在线看| 在线观看国产一区二区| 免费看日韩精品| 国产精品激情偷乱一区二区∴| 一本久久精品一区二区| 日本大胆欧美人术艺术动态| 国产欧美一区二区三区在线老狼| 91国偷自产一区二区开放时间 | 图片区小说区国产精品视频| 精品美女一区二区| 91玉足脚交白嫩脚丫在线播放| 亚洲一区二区三区精品在线| 欧美一区二区三区爱爱| 成人午夜免费视频| 奇米影视7777精品一区二区| 国产精品美女久久久久久久网站| 欧美午夜片在线看| 高清免费成人av| 性感美女久久精品| 国产精品免费久久久久| 91精品国产欧美一区二区成人| 成人午夜在线播放| 久久精品国产秦先生| 亚洲三级在线观看| 久久久久高清精品| 欧美一区二区三区免费视频| aaa国产一区| 另类的小说在线视频另类成人小视频在线 | 日韩成人免费电影| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 韩国在线一区二区| 亚洲激情自拍偷拍| 亚洲国产高清在线观看视频| 欧美一区二区在线观看| 91尤物视频在线观看| 国产美女在线精品| 日本女优在线视频一区二区| 亚洲人午夜精品天堂一二香蕉| 久久日韩粉嫩一区二区三区| 欧美久久久久久久久| 91麻豆精品视频| 国产成人一区在线| 国产一区久久久| 日本成人在线网站| 亚洲一区影音先锋| 亚洲女女做受ⅹxx高潮| 中文字幕一区二区三中文字幕| 2023国产精华国产精品| 日韩精品中文字幕在线不卡尤物 | 欧洲国产伦久久久久久久| 成人免费毛片片v| 国产精选一区二区三区| 日本欧美肥老太交大片| 日韩精品成人一区二区在线| 亚洲国产精品久久不卡毛片| 亚洲精品国产一区二区三区四区在线| 国产午夜三级一区二区三| 欧美va亚洲va| 精品国产在天天线2019| 日韩午夜在线影院| 日韩你懂的在线播放| 日韩欧美www| 久久综合久久综合九色| 久久精品免视看| 日本一区二区三区四区| 一区二区视频在线看| 中文字幕一区二区三区色视频| 亚洲国产精华液网站w| 成人欧美一区二区三区1314| 亚洲三级小视频| 亚洲午夜日本在线观看| 日韩电影在线看| 久久综合综合久久综合| 国产精品一区二区视频| 成人免费av在线| 在线观看网站黄不卡| 欧美乱妇一区二区三区不卡视频| 欧美精品 日韩| 久久免费视频一区| 中文字幕一区二区三区av| 亚洲综合在线观看视频| 日韩高清欧美激情| 国产一区二区在线电影| 99久久精品一区| 欧美性大战久久久久久久| 欧美一区二区三区在线观看| 精品国产3级a| 亚洲免费在线视频一区 二区| 五月婷婷综合激情| 国内偷窥港台综合视频在线播放| 99久久综合精品| 欧美一区二区性放荡片| 国产欧美日韩一区二区三区在线观看| 夜夜亚洲天天久久| 久草热8精品视频在线观看| 99久久国产综合精品女不卡| 欧美夫妻性生活| 国产精品久久久久久久岛一牛影视| 亚洲综合色噜噜狠狠| 国产一区视频网站| 欧美午夜精品久久久久久孕妇| 精品少妇一区二区三区视频免付费 | 国产日韩欧美精品一区| 一区二区三区中文在线| 国产精品白丝av| 在线成人小视频| 亚洲视频电影在线| 九九视频精品免费| 欧洲一区在线观看| 欧美国产97人人爽人人喊| 午夜电影久久久| 91网页版在线| 国产精品系列在线| 久久精品国产精品亚洲综合| 色噜噜狠狠色综合中国| 国产亚洲欧洲997久久综合| 日韩在线一区二区三区| 色综合天天性综合| 久久久国产精品麻豆| 调教+趴+乳夹+国产+精品| 99re66热这里只有精品3直播 | 一区二区激情视频| 福利一区二区在线| 欧美一区二区视频观看视频| 亚洲免费观看高清完整版在线观看 | 国产精品天美传媒| 精品一区二区三区免费观看| 欧美丰满一区二区免费视频| 亚洲天堂福利av| 成人精品视频一区二区三区尤物| 日韩欧美卡一卡二| 五月婷婷激情综合| 精品污污网站免费看| 亚洲欧美日韩在线不卡| 97久久超碰国产精品电影| 国产欧美精品区一区二区三区 | 欧美激情中文字幕一区二区| 久久99精品视频| 欧美sm美女调教| 国产在线观看免费一区| 精品电影一区二区| 国产乱国产乱300精品| 久久人人超碰精品| 国产精品一级片在线观看|