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

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

?? core.c

?? 最新的libusb庫
?? C
?? 第 1 頁 / 共 3 頁
字號:
			*config = tmp;		} else {			usbi_dbg("control failed, error %d", r);		}	}	if (r == 0)		usbi_dbg("active config %d", *config);	return r;}/** \ingroup dev * Set the active configuration for a device. * * The operating system may or may not have already set an active * configuration on the device. It is up to your application to ensure the * correct configuration is selected before you attempt to claim interfaces * and perform other operations. *  * If you call this function on a device already configured with the selected * configuration, then this function will act as a lightweight device reset: * it will issue a SET_CONFIGURATION request using the current configuration, * causing most USB-related device state to be reset (altsetting reset to zero, * endpoint halts cleared, toggles reset). * * You cannot change/reset configuration if your application has claimed * interfaces - you should free them with libusb_release_interface() first. * You cannot change/reset configuration if other applications or drivers have * claimed interfaces. * * A configuration value of -1 will put the device in unconfigured state. * The USB specifications state that a configuration value of 0 does this, * however buggy devices exist which actually have a configuration 0. * * You should always use this function rather than formulating your own * SET_CONFIGURATION control request. This is because the underlying operating * system needs to know when such changes happen. * * This is a blocking function. * * \param dev a device handle * \param configuration the bConfigurationValue of the configuration you * wish to activate, or -1 if you wish to put the device in unconfigured state * \returns 0 on success * \returns LIBUSB_ERROR_NOT_FOUND if the requested configuration does not exist * \returns LIBUSB_ERROR_BUSY if interfaces are currently claimed * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected * \returns another LIBUSB_ERROR code on other failure */API_EXPORTED int libusb_set_configuration(libusb_device_handle *dev,	int configuration){	usbi_dbg("configuration %d", configuration);	return usbi_backend->set_configuration(dev, configuration);}/** \ingroup dev * Claim an interface on a given device handle. You must claim the interface * you wish to use before you can perform I/O on any of its endpoints. * * It is legal to attempt to claim an already-claimed interface, in which * case libusb just returns 0 without doing anything. * * Claiming of interfaces is a purely logical operation; it does not cause * any requests to be sent over the bus. Interface claiming is used to * instruct the underlying operating system that your application wishes * to take ownership of the interface. * * This is a non-blocking function. * * \param dev a device handle * \param interface_number the <tt>bInterfaceNumber</tt> of the interface you * wish to claim * \returns 0 on success * \returns LIBUSB_ERROR_NOT_FOUND if the requested interface does not exist * \returns LIBUSB_ERROR_BUSY if another program or driver has claimed the * interface * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected * \returns a LIBUSB_ERROR code on other failure */API_EXPORTED int libusb_claim_interface(libusb_device_handle *dev,	int interface_number){	int r = 0;	usbi_dbg("interface %d", interface_number);	if (interface_number >= sizeof(dev->claimed_interfaces) * 8)		return LIBUSB_ERROR_INVALID_PARAM;	pthread_mutex_lock(&dev->lock);	if (dev->claimed_interfaces & (1 << interface_number))		goto out;	r = usbi_backend->claim_interface(dev, interface_number);	if (r == 0)		dev->claimed_interfaces |= 1 << interface_number;out:	pthread_mutex_unlock(&dev->lock);	return r;}/** \ingroup dev * Release an interface previously claimed with libusb_claim_interface(). You * should release all claimed interfaces before closing a device handle. * * This is a blocking function. A SET_INTERFACE control request will be sent * to the device, resetting interface state to the first alternate setting. * * \param dev a device handle * \param interface_number the <tt>bInterfaceNumber</tt> of the * previously-claimed interface * \returns 0 on success * \returns LIBUSB_ERROR_NOT_FOUND if the interface was not claimed * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected * \returns another LIBUSB_ERROR code on other failure */API_EXPORTED int libusb_release_interface(libusb_device_handle *dev,	int interface_number){	int r;	usbi_dbg("interface %d", interface_number);	if (interface_number >= sizeof(dev->claimed_interfaces) * 8)		return LIBUSB_ERROR_INVALID_PARAM;	pthread_mutex_lock(&dev->lock);	if (!(dev->claimed_interfaces & (1 << interface_number))) {		r = LIBUSB_ERROR_NOT_FOUND;		goto out;	}	r = usbi_backend->release_interface(dev, interface_number);	if (r == 0)		dev->claimed_interfaces &= ~(1 << interface_number);out:	pthread_mutex_unlock(&dev->lock);	return r;}/** \ingroup dev * Activate an alternate setting for an interface. The interface must have * been previously claimed with libusb_claim_interface(). * * You should always use this function rather than formulating your own * SET_INTERFACE control request. This is because the underlying operating * system needs to know when such changes happen. * * This is a blocking function. * * \param dev a device handle * \param interface_number the <tt>bInterfaceNumber</tt> of the * previously-claimed interface * \param alternate_setting the <tt>bAlternateSetting</tt> of the alternate * setting to activate * \returns 0 on success * \returns LIBUSB_ERROR_NOT_FOUND if the interface was not claimed, or the * requested alternate setting does not exist * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected * \returns another LIBUSB_ERROR code on other failure */API_EXPORTED int libusb_set_interface_alt_setting(libusb_device_handle *dev,	int interface_number, int alternate_setting){	usbi_dbg("interface %d altsetting %d",		interface_number, alternate_setting);	if (interface_number >= sizeof(dev->claimed_interfaces) * 8)		return LIBUSB_ERROR_INVALID_PARAM;	pthread_mutex_lock(&dev->lock);	if (!(dev->claimed_interfaces & (1 << interface_number))) {		pthread_mutex_unlock(&dev->lock);			return LIBUSB_ERROR_NOT_FOUND;	}	pthread_mutex_unlock(&dev->lock);	return usbi_backend->set_interface_altsetting(dev, interface_number,		alternate_setting);}/** \ingroup dev * Clear the halt/stall condition for an endpoint. Endpoints with halt status * are unable to receive or transmit data until the halt condition is stalled. * * You should cancel all pending transfers before attempting to clear the halt * condition. * * This is a blocking function. * * \param dev a device handle * \param endpoint the endpoint to clear halt status * \returns 0 on success * \returns LIBUSB_ERROR_NOT_FOUND if the endpoint does not exist * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected * \returns another LIBUSB_ERROR code on other failure */API_EXPORTED int libusb_clear_halt(libusb_device_handle *dev,	unsigned char endpoint){	usbi_dbg("endpoint %x", endpoint);	return usbi_backend->clear_halt(dev, endpoint);}/** \ingroup dev * Perform a USB port reset to reinitialize a device. The system will attempt * to restore the previous configuration and alternate settings after the * reset has completed. * * If the reset fails, the descriptors change, or the previous state cannot be * restored, the device will appear to be disconnected and reconnected. This * means that the device handle is no longer valid (you should close it) and * rediscover the device. A return code of LIBUSB_ERROR_NOT_FOUND indicates * when this is the case. * * This is a blocking function which usually incurs a noticeable delay. * * \param dev a handle of the device to reset * \returns 0 on success * \returns LIBUSB_ERROR_NOT_FOUND if re-enumeration is required, or if the * device has been disconnected * \returns another LIBUSB_ERROR code on other failure */API_EXPORTED int libusb_reset_device(libusb_device_handle *dev){	usbi_dbg("");	return usbi_backend->reset_device(dev);}/** \ingroup dev * Determine if a kernel driver is active on an interface. If a kernel driver * is active, you cannot claim the interface, and libusb will be unable to * perform I/O. * * \param dev a device handle * \param interface the interface to check * \returns 0 if no kernel driver is active * \returns 1 if a kernel driver is active * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected * \returns another LIBUSB_ERROR code on other failure * \see libusb_detach_kernel_driver() */API_EXPORTED int libusb_kernel_driver_active(libusb_device_handle *dev,	int interface){	usbi_dbg("interface %d", interface);	if (usbi_backend->kernel_driver_active)		return usbi_backend->kernel_driver_active(dev, interface);	else		return LIBUSB_ERROR_NOT_SUPPORTED;}/** \ingroup dev * Detach a kernel driver from an interface. If successful, you will then be * able to claim the interface and perform I/O. * * \param dev a device handle * \param interface the interface to detach the driver from * \returns 0 on success * \returns LIBUSB_ERROR_NOT_FOUND if no kernel driver was active * \returns LIBUSB_ERROR_INVALID_PARAM if the interface does not exist * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected * \returns another LIBUSB_ERROR code on other failure * \see libusb_kernel_driver_active() */API_EXPORTED int libusb_detach_kernel_driver(libusb_device_handle *dev,	int interface){	usbi_dbg("interface %d", interface);	if (usbi_backend->detach_kernel_driver)		return usbi_backend->detach_kernel_driver(dev, interface);	else		return LIBUSB_ERROR_NOT_SUPPORTED;}/** \ingroup lib * Set message verbosity. *  - Level 0: no messages ever printed by the library (default) *  - Level 1: error messages are printed to stderr *  - Level 2: warning and error messages are printed to stderr *  - Level 3: informational messages are printed to stdout, warning and error *    messages are printed to stderr * * The default level is 0, which means no messages are ever printed. If you * choose to increase the message verbosity level, ensure that your * application does not close the stdout/stderr file descriptors. * * You are advised to set level 3. libusb is conservative with it's message * logging and most of the time, will only log messages that explain error * conditions and other oddities. This will help you debug your software. * * If the LIBUSB_DEBUG environment variable was set when libusb was * initialized, this function does nothing: the message verbosity is fixed * to the value in the environment variable. * * If libusb was compiled without any message logging, this function does * nothing: you'll never get any messages. * * If libusb was compiled with verbose debug message logging, this function * does nothing: you'll always get messages from all levels. * * \param ctx the context to operate on, or NULL for the default context * \param level debug level to set */API_EXPORTED void libusb_set_debug(libusb_context *ctx, int level){	USBI_GET_CONTEXT(ctx);	if (!ctx->debug_fixed)		ctx->debug = level;}/** \ingroup lib * Initialize libusb. This function must be called before calling any other * libusb function. * \param context Optional output location for context pointer. * Only valid on return code 0. * \returns 0 on success, or a LIBUSB_ERROR code on failure */API_EXPORTED int libusb_init(libusb_context **context){	char *dbg = getenv("LIBUSB_DEBUG");	struct libusb_context *ctx = malloc(sizeof(*ctx));	if (!ctx)		return LIBUSB_ERROR_NO_MEM;	memset(ctx, 0, sizeof(*ctx));	if (dbg) {		ctx->debug = atoi(dbg);		if (ctx->debug)			ctx->debug_fixed = 1;	}	usbi_dbg("");	if (usbi_backend->init) {		int r = usbi_backend->init(ctx);		if (r) {			free(ctx);			return r;		}	}	pthread_mutex_init(&ctx->usb_devs_lock, NULL);	pthread_mutex_init(&ctx->open_devs_lock, NULL);	list_init(&ctx->usb_devs);	list_init(&ctx->open_devs);	usbi_io_init(ctx);	pthread_mutex_lock(&default_context_lock);	if (!usbi_default_context) {		usbi_dbg("created default context");		usbi_default_context = ctx;	}	pthread_mutex_unlock(&default_context_lock);	if (context)		*context = ctx;	return 0;}/** \ingroup lib * Deinitialize libusb. Should be called after closing all open devices and * before your application terminates. * \param ctx the context to deinitialize, or NULL for the default context */API_EXPORTED void libusb_exit(struct libusb_context *ctx){	USBI_GET_CONTEXT(ctx);	usbi_dbg("");	pthread_mutex_lock(&ctx->open_devs_lock);	if (!list_empty(&ctx->open_devs)) {		struct libusb_device_handle *devh;		struct libusb_device_handle *tmp;		usbi_dbg("naughty app left some devices open!");		list_for_each_entry_safe(devh, tmp, &ctx->open_devs, list) {			list_del(&devh->list);			do_close(devh);			free(devh);		}	}	pthread_mutex_unlock(&ctx->open_devs_lock);	if (usbi_backend->exit)		usbi_backend->exit();		pthread_mutex_lock(&default_context_lock);	if (ctx == usbi_default_context) {		usbi_dbg("freeing default context");		usbi_default_context = NULL;	}	pthread_mutex_unlock(&default_context_lock);	free(ctx);}void usbi_log(struct libusb_context *ctx, enum usbi_log_level level,	const char *function, const char *format, ...){	va_list args;	FILE *stream = stdout;	const char *prefix;#ifndef ENABLE_DEBUG_LOGGING	USBI_GET_CONTEXT(ctx);	if (!ctx->debug)		return;	if (level == LOG_LEVEL_WARNING && ctx->debug < 2)		return;	if (level == LOG_LEVEL_INFO && ctx->debug < 3)		return;#endif	switch (level) {	case LOG_LEVEL_INFO:		prefix = "info";		break;	case LOG_LEVEL_WARNING:		stream = stderr;		prefix = "warning";		break;	case LOG_LEVEL_ERROR:		stream = stderr;		prefix = "error";		break;	case LOG_LEVEL_DEBUG:		stream = stderr;		prefix = "debug";		break;	default:		stream = stderr;		prefix = "unknown";		break;	}	fprintf(stream, "libusb:%s [%s] ", prefix, function);	va_start (args, format);	vfprintf(stream, format, args);	va_end (args);	fprintf(stream, "\n");}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产人成亚洲第一网站在线播放| 国产精品的网站| 波多野结衣亚洲| 亚洲自拍欧美精品| 久久久亚洲国产美女国产盗摄 | 国产制服丝袜一区| 亚洲精品综合在线| 中文字幕 久热精品 视频在线 | 久久婷婷久久一区二区三区| 色老综合老女人久久久| 国产一区二区电影| 秋霞午夜鲁丝一区二区老狼| 亚洲人一二三区| 久久人人爽爽爽人久久久| 欧美精品久久久久久久多人混战| 成人91在线观看| 国产一区二区美女| 蜜桃视频第一区免费观看| 亚洲一区二区3| 亚洲六月丁香色婷婷综合久久| 久久―日本道色综合久久| 日韩一区二区免费在线观看| 精品视频在线免费看| www.欧美精品一二区| 国产成人一区在线| 国产一区欧美一区| 韩国av一区二区三区四区| 免费成人美女在线观看.| 水野朝阳av一区二区三区| 亚洲国产精品一区二区久久恐怖片 | 一级精品视频在线观看宜春院 | 亚洲欧洲精品天堂一级| 久久精品网站免费观看| 精品国产免费一区二区三区香蕉| 欧美一区二区视频在线观看| 在线观看日产精品| 在线精品观看国产| 欧美日韩在线综合| 51精品国自产在线| 欧美一级生活片| 风间由美中文字幕在线看视频国产欧美| 国内精品久久久久影院色| 国产一区二区福利视频| 国产盗摄视频一区二区三区| 国产成人免费视频网站| 国产成人av福利| 白白色亚洲国产精品| 97aⅴ精品视频一二三区| 色婷婷综合久久久| 欧美精品一卡二卡| 欧美精品一区二区在线播放 | www亚洲一区| 久久久美女毛片| 国产精品无遮挡| 综合久久久久久| 亚洲愉拍自拍另类高清精品| 亚洲成人av在线电影| 亚洲va韩国va欧美va| 麻豆精品一区二区| 懂色av中文一区二区三区| 99精品欧美一区二区三区小说| 91麻豆福利精品推荐| 欧美日韩一区在线| 欧美成人官网二区| 国产欧美一区二区精品性色超碰| 国产精品毛片久久久久久久| 亚洲精品乱码久久久久久久久 | 一本大道久久a久久精二百| 欧美日韩国产在线观看| 久久久久国产精品人| 亚洲免费观看高清完整版在线观看熊| 亚洲成a天堂v人片| 国产电影精品久久禁18| 91国偷自产一区二区三区成为亚洲经典 | 国产欧美日韩一区二区三区在线观看 | 日韩免费在线观看| 亚洲欧美一区二区三区国产精品 | 一区二区三区在线视频观看58| 日韩综合小视频| 国产精品白丝av| 欧美日韩极品在线观看一区| 久久一区二区三区四区| 亚洲综合成人在线视频| 国产一区美女在线| 欧美中文字幕久久| 国产亚洲1区2区3区| 亚洲成av人片| 成人app在线观看| 宅男在线国产精品| 最新热久久免费视频| 麻豆成人免费电影| 色哟哟在线观看一区二区三区| 日韩欧美在线不卡| 亚洲女同一区二区| 国产毛片精品视频| 欧美日本韩国一区二区三区视频 | 国产成人精品免费网站| 欧美久久久久久久久中文字幕| 久久久久久**毛片大全| 日本成人在线看| 色综合久久综合| 日本一区二区三区久久久久久久久不| 亚洲成va人在线观看| 91香蕉视频污在线| 久久精品亚洲麻豆av一区二区| 天堂在线一区二区| 色婷婷激情一区二区三区| 国产午夜一区二区三区| 免费久久99精品国产| 欧美亚洲国产bt| 亚洲天堂网中文字| 国产夫妻精品视频| 精品乱码亚洲一区二区不卡| 亚洲成人免费在线观看| 91同城在线观看| 亚洲国产精品二十页| 精品亚洲国产成人av制服丝袜| 欧美三级在线播放| 一区二区三区美女| 色一情一伦一子一伦一区| 综合欧美一区二区三区| 国产不卡在线视频| 国产亚洲欧美激情| 国产成人综合网站| 久久综合狠狠综合| 精品一区二区三区欧美| 欧美岛国在线观看| 日韩va欧美va亚洲va久久| 欧美私模裸体表演在线观看| 亚洲欧美成aⅴ人在线观看| 91在线无精精品入口| 国产精品免费视频一区| 99久久综合国产精品| 国产精品成人一区二区艾草| 成人午夜电影小说| 国产精品理论片在线观看| 成人精品高清在线| 国产精品你懂的| 一本大道久久a久久精品综合| 亚洲另类春色国产| 日本久久电影网| 亚洲成人免费视| 91麻豆精品国产91| 久久国产三级精品| 欧美激情资源网| 色综合咪咪久久| 石原莉奈在线亚洲三区| 欧美一级高清大全免费观看| 久久99久久99| 中文天堂在线一区| 色一区在线观看| 视频在线在亚洲| 欧美成人一区二区三区| 国产美女视频一区| 综合欧美一区二区三区| 欧美日韩精品电影| 精品亚洲成av人在线观看| 国产欧美日韩在线视频| 一本色道综合亚洲| 喷白浆一区二区| 国产欧美日韩在线视频| 色狠狠综合天天综合综合| 天堂影院一区二区| 国产日韩欧美激情| 在线影院国内精品| 蜜桃av一区二区在线观看| 欧美国产日韩a欧美在线观看| 91老师片黄在线观看| 日韩高清不卡在线| 欧美激情一二三区| 欧美日韩中文精品| 国产成人av一区二区三区在线| 亚洲色图视频免费播放| 制服丝袜av成人在线看| 粉嫩av一区二区三区在线播放| 亚洲永久免费av| 26uuuu精品一区二区| 欧美四级电影在线观看| 国产一区二区伦理| 亚洲高清免费观看高清完整版在线观看| 精品国产乱码久久久久久闺蜜| 94色蜜桃网一区二区三区| 久久超碰97中文字幕| 亚洲视频小说图片| 精品国产精品网麻豆系列| 一本久久综合亚洲鲁鲁五月天| 精品在线免费观看| 亚洲www啪成人一区二区麻豆| 久久久久99精品国产片| 欧美日韩精品专区| 成人免费毛片app| 日本免费新一区视频| 亚洲欧美日韩成人高清在线一区| 日韩一级在线观看| 欧美最新大片在线看| 处破女av一区二区| 裸体健美xxxx欧美裸体表演| 亚洲精品中文在线观看| 国产日韩高清在线| 久久综合九色综合欧美亚洲|