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

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

?? libusbi.h

?? 最新的libusb庫
?? H
?? 第 1 頁 / 共 2 頁
字號:
	 * This function should not generate any bus I/O and should not block.	 * If I/O is required (e.g. reading the active configuration value), it is	 * OK to ignore these suggestions :)	 *	 * This function is executed when the user wishes to retrieve a list	 * of USB devices connected to the system.	 *	 * Return 0 on success, or a LIBUSB_ERROR code on failure.	 */	int (*get_device_list)(struct libusb_context *ctx,		struct discovered_devs **discdevs);	/* Open a device for I/O and other USB operations. The device handle	 * is preallocated for you, you can retrieve the device in question	 * through handle->dev.	 *	 * Your backend should allocate any internal resources required for I/O	 * and other operations so that those operations can happen (hopefully)	 * without hiccup. This is also a good place to inform libusb that it	 * should monitor certain file descriptors related to this device -	 * see the usbi_add_pollfd() function.	 *	 * This function should not generate any bus I/O and should not block.	 *	 * This function is called when the user attempts to obtain a device	 * handle for a device.	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_ACCESS if the user has insufficient permissions	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since	 *   discovery	 * - another LIBUSB_ERROR code on other failure	 *	 * Do not worry about freeing the handle on failed open, the upper layers	 * do this for you.	 */	int (*open)(struct libusb_device_handle *handle);	/* Close a device such that the handle cannot be used again. Your backend	 * should destroy any resources that were allocated in the open path.	 * This may also be a good place to call usbi_remove_pollfd() to inform	 * libusb of any file descriptors associated with this device that should	 * no longer be monitored.	 *	 * This function is called when the user closes a device handle.	 */	void (*close)(struct libusb_device_handle *handle);	/* Retrieve the device descriptor from a device.	 *	 * The descriptor should be retrieved from memory, NOT via bus I/O to the	 * device. This means that you may have to cache it in a private structure	 * during get_device_list enumeration. Alternatively, you may be able	 * to retrieve it from a kernel interface (some Linux setups can do this)	 * still without generating bus I/O.	 *	 * This function is expected to write DEVICE_DESC_LENGTH (18) bytes into	 * buffer, which is guaranteed to be big enough.	 *	 * This function is called when sanity-checking a device before adding	 * it to the list of discovered devices, and also when the user requests	 * to read the device descriptor.	 *	 * This function is expected to return the descriptor in bus-endian format	 * (LE). If it returns the multi-byte values in host-endian format,	 * set the host_endian output parameter to "1".	 *	 * Return 0 on success or a LIBUSB_ERROR code on failure.	 */	int (*get_device_descriptor)(struct libusb_device *device,		unsigned char *buffer, int *host_endian);	/* Get the ACTIVE configuration descriptor for a device.	 *	 * The descriptor should be retrieved from memory, NOT via bus I/O to the	 * device. This means that you may have to cache it in a private structure	 * during get_device_list enumeration. You may also have to keep track	 * of which configuration is active when the user changes it.	 *	 * This function is expected to write len bytes of data into buffer, which	 * is guaranteed to be big enough. If you can only do a partial write,	 * return an error code.	 *	 * This function is expected to return the descriptor in bus-endian format	 * (LE). If it returns the multi-byte values in host-endian format,	 * set the host_endian output parameter to "1".	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NOT_FOUND if the device is in unconfigured state	 * - another LIBUSB_ERROR code on other failure	 */	int (*get_active_config_descriptor)(struct libusb_device *device,		unsigned char *buffer, size_t len, int *host_endian);	/* Get a specific configuration descriptor for a device.	 *	 * The descriptor should be retrieved from memory, NOT via bus I/O to the	 * device. This means that you may have to cache it in a private structure	 * during get_device_list enumeration.	 *	 * The requested descriptor is expressed as a zero-based index (i.e. 0	 * indicates that we are requesting the first descriptor). The index does	 * not (necessarily) equal the bConfigurationValue of the configuration	 * being requested.	 *	 * This function is expected to write len bytes of data into buffer, which	 * is guaranteed to be big enough. If you can only do a partial write,	 * return an error code.	 *	 * This function is expected to return the descriptor in bus-endian format	 * (LE). If it returns the multi-byte values in host-endian format,	 * set the host_endian output parameter to "1".	 *	 * Return 0 on success or a LIBUSB_ERROR code on failure.	 */	int (*get_config_descriptor)(struct libusb_device *device,		uint8_t config_index, unsigned char *buffer, size_t len,		int *host_endian);	/* Get the bConfigurationValue for the active configuration for a device.	 * Optional. This should only be implemented if you can retrieve it from	 * cache (don't generate I/O).	 *	 * If you cannot retrieve this from cache, either do not implement this	 * function, or return LIBUSB_ERROR_NOT_SUPPORTED. This will cause	 * libusb to retrieve the information through a standard control transfer.	 *	 * This function must be non-blocking.	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it	 *   was opened	 * - LIBUSB_ERROR_NOT_SUPPORTED if the value cannot be retrieved without	 *   blocking	 * - another LIBUSB_ERROR code on other failure.	 */	int (*get_configuration)(struct libusb_device_handle *handle, int *config);	/* Set the active configuration for a device.	 *	 * A configuration value of -1 should put the device in unconfigured state.	 *	 * This function can block.	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NOT_FOUND if the configuration does not exist	 * - LIBUSB_ERROR_BUSY if interfaces are currently claimed (and hence	 *   configuration cannot be changed)	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it	 *   was opened	 * - another LIBUSB_ERROR code on other failure.	 */	int (*set_configuration)(struct libusb_device_handle *handle, int config);	/* Claim an interface. When claimed, the application can then perform	 * I/O to an interface's endpoints.	 *	 * This function should not generate any bus I/O and should not block.	 * Interface claiming is a logical operation that simply ensures that	 * no other drivers/applications are using the interface, and after	 * claiming, no other drivers/applicatiosn can use the interface because	 * we now "own" it.	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NOT_FOUND if the interface does not exist	 * - LIBUSB_ERROR_BUSY if the interface is in use by another driver/app	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it	 *   was opened	 * - another LIBUSB_ERROR code on other failure	 */	int (*claim_interface)(struct libusb_device_handle *handle, int iface);	/* Release a previously claimed interface.	 *	 * This function should also generate a SET_INTERFACE control request,	 * resetting the alternate setting of that interface to 0. It's OK for	 * this function to block as a result.	 *	 * You will only ever be asked to release an interface which was	 * successfully claimed earlier.	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it	 *   was opened	 * - another LIBUSB_ERROR code on other failure	 */	int (*release_interface)(struct libusb_device_handle *handle, int iface);	/* Set the alternate setting for an interface.	 *	 * You will only ever be asked to set the alternate setting for an	 * interface which was successfully claimed earlier.	 *	 * It's OK for this function to block.	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NOT_FOUND if the alternate setting does not exist	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it	 *   was opened	 * - another LIBUSB_ERROR code on other failure	 */	int (*set_interface_altsetting)(struct libusb_device_handle *handle,		int iface, int altsetting);	/* Clear a halt/stall condition on an endpoint.	 *	 * It's OK for this function to block.	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NOT_FOUND if the endpoint does not exist	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it	 *   was opened	 * - another LIBUSB_ERROR code on other failure	 */	int (*clear_halt)(struct libusb_device_handle *handle,		unsigned char endpoint);	/* Perform a USB port reset to reinitialize a device.	 *	 * If possible, the handle should still be usable after the reset	 * completes, assuming that the device descriptors did not change during	 * reset and all previous interface state can be restored.	 *	 * If something changes, or you cannot easily locate/verify the resetted	 * device, return LIBUSB_ERROR_NOT_FOUND. This prompts the application	 * to close the old handle and re-enumerate the device.	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NOT_FOUND if re-enumeration is required, or if the device	 *   has been disconnected since it was opened	 * - another LIBUSB_ERROR code on other failure	 */	int (*reset_device)(struct libusb_device_handle *handle);	/* Determine if a kernel driver is active on an interface. Optional.	 *	 * The presence of a kernel driver on an interface indicates that any	 * calls to claim_interface would fail with the LIBUSB_ERROR_BUSY code.	 *	 * Return:	 * - 0 if no driver is active	 * - 1 if a driver is active	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it	 *   was opened	 * - another LIBUSB_ERROR code on other failure	 */	int (*kernel_driver_active)(struct libusb_device_handle *handle,		int interface);		/* Detach a kernel driver from an interface. Optional.	 *	 * After detaching a kernel driver, the interface should be available	 * for claim.	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NOT_FOUND if no kernel driver was active	 * - LIBUSB_ERROR_INVALID_PARAM if the interface does not exist	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it	 *   was opened	 * - another LIBUSB_ERROR code on other failure	 */	int (*detach_kernel_driver)(struct libusb_device_handle *handle,		int interface);	/* Destroy a device. Optional.	 *	 * This function is called when the last reference to a device is	 * destroyed. It should free any resources allocated in the get_device_list	 * path.	 */	void (*destroy_device)(struct libusb_device *dev);	/* Submit a transfer. Your implementation should take the transfer,	 * morph it into whatever form your platform requires, and submit it	 * asynchronously.	 *	 * This function must not block.	 *	 * Return:	 * - 0 on success	 * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected	 * - another LIBUSB_ERROR code on other failure	 */	int (*submit_transfer)(struct usbi_transfer *itransfer);	/* Cancel a previously submitted transfer.	 *	 * This function must not block. The transfer cancellation must complete	 * later, resulting in a call to usbi_handle_transfer_cancellation()	 * from the context of handle_events.	 */	int (*cancel_transfer)(struct usbi_transfer *itransfer);	/* Clear a transfer as if it has completed or cancelled, but do not	 * report any completion/cancellation to the library. You should free	 * all private data from the transfer as if you were just about to report	 * completion or cancellation.	 *	 * This function might seem a bit out of place. It is used when libusb	 * detects a disconnected device - it calls this function for all pending	 * transfers before reporting completion (with the disconnect code) to	 * the user. Maybe we can improve upon this internal interface in future.	 */	void (*clear_transfer_priv)(struct usbi_transfer *itransfer);	/* Handle any pending events. This involves monitoring any active	 * transfers and processing their completion or cancellation.	 *	 * The function is passed an array of pollfd structures (size nfds)	 * as a result of the poll() system call. The num_ready parameter	 * indicates the number of file descriptors that have reported events	 * (i.e. the poll() return value). This should be enough information	 * for you to determine which actions need to be taken on the currently	 * active transfers.	 *	 * For any cancelled transfers, call usbi_handle_transfer_cancellation().	 * For completed transfers, call usbi_handle_transfer_completion().	 * For control/bulk/interrupt transfers, populate the "transferred"	 * element of the appropriate usbi_transfer structure before calling the	 * above functions. For isochronous transfers, populate the status and	 * transferred fields of the iso packet descriptors of the transfer.	 *	 * This function should also be able to detect disconnection of the	 * device, reporting that situation with usbi_handle_disconnect().	 *	 * Return 0 on success, or a LIBUSB_ERROR code on failure.	 */	int (*handle_events)(struct libusb_context *ctx,		struct pollfd *fds, nfds_t nfds, int num_ready);	/* Number of bytes to reserve for per-device private backend data.	 * This private data area is accessible through the "os_priv" field of	 * struct libusb_device. */	size_t device_priv_size;	/* Number of bytes to reserve for per-handle private backend data.	 * This private data area is accessible through the "os_priv" field of	 * struct libusb_device. */	size_t device_handle_priv_size;	/* Number of bytes to reserve for per-transfer private backend data.	 * This private data area is accessible by calling	 * usbi_transfer_get_os_priv() on the appropriate usbi_transfer instance.	 */	size_t transfer_priv_size;	/* Mumber of additional bytes for os_priv for each iso packet.	 * Can your backend use this? */	/* FIXME: linux can't use this any more. if other OS's cannot either,	 * then remove this */	size_t add_iso_packet_size;};extern const struct usbi_os_backend * const usbi_backend;extern const struct usbi_os_backend linux_usbfs_backend;#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区资源| 欧美肥妇free| 蜜桃av噜噜一区| 日本欧美一区二区三区| 日韩精品免费专区| 同产精品九九九| 欧美aaa在线| 久久99久久99小草精品免视看| 麻豆国产精品一区二区三区 | 精品国产一区二区三区久久久蜜月| 欧美一区二区三区不卡| 在线影院国内精品| 国产精品国产三级国产三级人妇| 亚洲黄色在线视频| 国产成人欧美日韩在线电影| 国产拍欧美日韩视频二区| 久久国产精品99精品国产| 精品国产一区二区在线观看| 欧美成人艳星乳罩| youjizz国产精品| 亚洲午夜激情网页| 中文字幕一区二区在线观看 | 色婷婷久久久综合中文字幕| 国产日韩欧美制服另类| 国产在线视视频有精品| 欧美精品1区2区3区| 亚洲国产成人精品视频| 国产乱码精品一区二区三区五月婷 | 另类欧美日韩国产在线| 欧美日韩久久一区| 国产午夜精品福利| 亚洲美女偷拍久久| 韩国女主播成人在线| 菠萝蜜视频在线观看一区| 91性感美女视频| 激情成人午夜视频| 国产成a人亚洲精品| 国产成人精品网址| 日本乱码高清不卡字幕| 色婷婷久久久久swag精品| 欧美午夜精品久久久| 国产精品女同一区二区三区| 国产精品不卡在线观看| 粉嫩绯色av一区二区在线观看| 日韩欧美第一区| 亚洲中国最大av网站| 成人一级视频在线观看| 4438x亚洲最大成人网| 国产精品嫩草久久久久| 精品一区二区三区不卡| 欧美一激情一区二区三区| 亚洲人成精品久久久久| 99re8在线精品视频免费播放| 国产三级久久久| proumb性欧美在线观看| 午夜精品久久久久久不卡8050| 亚洲欧美一区二区视频| 91精品国产一区二区三区香蕉| 色综合久久久久网| 国产精品嫩草影院com| 一区二区三区欧美日| 在线亚洲精品福利网址导航| www.欧美日韩| 精品福利一区二区三区| 国产综合久久久久久久久久久久| 亚洲欧洲av在线| 久久久久九九视频| 91精品国产色综合久久不卡电影 | 久久综合色之久久综合| 国内精品在线播放| 国产欧美日韩综合精品一区二区| 国产精品77777| 国产精品久久99| 成人成人成人在线视频| 久久久久久免费网| 成人美女在线观看| 国产日产欧美精品一区二区三区| 久久精品国内一区二区三区| 欧美一区二区三区四区久久| 久久99热狠狠色一区二区| 久久精品一区二区三区不卡牛牛 | 国产精品毛片高清在线完整版| 成人午夜精品在线| 亚洲精品免费在线播放| 欧美成人伊人久久综合网| 97精品视频在线观看自产线路二| 中文av字幕一区| 播五月开心婷婷综合| 青青青爽久久午夜综合久久午夜| 久久亚洲综合色一区二区三区| 欧美一区二区三区色| 欧美日韩不卡一区二区| 91精品视频网| 久久久国产精华| 成人免费小视频| 亚洲免费资源在线播放| 国产精品原创巨作av| 成人毛片老司机大片| 亚洲精品国久久99热| 欧美日韩一级黄| 欧美tickling网站挠脚心| 午夜成人在线视频| 欧美一级夜夜爽| 经典三级在线一区| yourporn久久国产精品| 99精品国产视频| 日韩一区二区高清| 久久婷婷久久一区二区三区| 日韩欧美国产一二三区| 精品国产乱码91久久久久久网站| 日韩免费在线观看| 中文字幕在线不卡| 成人深夜在线观看| 国产精品一区二区三区网站| 久久97超碰国产精品超碰| 日韩成人av影视| 精品一区二区三区在线播放视频| 久久精品国产久精国产爱| 成人永久免费视频| 波多野结衣中文字幕一区 | 老司机精品视频在线| 日韩成人精品在线| 国产在线不卡视频| 国产成人精品www牛牛影视| 成人福利视频网站| 欧美性生交片4| 日韩区在线观看| 国产视频不卡一区| 午夜伦欧美伦电影理论片| 国产在线精品免费| 91在线视频18| 欧美刺激午夜性久久久久久久| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩欧美激情在线| 国产日韩欧美不卡| 狠狠狠色丁香婷婷综合激情 | 欧美电影免费提供在线观看| 三级不卡在线观看| 欧美精品在线一区二区三区| 香蕉影视欧美成人| 国产美女视频91| 成人国产在线观看| 日韩一区二区三区电影在线观看 | 粉嫩aⅴ一区二区三区四区五区| 欧美日韩亚洲综合一区二区三区| 在线观看免费一区| 欧美成人a在线| 亚洲一级电影视频| www.成人网.com| 日韩欧美在线123| 一区二区高清免费观看影视大全| 精品国产91九色蝌蚪| 午夜不卡在线视频| 色综合久久久久久久久| 国产亚洲欧洲一区高清在线观看| 亚洲gay无套男同| 欧美在线色视频| 伊人夜夜躁av伊人久久| 懂色一区二区三区免费观看| 久久嫩草精品久久久精品一| 久久国产麻豆精品| 欧美一级精品大片| 日韩精品色哟哟| 精品欧美久久久| 久久精品国产一区二区三区免费看 | 国产精品久久免费看| 日本女人一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产午夜亚洲精品不卡| 精品无人码麻豆乱码1区2区| 欧美日韩高清一区二区三区| 五月综合激情婷婷六月色窝| 91.成人天堂一区| 亚洲高清免费视频| 69堂国产成人免费视频| 久久97超碰国产精品超碰| ww久久中文字幕| 欧美这里有精品| 日韩中文字幕麻豆| 一区二区三区欧美激情| 精品福利二区三区| 中文字幕av在线一区二区三区| 日韩欧美一级片| 色综合久久综合网97色综合| 欧美性猛交xxxx乱大交退制版 | 久久综合精品国产一区二区三区 | 国产午夜精品一区二区三区视频| 在线播放91灌醉迷j高跟美女| 666欧美在线视频| 午夜免费久久看| 欧美mv日韩mv| 精品在线播放免费| **欧美大码日韩| av网站免费线看精品| 亚洲精品一区二区精华| av福利精品导航| 亚洲免费在线播放| 538prom精品视频线放| 日本不卡123| 国产精品无码永久免费888|