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

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

?? usblib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* usbLib.c - USB utility functions *//* Copyright 2000-2002 Wind River Systems, Inc. *//*Modification history--------------------01l,09nov01,wef  Test for NULL on OSS_xALLOC calls, change sizeof () to 		 structure size macros01k,25oct01,wef  repalce automatic buffer creations with calls to OSS_MALLOC                 in places where the buffer is passed to the hardware (related                 to SPR 70492).01j,18sep01,wef  merge from wrs.tor2_0.usb1_1-f for veloce01e,25jul01,jgn  fixed spr 6928701d,26jan00,rcb  Modify usbRecurringTime() to accept <bandwidth> instead		 of <bytesPerFrame>.		 Add usbDescrCopy32() and usbDescrStrCopy32().01c,17jan00,rcb  Add usbConfigDescrGet() function.01b,23nov99,rcb  Add usbRecurringTime() function.01a,16jul99,rcb  First.*//*DESCRIPTIONThis modules contains miscellaneous functions which may be used by theUSB driver (USBD), USB HCD (USB Host Controller Driver), or by USBD clients.*//* includes */#include "usb/usbPlatform.h"#include "string.h"#include "usb/usbdLib.h"#include "usb/usbLib.h"/* defines *//* USB time constants. * * NOTE: The following constants use units of picoseconds for improved * calculation resolution.  The calcTdTime() function - below - rounds * the final calculated to the next higher nanosecond, and returns the * calculated value in terms of nanoseconds. */#define TIME_OVRHD_INPUT_NON_ISOCH  ((UINT32) 9107000L)#define TIME_OVRHD_INPUT_ISOCH	    ((UINT32) 7268000L)#define TIME_OVRHD_OUTPUT_NON_ISOCH ((UINT32) 9107000L)#define TIME_OVRHD_OUTPUT_ISOCH     ((UINT32) 6265000L)#define TIME_OVRHD_INPUT_LS	    ((UINT32) 64060000L)#define TIME_OVRHD_OUTPUT_LS	    ((UINT32) 64107000L)#define TIME_BIT		    ((UINT32) 83540L)#define TIME_BIT_LS_INPUT	    ((UINT32) 676670L)#define TIME_BIT_LS_OUTPUT	    ((UINT32) 667000L)/* BIT_STUFF calculates the worst case number of bits for the indicated * number of bytes.  (The "19" in the following equation is equal to * 3.167*6.  Since 19 is added to the bit total which is then divided by * 6, this has the effect of ading 3.167 bit times to the total. */#define BIT_STUFF(bytes)    ((UINT32) ((((UINT32) bytes) * 8 * 7 + 19) / 6))/* functions *//***************************************************************************** usbTransferTime - Calculates bus time required for a USB transfer** This function calculates the amount of time a transfer of a given number* of bytes will require on the bus - measured in nanoseconds (10E-9 seconds).  * The formulas used here are taken from Section 5.9.3 of Revision 1.1 of the * USB spec.** <transferType>, <direction>, and <speed> should describe the characteristics* of the pipe/transfer as USB_XFRTYPE_xxxx, USB_DIR_xxxx, and USB_SPEED_xxxx,* repsectively.  <bytes> is the size of the packet for which the transfer time * should be calculated. <hostDelay> and <hostHubLsSetup> are the host delay and * low-speed hub setup times in nanoseconds, respectively, and are host-controller * specific.** RETURNS: Worst case number of nanoseconds required for transfer*/UINT32 usbTransferTime    (    UINT16 transferType,	/* transfer type */    UINT16 direction,		/* transfer direction */    UINT16 speed,		/* speed of pipe */    UINT32 bytes,		/* number of bytes for packet to be calc'd */    UINT32 hostDelay,		/* host controller delay per packet */    UINT32 hostHubLsSetup	/* host controller time for low-speed setup */    )    {    UINT32 bits = BIT_STUFF (bytes);    UINT32 ps;    if (speed == USB_SPEED_FULL)	{	if (direction == USB_DIR_IN)	    {	    if (transferType == USB_XFRTYPE_ISOCH)		{		ps = TIME_OVRHD_INPUT_ISOCH + TIME_BIT * bits;		}	    else		{		ps = TIME_OVRHD_INPUT_NON_ISOCH + TIME_BIT * bits;		}	    }	else	    {	    if (transferType == USB_XFRTYPE_ISOCH)		{		ps = TIME_OVRHD_OUTPUT_ISOCH + TIME_BIT * bits;		}	    else		{		ps = TIME_OVRHD_OUTPUT_NON_ISOCH + TIME_BIT * bits;		}	    }	}    else	{	if (direction == USB_DIR_IN)	    {	    ps = TIME_OVRHD_INPUT_LS + 2 * hostHubLsSetup * 1000L + 		TIME_BIT_LS_INPUT * bits;	    }	else	    {	    ps = TIME_OVRHD_OUTPUT_LS + 2 * hostHubLsSetup * 1000L +		TIME_BIT_LS_OUTPUT * bits;	    }	}    ps += hostDelay * 1000L;    return (ps + 999L) / 1000L;     /* returns value in nanoseconds */    }/***************************************************************************** usbRecurringTime - calculates recurring time for interrupt/isoch transfers** For recurring transfers (e.g., interrupt or isochronous transfers) an HCD* needs to be able to calculate the amount of bus time - measured in * nanoseconds - which will be used by the transfer.** <transferType> specifies the type of transfer.  For USB_XFRTYPE_CONTROL and* USB_XFRTYPE_BULK, the calculated time is always 0...these are not recurring* transfers.  For USB_XFRTYPE_INTERRUPT, <bandwidth> must express the number* of bytes to be transferred in each frame.  For USB_XFRTYPE_ISOCH, <bandwidth>* must express the number of bytes to be transferred in each second.  The* parameter is treated differently to allow greater flexibility in determining* the true bandwidth requirements for each type of pipe.** RETURNS: worst case number of nanoseconds required for transfer.*/UINT32 usbRecurringTime    (    UINT16 transferType,	/* transfer type */    UINT16 direction,		/* transfer direction */    UINT16 speed,		/* speed of pipe */    UINT16 packetSize,		/* max packet size for endpoint */    UINT32 bandwidth,		/* bytes/frame or bytes/sec depending on pipe */    UINT32 hostDelay,		/* host controller delay per packet */    UINT32 hostHubLsSetup	/* host controller time for low-speed setup */    )    {    UINT16 packets;    UINT32 nanosecondsPerPacket;    UINT16 remainderBytes;    UINT32 remainderNanoseconds;    UINT32 bytesPerFrame;    /* Non-recurring transfers always return 0. */    if (transferType == USB_XFRTYPE_CONTROL || transferType == USB_XFRTYPE_BULK)	return 0;    /* Calculate time for recurring transfer */    if (transferType == USB_XFRTYPE_INTERRUPT)	bytesPerFrame = bandwidth;    else /* transferType == USB_XFRTYPE_ISOCH */	bytesPerFrame = (bandwidth + 999L) / 1000L;    packets = bytesPerFrame / packetSize;    remainderBytes = bytesPerFrame % packetSize;    nanosecondsPerPacket = usbTransferTime (transferType, direction,	speed, packetSize, hostDelay, hostHubLsSetup);    if (remainderBytes > 0)	remainderNanoseconds = usbTransferTime (transferType, direction, 	    speed, remainderBytes, hostDelay, hostHubLsSetup);    else	remainderNanoseconds = 0;    return packets * nanosecondsPerPacket + remainderNanoseconds;    }/***************************************************************************** usbDescrParseSkip - search for a descriptor and increment buffer** Searches <ppBfr> up to <pBfrLen> bytes for a descriptor of type matching* <descriptorType>.  Returns a pointer to the descriptor if found.  <ppBfr> * and <pBfrLen> are updated to reflect the next location in the buffer and * the remaining size of the buffer, respectively.** RETURNS: pointer to indicated descriptor, or NULL if descr not found.*/pVOID usbDescrParseSkip    (    pUINT8 *ppBfr,		/* buffer to parse */    pUINT16 pBfrLen,		/* length of buffer to parse */    UINT8 descriptorType	/* type of descriptor being sought */    )    {    pUSB_DESCR_HDR pHdr;    /* The remaining buffer length must be at least two bytes to accommodate     * the descriptor length and descriptorType fields.  If not, we're done.      */    while (*pBfrLen >= sizeof (pHdr->length) + sizeof (pHdr->descriptorType))	{	pHdr = (pUSB_DESCR_HDR) *ppBfr;	if (pHdr->length == 0)	    return NULL;	/* must be invalid */	*ppBfr += min (pHdr->length, *pBfrLen);	*pBfrLen -= min (pHdr->length, *pBfrLen);	if (pHdr->descriptorType == descriptorType)	    return (pVOID) pHdr;	}    return NULL;    }    /***************************************************************************** usbDescrParse - search a buffer for the a particular USB descriptor

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久| 91成人在线免费观看| 一区二区三区高清| 精品88久久久久88久久久| 色噜噜狠狠色综合欧洲selulu| 久久疯狂做爰流白浆xx| 亚洲精品高清视频在线观看| 久久亚洲精精品中文字幕早川悠里| 91精品福利视频| 成人福利视频网站| 久久国产精品色| 香蕉久久夜色精品国产使用方法 | 日韩一级免费观看| 波多野洁衣一区| 极品美女销魂一区二区三区| 午夜精品久久一牛影视| 国产精品盗摄一区二区三区| 精品国产91乱码一区二区三区| 欧美丝袜自拍制服另类| 97se亚洲国产综合自在线观| 国产一区二区主播在线| 男人的天堂久久精品| 爽好多水快深点欧美视频| 亚洲精品日产精品乱码不卡| 欧美激情综合在线| 国产午夜精品一区二区| 精品不卡在线视频| 日韩欧美一二三| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲猫色日本管| 亚洲国产精品v| 中文字幕精品在线不卡| 久久久av毛片精品| 久久久无码精品亚洲日韩按摩| 日韩欧美国产wwwww| 欧美一级片在线| 欧美精品一卡两卡| 欧美丝袜丝交足nylons图片| 色屁屁一区二区| 色婷婷综合在线| 欧美午夜精品一区二区蜜桃| 在线观看91视频| 欧美精品一二三区| 日韩一区国产二区欧美三区| 欧美一区二区三区的| 日韩欧美专区在线| 精品国免费一区二区三区| 精品国产免费视频| 久久久不卡网国产精品二区| 国产精品热久久久久夜色精品三区 | 337p粉嫩大胆噜噜噜噜噜91av| 日韩电影在线观看电影| 蓝色福利精品导航| 精品一区二区三区不卡| 国产福利精品导航| 波多野结衣视频一区| 欧美在线免费观看视频| 欧美精品丝袜久久久中文字幕| 67194成人在线观看| 日韩欧美一区中文| 国产日本亚洲高清| 亚洲三级电影网站| 午夜精品久久久久久| 日韩高清在线电影| 国产精品一线二线三线| 色综合天天在线| 91精品国产色综合久久不卡蜜臀| 精品国产免费视频| 一区二区中文视频| 天堂成人免费av电影一区| 久草在线在线精品观看| kk眼镜猥琐国模调教系列一区二区 | 国产精品久久久久影院亚瑟| 一区二区三区加勒比av| 九九九久久久精品| 99精品一区二区三区| 在线播放视频一区| 久久久影院官网| 亚洲国产精品嫩草影院| 国产一区二区精品久久99| 色哟哟国产精品| 日韩精品一区二区三区在线| 国产精品国产三级国产a| 水野朝阳av一区二区三区| 国产高清成人在线| 欧美男人的天堂一二区| 国产三级一区二区| 亚洲成av人片在www色猫咪| 国产一区二区在线观看免费| 91成人在线免费观看| 欧美高清在线视频| 蜜桃视频在线观看一区二区| 91亚洲精华国产精华精华液| 日韩视频免费观看高清完整版在线观看 | 色综合咪咪久久| 久久综合久久99| 香蕉成人啪国产精品视频综合网 | 日日夜夜一区二区| 成人av网站在线观看| 欧美一级二级三级蜜桃| 亚洲综合一区二区精品导航| 国产ts人妖一区二区| 日韩一区二区在线观看视频| 亚洲精品自拍动漫在线| 国产99一区视频免费| 欧美成人r级一区二区三区| 亚洲综合色网站| 亚洲视频免费看| 国产精品白丝jk黑袜喷水| 51久久夜色精品国产麻豆| 亚洲人妖av一区二区| 国产精品亚洲第一区在线暖暖韩国| 欧美日韩日本视频| 亚洲欧美另类在线| 成人激情免费视频| 亚洲国产高清aⅴ视频| 久久er99精品| 日韩欧美国产系列| 日韩国产在线一| 欧美丝袜丝nylons| 一区二区三区av电影| 91在线观看污| 成人欧美一区二区三区黑人麻豆 | 亚洲成人免费视| 91视频免费看| 国产精品久久久久久久久免费相片| 国产剧情一区在线| 精品国产一二三区| 精品一区二区三区久久| 精品国产百合女同互慰| 美腿丝袜在线亚洲一区| 56国语精品自产拍在线观看| 日韩福利视频网| 88在线观看91蜜桃国自产| 五月天欧美精品| 欧美高清hd18日本| 日韩国产高清在线| 日韩三级在线免费观看| 久久99精品网久久| 久久亚区不卡日本| 国产精品1区2区| 中文幕一区二区三区久久蜜桃| 国产成人免费av在线| 日本一区二区三级电影在线观看 | 三级亚洲高清视频| 日韩丝袜情趣美女图片| 国产在线一区二区| 国产欧美一区二区三区在线看蜜臀 | 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲一区二区欧美日韩| 欧美日韩一区二区欧美激情| 午夜免费久久看| 日韩欧美亚洲国产另类| 亚洲激情av在线| 在线不卡a资源高清| 久久成人av少妇免费| 国产丝袜美腿一区二区三区| 97精品久久久久中文字幕| 亚洲午夜一区二区| 欧美一级高清片在线观看| 国产mv日韩mv欧美| 一区2区3区在线看| 日韩手机在线导航| 不卡的av网站| 欧美午夜精品一区二区三区| 麻豆传媒一区二区三区| 国产日韩欧美不卡在线| 欧美最新大片在线看| 免费在线看一区| 亚洲欧洲精品一区二区三区不卡| 欧美亚洲愉拍一区二区| 麻豆91在线播放免费| 国产精品动漫网站| 欧美精品久久99| 成人黄动漫网站免费app| 香蕉成人伊视频在线观看| 国产无一区二区| 欧美日韩小视频| 国产成人精品免费看| 亚洲国产精品一区二区尤物区| 欧美精品一区二| 欧美三区在线观看| 国产精品亚洲一区二区三区妖精| 亚洲永久精品大片| 国产午夜三级一区二区三| 欧美精品久久天天躁| 北条麻妃一区二区三区| 免费人成精品欧美精品| 中文字幕佐山爱一区二区免费| 91精品国产综合久久福利软件 | 99麻豆久久久国产精品免费| 五月综合激情婷婷六月色窝| 中日韩免费视频中文字幕| 日韩一区二区三区精品视频| 99久久久久久| 精品一区二区三区日韩| 午夜影院久久久| 亚洲欧洲日韩在线| 久久精品亚洲精品国产欧美kt∨ | 色综合中文字幕国产 |