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

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

?? usbdlib.c

?? vxworks嵌入式實(shí)時(shí)系統(tǒng)的 usb底層驅(qū)動(dòng)代碼
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
    /* Return result */    if (pPipeHandle != NULL)	*pPipeHandle = urb.pipeHandle;    return s;    }/***************************************************************************** usbdPipeDestroy - Destroys a USB data transfer pipe** This function destroys a pipe previous created by calling usbdPipeCreate().  * The caller must pass the <pipeHandle> originally returned by usbdPipeCreate().** If there are any outstanding transfer requests for the pipe, the USBD will * abort those transfers prior to destroying the pipe.  ** RETURNS: OK, or ERROR if unable to destroy pipe.*/STATUS usbdPipeDestroy    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_PIPE_HANDLE pipeHandle 	/* pipe handle */    )    {    URB_PIPE_DESTROY urb;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_PIPE_DESTROY, NULL, NULL,	sizeof (urb));    urb.pipeHandle = pipeHandle;    /* Execute URB */    return urbExecBlock (&urb.header);    }/***************************************************************************** usbdTransfer - Initiates a transfer on a USB pipe** A client uses this function to initiate an transfer on the pipe indicated * by <pipeHandle>.  The transfer is described by an IRP, or I/O request * packet, which must be allocated and initialized by the caller prior to * invoking usbdTransfer().** The USB_IRP structure is defined in usb.h as:** .CS* typedef struct usb_bfr_list*     {*     UINT16 pid;*     pUINT8 pBfr;*     UINT16 bfrLen;*     UINT16 actLen;*     } USB_BFR_LIST;** typedef struct usb_irp*     {*     LINK usbdLink;		    // used by USBD*     pVOID usbdPtr;		    // used by USBD*     LINK hcdLink;		    // used by HCD*     pVOID hcdPtr;		    // used by HCD*     pVOID userPtr;*     UINT16 irpLen;*     int result;		    // returned by USBD/HCD*     IRP_CALLBACK usbdCallback;    // used by USBD*     IRP_CALLBACK userCallback;*     UINT16 dataToggle;	    // filled in by USBD*     UINT16 flags; *     UINT32 timeout;		    // defaults to 5 seconds if zero*     UINT16 startFrame;*     UINT16 transferLen;*     UINT16 dataBlockSize;*     UINT16 bfrCount;*     USB_BFR_LIST bfrList [1];*     } USB_IRP, *pUSB_IRP;* .CE** The length of the USB_IRP structure must be stored in <irpLen> and varies * depending on the number of <bfrList> elements allocated at the end of the * structure.  By default, the default structure contains a single <bfrList>* element, but clients may allocate a longer structure to accommodate a larger * number of <bfrList> elements.  ** <flags> define additional transfer options.  The currently defined flags are:** .IP "USB_FLAG_SHORT_OK"* Treats receive (IN) data underrun as OK.* .IP "USB_FLAG_SHORT_FAIL"* Treats receive (IN) data underrun as error.* .IP "USB_FLAG_ISO_ASAP"* Start an isochronous transfer immediately.** When the USB is transferring data from a device to the host the data may * "underrun".  That is, the device may transmit less data than anticipated by * the host.  This may or may not indicate an error condition depending on the * design of the device.  For many devices, the underrun is completely normal * and indicates the end of data stream from the device.  For other devices, * the underrun indicates a transfer failure.  By default, the USBD and * underlying USB HCD (Host Controller Driver) treat underrun as the end-of-data * indicator and do not declare an error.  If the USB_FLAG_SHORT_FAIL flag is * set, then the USBD/HCD will instead treat underrun as an error condition.** For isochronous transfers the USB_FLAG_ISO_ASAP specifies that the * isochronous transfer should begin as soon as possible.  If USB_FLAG_ISO_ASAP* is not specified, then <startFrame> must specify the starting frame number * for the transfer.  The usbdCurrentFrameGet() function allows a client to* retrieve the current frame number and a value called the frame scheduling * window for the underlying USB host controller.  The frame window specifies * the maximum number of frames into the future (relative to the current frame * number) which may be specified by <startFrame>.  <startFrame> should be * specified only for isochronous transfers.** <dataBlockSize> may also be specified for isochronous transfers.  If non-0,* the <dataBlockSize> defines the granularity of isochronous data being sent.* When the underlying Host Controller Driver (HCD) breaks up the transfer into* individual frames, it will ensure that the amount of data transferred in * each frame is a multiple of this value.  ** <timeout> specifies the IRP timeout in milliseconds.	If the caller passes* a value of zero, then the USBD sets a default timeout of USB_TIMEOUT_DEFAULT.* If no timeout is desired, then <timeout> should be set to USB_TIMEOUT_NONE.* Timeouts apply only to control and bulk transfers.  Isochronous and* interrupt transfers do not time out.** <bfrList> is an array of buffer descriptors which describe data buffers to * be associated with this IRP.	If more than the one <bfrList> element is * required then the caller must allocate the IRP by calculating the size as ** .CS* irpLen = sizeof (USB_IRP) + (sizeof (USB_BFR_DESCR) * (bfrCount - 1))* .CE** <transferLen> must be the total length of data to be transferred.  In other * words, transferLen is the sum of all <bfrLen> entries in the <bfrList>.** <pid> specifies the packet type to use for the indicated buffer and is* specified as USB_PID_xxxx.** The IRP <userCallback> routine must point to a client-supplied IRP_CALLBACK* routine.  The usbdTransfer() function returns as soon as the IRP has been* successfully enqueued.  If there is a failure in delivering the IRP to the* HCD, then usbdTransfer() returns an error.  The actual result of the IRP* should be checked after the <userCallback> routine has been invoked.** RETURNS: OK, or ERROR if unable to submit IRP for transfer.*/STATUS usbdTransfer    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_PIPE_HANDLE pipeHandle,	/* Pipe handle */    pUSB_IRP pIrp			/* ptr to I/O request packet */    )    {    URB_TRANSFER urb;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_TRANSFER, NULL, NULL,	sizeof (urb));    urb.pipeHandle = pipeHandle;    urb.pIrp = pIrp;    /* Execute URB */    return urbExecBlock (&urb.header);    }/***************************************************************************** usbdTransferAbort - Aborts a transfer** This function aborts an IRP which was previously submitted through* a call to usbdTransfer().  ** RETURNS: OK, or ERROR if unable to abort transfer.*/STATUS usbdTransferAbort    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_PIPE_HANDLE pipeHandle,	    /* Pipe handle */    pUSB_IRP pIrp			/* ptr to I/O to abort */    )    {    URB_TRANSFER urb;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_TRANSFER_ABORT, NULL, NULL,	sizeof (urb));    urb.pipeHandle = pipeHandle;    urb.pIrp = pIrp;    /* Execute URB */    return urbExecBlock (&urb.header);    }/***************************************************************************** usbdSynchFrameGet - Returns a device's isochronous synch. frame** It is sometimes necessary for clients to re-synchronize with devices when * the two are exchanging data isochronously.  This function allows a client* to query a reference frame number maintained by the device.  Please refer * to the USB Specification for more detail.** <nodeId> specifies the node to query and <endpoint> specifies the endpoint * on that device.  Upon return the device抯 frame number for the specified * endpoint is returned in <pFrameNo>.** RETURNS: OK, or ERROR if unable to retrieve synch. frame.*/STATUS usbdSynchFrameGet    (    USBD_CLIENT_HANDLE clientHandle,	/* Client Handle */    USBD_NODE_ID nodeId,		/* Node Id of device/hub */    UINT16 endpoint,			/* Endpoint to be queried */    pUINT16 pFrameNo			/* Frame number returned by device */    )    {    URB_SYNCH_FRAME_GET urb;    STATUS s;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_SYNCH_FRAME_GET, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    urb.endpoint = endpoint;    /* Execute URB */    s = urbExecBlock (&urb.header);    /* Return result */    if (pFrameNo != NULL)	*pFrameNo = urb.frameNo;    return s;    }/***************************************************************************** usbdCurrentFrameGet - Returns the current frame number for a USB** It is sometimes necessary for clients to retrieve the current USB frame * number for a specified host controller.  This function allows a client to * retrieve the current USB frame number for the host controller to which* <nodeId> is connected.  Upon return, the current frame number is stored * in <pFrameNo>.** If <pFrameWindow> is not NULL, the USBD will also return the maximum frame * scheduling window for the indicated USB host controller.  The frame * scheduling window is essentially the number of unique frame numbers * tracked by the USB host controller.  Most USB host controllers maintain an * internal frame count which is a 10- or 11-bit number, allowing them to * track typically 1024 or 2048 unique frames.  When starting an isochronous * transfer, a client may wish to specify that the transfer will begin in a * specific USB frame.  For the given USB host controller, the starting frame * number can be no more than <frameWindow> frames from the current <frameNo>.** Note: The USBD is capable of simultaneously managing multiple USB host * controllers, each of which operates independently.  Therefore, it is * important that the client specify the correct <nodeId> when retrieving the * current frame number.  Typically, a client will be interested in the * current frame number for the host controller to which a specific device is * attached.** RETURNS: OK, or ERROR if unable to retrieve current frame number.*/STATUS usbdCurrentFrameGet    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId,		/* Node Id of node on desired USB */    pUINT32 pFrameNo,			/* bfr to receive current frame no. */    pUINT32 pFrameWindow		/* bfr to receive frame window */    )    {    URB_CURRENT_FRAME_GET urb;    STATUS s;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_CURRENT_FRAME_GET, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    /* Execute URB */    s = urbExecBlock (&urb.header);    /* Return result */    if (pFrameNo != NULL)	*pFrameNo = urb.frameNo;    if (pFrameWindow != NULL)	*pFrameWindow = urb.frameWindow;    return s;    }/***************************************************************************** usbdSofMasterTake - Takes SOF master ownership** A client which is performing isochronous transfers may need to adjust* the USB frame time by a small amount in order to synchronize correctly* with one or more devices.  In order to adjust the USB frame interval,* a client must first attempt to become the "SOF Master" for bus to which* a device is attached.** <nodeId> specifies the id of a node on the bus for which the client* wishes to become the SOF master.  Each USB managed by the USBD may have* a different SOF master.** RETURNS: OK, or ERROR if client cannot become SOF master*/STATUS usbdSofMasterTake    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId 		/* Node Id of node on desired USB */    )        {    URB_SOF_MASTER urb;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_SOF_MASTER_TAKE, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    /* Execute URB */    return urbExecBlock (&urb.header);    }/***************************************************************************** usbdSofMasterRelease - Releases ownership of SOF master** A client which has previously become the SOF master for a given USB* may release SOF master status by calling this function.  <nodeId> should* identify a node on the USB for which SOF master ownership should be * released.** RETURNS: OK, or ERROR if SOF ownership cannot be released*/STATUS usbdSofMasterRelease    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId 		/* Node Id of node on desired USB */    )        {    URB_SOF_MASTER urb;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_SOF_MASTER_RELEASE, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    /* Execute URB */    return urbExecBlock (&urb.header);    }/***************************************************************************** usbdSofIntervalGet - Retrieves current SOF interval for a bus** This function retrieves the current SOF interval for the bus to which* <nodeId> is connected.  The SOF interval returned in <pSofInterval> is* expressed in high speed bit times in a frame, with 12,000 being the * typical default value.** NOTE: A client does not need to be the current SOF master in order to* retrieve the SOF interval for a bus.** RETURNS: OK, or ERROR if SOF interval cannot be retrieved.*/STATUS usbdSofIntervalGet    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId,		/* Node Id of node on desired USB */    pUINT16

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产精品v| 亚洲精品国产精华液| av电影在线观看完整版一区二区| 亚洲精品免费在线观看| 欧美一个色资源| 色婷婷综合久久久久中文一区二区| 日本va欧美va瓶| 亚洲欧洲成人自拍| 久久久亚洲精品一区二区三区| 欧美色国产精品| 99国产麻豆精品| 国产一区二区三区蝌蚪| 视频在线观看91| 亚洲在线视频网站| 亚洲视频一区二区在线| 欧美精品一区二区高清在线观看| 在线观看一区不卡| 91在线观看一区二区| 国产白丝网站精品污在线入口| 日本成人在线网站| 亚洲国产一区二区a毛片| 国产精品伦理在线| 国产亚洲欧美一级| 亚洲精品一区二区在线观看| 欧美日韩国产a| 欧美午夜片在线看| 日本道色综合久久| 91麻豆免费看片| 成人黄色大片在线观看| 国产99久久久国产精品免费看| 免费高清不卡av| 全部av―极品视觉盛宴亚洲| 亚洲va国产va欧美va观看| 一区二区三区中文字幕电影 | 青青草国产精品亚洲专区无| 亚洲国产中文字幕在线视频综合| 亚洲你懂的在线视频| 国产精品久久99| 中文字幕一区二区三区乱码在线| 国产婷婷精品av在线| 亚洲国产精品二十页| 国产精品午夜在线观看| 国产精品理论在线观看| 国产精品三级电影| 1024成人网| 亚洲精品美腿丝袜| 亚洲一区二区在线免费观看视频| 伊人夜夜躁av伊人久久| 亚洲精品亚洲人成人网在线播放| 亚洲精品欧美综合四区| 亚洲国产精品一区二区久久恐怖片| 亚洲一区在线免费观看| 日韩精品欧美精品| 久久精品国产亚洲高清剧情介绍| 精品一区二区三区免费毛片爱 | 亚洲妇熟xx妇色黄| 日本欧美一区二区三区乱码 | 日本不卡不码高清免费观看| 天堂资源在线中文精品| 日本一区中文字幕| 国内精品久久久久影院色| 国产99久久久久久免费看农村| 欧美喷潮久久久xxxxx| 欧美一区二区三区四区久久| 日韩欧美高清一区| 国产精品私人自拍| 一区二区三区国产精华| 青青青爽久久午夜综合久久午夜 | 蜜臀av在线播放一区二区三区| 麻豆精品一区二区三区| 国产精一区二区三区| fc2成人免费人成在线观看播放| 91久久精品国产91性色tv| 欧美日韩精品系列| 欧美va亚洲va香蕉在线| 中文字幕精品一区二区三区精品| 亚洲色图都市小说| 蜜桃视频第一区免费观看| 懂色av一区二区三区免费观看| 在线观看免费成人| 精品日韩成人av| 亚洲精品国产品国语在线app| 男男gaygay亚洲| 91色porny在线视频| 欧美不卡一区二区三区四区| 国产精品久久久久久久浪潮网站 | 国产亚洲精品超碰| 亚洲综合色自拍一区| 黄色资源网久久资源365| 99精品国产视频| 欧美成人vps| 亚洲综合色噜噜狠狠| 国产在线观看一区二区| 欧美在线不卡视频| 欧美激情资源网| 久久精品国产77777蜜臀| 91黄色在线观看| 亚洲mv在线观看| 顶级嫩模精品视频在线看| 欧美高清视频不卡网| 国产精品女人毛片| 美女视频免费一区| 欧美日韩色一区| 国产精品久久久久天堂| 经典三级视频一区| 欧美日韩国产色站一区二区三区| 国产精品久久久久久久午夜片| 久久成人免费网| 欧美美女黄视频| 亚洲色图清纯唯美| 国产1区2区3区精品美女| 欧美不卡在线视频| 青娱乐精品视频| 欧美日韩免费一区二区三区| 亚洲欧美福利一区二区| 国产麻豆9l精品三级站| 91精品免费在线观看| 亚洲午夜免费视频| 色94色欧美sute亚洲线路一久| 久久久久久亚洲综合| 日本亚洲电影天堂| 欧美日韩电影在线| 亚洲成人自拍偷拍| 99精品欧美一区二区三区综合在线| 久久这里只有精品首页| 激情综合色综合久久综合| 欧美一区二区三区四区视频| 亚欧色一区w666天堂| 色婷婷久久久久swag精品| 亚洲欧洲在线观看av| 成人性生交大片| 国产精品日日摸夜夜摸av| 国产91精品一区二区麻豆网站| www一区二区| 国产一区二区中文字幕| 久久综合九色综合97_久久久| 九一久久久久久| 久久综合色8888| 国产美女av一区二区三区| 日本一区二区三区在线不卡| 国产一区日韩二区欧美三区| 精品入口麻豆88视频| 国产一区二区三区久久久| 国产亚洲福利社区一区| 丁香天五香天堂综合| 专区另类欧美日韩| 欧美视频第二页| 调教+趴+乳夹+国产+精品| 日韩免费高清视频| 久久99精品国产.久久久久久| 久久综合精品国产一区二区三区| 国产福利一区二区三区视频| 中文字幕欧美激情一区| 99精品视频在线观看免费| 一区二区高清免费观看影视大全 | 亚洲欧洲日韩女同| 91在线高清观看| 午夜免费欧美电影| 欧美tk—视频vk| 成人网在线播放| 亚洲制服丝袜av| 精品日韩在线观看| 97se亚洲国产综合自在线观| 一区二区三区毛片| 日韩欧美卡一卡二| 成人h动漫精品| 亚洲成人资源在线| 久久婷婷久久一区二区三区| eeuss鲁片一区二区三区在线观看| 国产精品麻豆久久久| 欧美老女人第四色| 国产成人在线网站| 亚洲一区二区欧美| 精品黑人一区二区三区久久| av爱爱亚洲一区| 欧美aaaaaa午夜精品| 国产精品美女久久久久久久久| 欧美性猛交xxxxxxxx| 激情综合色播五月| 一区二区三区四区视频精品免费 | 日韩激情视频网站| 国产亚洲欧美日韩在线一区| 在线观看欧美黄色| 国产精品羞羞答答xxdd| 亚洲动漫第一页| 国产日韩欧美综合在线| 欧美在线视频你懂得| 国产在线视频不卡二| 亚洲一区二区在线免费观看视频| 久久精品视频免费观看| 欧美吞精做爰啪啪高潮| 丁香网亚洲国际| 美女脱光内衣内裤视频久久影院| 自拍视频在线观看一区二区| 日韩欧美高清在线| 欧美亚男人的天堂| 成人动漫在线一区| 狠狠色2019综合网| 日韩有码一区二区三区| 一区二区三区四区高清精品免费观看|