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

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

?? usbdlib.c

?? vxworks嵌入式實時系統的 usb底層驅動代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
    urb.nodeId = nodeId;    urb.requestType = requestType;    urb.descriptorType = descriptorType;    urb.descriptorIndex = descriptorIndex;    urb.languageId = languageId;    urb.bfrLen = bfrLen;    urb.pBfr = pBfr;    /* Execute URB */    return urbExecBlock (&urb.header);    }/***************************************************************************** usbdInterfaceGet - Retrieves a device's current interface** This function allows a client to query the current alternate setting for * a given device抯 interface.  <nodeId> and <interfaceIndex> specify the * device and interface to be queried, respectively.  <pAlternateSetting> * points to a UINT16 variable in which the alternate setting will be stored * upon return.** RETURNS: OK, or ERROR if unable to get interface.*/STATUS usbdInterfaceGet    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId,		/* Node Id of device/hub */    UINT16 interfaceIndex,		/* Index of interface */    pUINT16 pAlternateSetting		/* Current alternate setting */    )    {    URB_INTERFACE_GET_SET urb;    STATUS s;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_INTERFACE_GET, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    urb.interfaceIndex = interfaceIndex;    /* Execute URB */    s = urbExecBlock (&urb.header);    /* Return result */    if (pAlternateSetting != NULL)	*pAlternateSetting = urb.alternateSetting;    return s;    }/***************************************************************************** usbdInterfaceSet - Sets a device's current interface** This function allows a client to select an alternate setting for a given * device抯 interface.  <nodeId> and <interfaceIndex> specify the device and * interface to be modified, respectively.  <alternateSetting> specifies the * new alternate setting.** RETURNS: OK, or ERROR if unable to set interface.*/STATUS usbdInterfaceSet    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId,		/* Node Id of device/hub */    UINT16 interfaceIndex,		/* Index of interface */    UINT16 alternateSetting		/* Alternate setting */    )    {    URB_INTERFACE_GET_SET urb;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_INTERFACE_SET, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    urb.interfaceIndex = interfaceIndex;    urb.alternateSetting = alternateSetting;    /* Execute URB */    return urbExecBlock (&urb.header);    }/***************************************************************************** usbdStatusGet - Retrieves USB status from a device/interface/etc.** This function retrieves the current status from the device indicated* by <nodeId>.	<requestType> indicates the nature of the desired status* as documented for the usbdFeatureClear() function.** The status word is returned in <pBfr>.  The meaning of the status  * varies depending on whether it was queried from the device, an interface, * or an endpoint, class-specific function, etc. as described in the USB * Specification.** RETURNS: OK, or ERROR if unable to get status.*/STATUS usbdStatusGet    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId,		/* Node Id of device/hub */    UINT16 requestType, 		/* Selects device/interface/endpoint */    UINT16 index,			/* Interface/endpoint index */    UINT16 bfrLen,			/* length of bfr */    pUINT8 pBfr,			/* bfr to receive status */    pUINT16 pActLen			/* bfr to receive act len xfr'd */    )    {    URB_STATUS_GET urb;    STATUS s;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_STATUS_GET, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    urb.requestType = requestType;    urb.index = index;    urb.bfrLen = bfrLen;    urb.pBfr = pBfr;    /* Execute URB */    s = urbExecBlock (&urb.header);    /* Return result */    if (pActLen != NULL)	*pActLen = urb.actLen;    return s;    }/***************************************************************************** usbdAddressGet - Gets the USB address for a given device** This function returns the USB address assigned to device specified by * <nodeId>.  USB addresses are assigned by the USBD, so there is generally * no need for clients to query the USB device address.	Furthermore, this * function has no counterpart in the USB functions described in Chapter 9 * of the USB Specification.** The USBD assigns device addresses such that they are unique within the * scope of each USB host controller.  However, it is possible that two or * more devices attached to different USB host controllers may have identical * addresses.** RETURNS: OK, or ERROR if unable to set address.*/STATUS usbdAddressGet    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId,		/* Node Id of device/hub */    pUINT16 pDeviceAddress		/* Currently assigned device address */    )    {    URB_ADDRESS_GET_SET urb;    STATUS s;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_ADDRESS_GET, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    /* Execute URB */    s = urbExecBlock (&urb.header);    /* Return result */    if (pDeviceAddress != NULL)	*pDeviceAddress = urb.deviceAddress;    return s;    }/***************************************************************************** usbdAddressSet - Sets the USB address for a given device** This function sets the USB address at which a device will respond to future * requests.  Upon return, the address of the device identified by <nodeId> * will be changed to the value specified in <deviceAddress>.  <deviceAddress> * must be in the range from 0..127.  The <deviceAddress> must also be unique * within the scope of each USB host controller.** The USBD manages USB device addresses automatically, and this function * should never be called by normal USBD clients.  Changing a device address * may cause serious problems, including device address conflicts, and may * cause the USB to cease operation.** RETURNS: OK, or ERROR if unable to get current device address.*/STATUS usbdAddressSet    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId,		/* Node Id of device/hub */    UINT16 deviceAddress		/* New device address */    )    {    URB_ADDRESS_GET_SET urb;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_ADDRESS_SET, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    urb.deviceAddress = deviceAddress;    /* Execute URB */    return urbExecBlock (&urb.header);    }/***************************************************************************** usbdVendorSpecific - Allows clients to issue vendor-specific USB requests** Certain devices may implement vendor-specific USB requests which cannot * be generated using the standard functions described elsewhere.  This * function allows a client to specify directly the exact parameters for a * USB control pipe request.** <requestType>, <request>, <value>, <index>, and <length> correspond * exactly to the bmRequestType, bRequest, wValue, wIndex, and wLength fields * defined by the USB Specfication.  If <length> is greater than zero, then * <pBfr> must be a non-NULL pointer to a data buffer which will provide or * accept data, depending on the direction of the transfer. ** Vendor specific requests issued through this function are always directed * to the control pipe of the device specified by <nodeId>.  This function* formats and sends a Setup packet based on the parameters provided.  If a * non-NULL <pBfr> is also provided, then additional IN or OUT transfers* will be performed following the Setup packet.  The direction of these* transfers is inferred from the direction bit in the <requestType> param.* For IN transfers, the actual length of the data transferred will be* stored in <pActLen> if <pActLen> is not NULL.** RETURNS: OK, or ERROR if unable to execute vendor-specific request.*/STATUS usbdVendorSpecific    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId,		/* Node Id of device/hub */    UINT8 requestType,			/* bmRequestType in USB spec. */    UINT8 request,			/* bRequest in USB spec. */    UINT16 value,			/* wValue in USB spec. */    UINT16 index,			/* wIndex in USB spec. */    UINT16 length,			/* wLength in USB spec. */    pUINT8 pBfr,			/* ptr to data buffer */    pUINT16 pActLen			/* actual length of IN */    )    {    URB_VENDOR_SPECIFIC urb;    STATUS s;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_VENDOR_SPECIFIC, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    urb.requestType = requestType;    urb.request = request;    urb.value = value;    urb.index = index;    urb.length = length;    urb.pBfr = pBfr;    /* Execute URB */    s = urbExecBlock (&urb.header);    /* return results */    if (pActLen != NULL)	*pActLen = urb.actLen;    return s;    }/***************************************************************************** usbdPipeCreate - Creates a USB pipe for subsequent transfers** This function establishes a pipe which can subsequently be used by a * client to exchange data with a USB device endpoint.  ** <nodeId> and <endpoint> identify the device and device endpoint, * respectively, to which the pipe should be "connected."  <configuration>* and <interface> specify the configuration and interface, respectively,* with which the pipe is associated.  (The USBD uses this information to* keep track of "configuration events" associated with the pipe).** <transferType> specifies the type of data transfers for which this pipe * will be used:** .IP "USB_XFRTYPE_CONTROL"* Control transfer pipe (message).* .IP "USB_XFRTYPE_ISOCH"* Isochronous transfer pipe (stream).* .IP "USB_XFRTYPE_INTERRUPT"* Interrupt transfer pipe (stream).* .IP "USB_XFRTYPE_BULK"* Bulk transfer pipe (stream).** <direction> specifies the direction of the pipe as:** .IP "USB_DIR_IN"* Data moves from device to host.* .IP "USB_DIR_OUT"* Data moves from host to device.* .IP "USB_DIR_INOUT"* Data moves bidirectionally (message pipes only).** If the <direction> is specified as USB_DIR_INOUT, the USBD assumes that * both the IN and OUT endpoints identified by endpoint will be used by * this pipe (see the discussion of message pipes in Chapter 5 of the USB * Specification).  USB_DIR_INOUT may be specified only for Control pipes.** <maxPayload> specifies the largest data payload supported by this endpoint.  * Normally a USB device will declare the maximum payload size it supports on * each endpoint in its configuration descriptors.  The client will typically * read these descriptors using the USBD Configuration Functions and then * parse the descriptors to retrieve the appropriate maximum payload value.* * <bandwidth> specifies the bandwidth required for this pipe.  For control* and bulk pipes, this parameter should be 0.  For interrupt pipes, this* parameter should express the number of bytes per frame to be transferred.* for isochronous pipes, this parameter should express the number of bytes* per second to be transferred.** <serviceInterval> specifies the maximum latency for the pipe in * milliseconds.  So, if a pipe needs to be serviced, for example, at least * every 20 milliseconds, then the <serviceInterval> value should be 20.  The * <serviceInterval> parameter is required only for interrupt pipes.  For * other types of pipes, <serviceInterval> should be 0.** If the USBD succeeds in creating the pipe it returns a pipe handle in * <pPipeHandle>.  The client must use the pipe handle to identify the pipe * in subsequent calls to the USBD Transfer Functions.  If there is * insufficient bus bandwidth available to create the pipe (as might happen * for an isochronous or interrupt pipe), then the USBD will return an error * and a NULL handle in <pPipeHandle>.** RETURNS: OK, or ERROR if pipe could not be create*/STATUS usbdPipeCreate    (    USBD_CLIENT_HANDLE clientHandle,	/* Client handle */    USBD_NODE_ID nodeId,		/* Node Id of device/hub */    UINT16 endpoint,			/* Endpoint number */    UINT16 configuration,		/* config w/which pipe associated */    UINT16 interface,			/* interface w/which pipe associated */    UINT16 transferType,		/* Type of transfer: control, bulk... */    UINT16 direction,			/* Specifies IN or OUT endpoint */    UINT16 maxPayload,			/* Maximum data payload per packet */    UINT32 bandwidth,			/* Bandwidth required for pipe */    UINT16 serviceInterval,		/* Required service interval */    pUSBD_PIPE_HANDLE pPipeHandle	/* pipe handle returned by USBD */    )    {    URB_PIPE_CREATE urb;    STATUS s;    /* Initalize URB */    urbInit (&urb.header, clientHandle, USBD_FNC_PIPE_CREATE, NULL, NULL,	sizeof (urb));    urb.nodeId = nodeId;    urb.endpoint = endpoint;    urb.configuration = configuration;    urb.interface = interface;    urb.transferType = transferType;    urb.direction = direction;    urb.maxPayload = maxPayload;    urb.bandwidth = bandwidth;    urb.serviceInterval = serviceInterval;    /* Execute URB */    s = urbExecBlock (&urb.header);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区视频| 一区二区三区毛片| 91麻豆精品国产91久久久久久| 波多野结衣亚洲一区| 国产精品自产自拍| 国产精品18久久久久久久网站| 理论电影国产精品| 久久精品国产久精国产| 麻豆视频一区二区| 国产剧情av麻豆香蕉精品| 国产成人午夜高潮毛片| 大美女一区二区三区| 99久久伊人网影院| 色综合视频在线观看| 在线免费av一区| 777xxx欧美| 欧美精品一区二区三区四区| 久久亚洲一区二区三区四区| 国产日韩欧美电影| 亚洲激情校园春色| 蜜桃精品视频在线| 国产黑丝在线一区二区三区| jlzzjlzz国产精品久久| 在线日韩一区二区| 亚洲精品在线一区二区| 亚洲青青青在线视频| 日韩不卡一二三区| 东方欧美亚洲色图在线| 欧美亚洲国产bt| 久久久久久亚洲综合影院红桃| 中文字幕一区二区三区不卡| 午夜精品视频一区| 国产宾馆实践打屁股91| 欧美少妇一区二区| 国产精品丝袜久久久久久app| 一区二区三区日韩在线观看| 日本sm残虐另类| av在线播放成人| 日韩一区二区三| 国产精品久久久久毛片软件| 偷拍自拍另类欧美| 99久久精品国产麻豆演员表| 91精品国产手机| 自拍偷拍亚洲欧美日韩| 国产一区二区三区免费看 | 青青草精品视频| 成人免费高清视频在线观看| 欧美精品乱码久久久久久 | 欧日韩精品视频| 久久尤物电影视频在线观看| 亚洲福中文字幕伊人影院| 国产成人av一区二区三区在线观看| 欧美精品v日韩精品v韩国精品v| 国产精品视频一二三区| 久久99国产精品久久| 欧美三级日韩三级| 一区二区三区电影在线播| 成人开心网精品视频| 久久女同精品一区二区| 久久精品国产99久久6| 欧美日本韩国一区二区三区视频 | 91精品国产全国免费观看| 亚洲人成伊人成综合网小说| 国产一区二区三区四区五区美女| 91精品国产麻豆国产自产在线 | 国产日韩精品一区| 久久99精品国产91久久来源| 欧美一区二区三区四区久久| 亚洲一二三四在线观看| 在线影视一区二区三区| 中文字幕色av一区二区三区| 成人毛片老司机大片| 国产亚洲福利社区一区| 国产一区在线观看麻豆| 国产丝袜欧美中文另类| 成人免费三级在线| 国产精品嫩草久久久久| 成年人国产精品| 亚洲视频每日更新| 91视频.com| 一区二区三区精品在线观看| 色中色一区二区| 亚洲国产欧美另类丝袜| 欧美视频中文字幕| 日韩国产欧美在线视频| 欧美成人官网二区| 国产不卡免费视频| 亚洲美女偷拍久久| 欧美日韩午夜在线| 蜜桃av噜噜一区| 精品欧美乱码久久久久久1区2区| 韩日欧美一区二区三区| 国产精品欧美久久久久一区二区| 成人动漫一区二区在线| 伊人色综合久久天天| 欧美撒尿777hd撒尿| 麻豆精品视频在线观看| 国产欧美视频在线观看| 91成人网在线| 国产一区不卡在线| 自拍偷拍欧美精品| 日韩三级伦理片妻子的秘密按摩| 激情欧美一区二区三区在线观看| 国产精品国产三级国产aⅴ原创| 91美女在线观看| 日韩电影在线看| 国产精品视频第一区| 欧美性猛交xxxx乱大交退制版| 久久99久久99| 亚洲美女区一区| 精品少妇一区二区三区日产乱码| 国产美女精品在线| 亚洲r级在线视频| 久久精品在线免费观看| 在线观看一区二区视频| 国产一区二区三区在线看麻豆| 一区二区三区不卡视频| 久久久久久久久久久久久女国产乱| 99re热视频这里只精品| 麻豆精品精品国产自在97香蕉| 亚洲欧美一区二区三区国产精品| 日韩免费看网站| 在线一区二区三区做爰视频网站| 蜜桃av一区二区| 亚洲国产综合视频在线观看| 欧美激情综合五月色丁香| 欧美日韩国产小视频| 成人av动漫网站| 国产在线麻豆精品观看| 亚洲二区在线视频| 亚洲日本在线a| 国产精品午夜春色av| 久久久亚洲国产美女国产盗摄 | 91婷婷韩国欧美一区二区| 久久精品国产秦先生| 爽好多水快深点欧美视频| 一区二区三区资源| 亚洲国产成人一区二区三区| 精品久久久久香蕉网| 欧美一区二区国产| 欧美日韩国产高清一区二区三区| 色综合中文字幕国产| 国产一区二区三区最好精华液| 蜜臀av性久久久久av蜜臀妖精| 亚洲女同女同女同女同女同69| 国产精品婷婷午夜在线观看| 久久蜜桃一区二区| 久久亚洲一级片| 欧美精品一区二区久久婷婷 | 日韩精品一区二区三区中文不卡| 欧洲中文字幕精品| 欧美性受xxxx| 欧美日韩欧美一区二区| 欧洲视频一区二区| 欧美中文字幕久久| 欧美日韩国产美| 欧美一区二区三区啪啪| 91精品国产免费| 久久综合久久久久88| 久久网这里都是精品| 国产免费成人在线视频| 国产精品三级av| 亚洲欧美日韩国产中文在线| 亚洲欧美另类小说| 亚洲小说欧美激情另类| 日韩1区2区3区| 激情偷乱视频一区二区三区| 国产精品18久久久久久久久| av一本久道久久综合久久鬼色| av网站一区二区三区| 欧美系列在线观看| 欧美一卡在线观看| 久久久一区二区| 亚洲免费观看高清完整版在线观看熊 | 亚洲综合成人在线视频| 亚洲午夜成aⅴ人片| 捆绑变态av一区二区三区| 国产大陆亚洲精品国产| 色婷婷av一区二区| 精品久久久久久久人人人人传媒 | 欧美一区二区视频观看视频| 精品免费国产二区三区| 国产精品国产三级国产普通话三级 | 亚洲欧美日韩中文字幕一区二区三区| 亚洲一区二区偷拍精品| 国产永久精品大片wwwapp| 色综合久久天天综合网| 欧美一区二区免费观在线| 久久九九久精品国产免费直播| 一区二区三区在线视频观看58| 麻豆成人久久精品二区三区小说| 国产成人精品影院| 欧美日韩精品一区二区三区| 久久久久久亚洲综合| 亚洲va国产天堂va久久en| kk眼镜猥琐国模调教系列一区二区| 欧美色图第一页| 亚洲欧美综合色| 九九精品一区二区| 欧美日韩亚洲另类|