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

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

?? usbdcore.c

?? OMAP1510的USB驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * (C) Copyright 2003 * Gerry Hamel, geh@ti.com, Texas Instruments * * Based on * linux/drivers/usbd/usbd.c.c - USB Device Core Layer * * Copyright (c) 2000, 2001, 2002 Lineo * Copyright (c) 2001 Hewlett Packard * * By: *	Stuart Lynne <sl@lineo.com>, *	Tom Rushworth <tbr@lineo.com>, *	Bruce Balden <balden@lineo.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */#include <malloc.h>#include "usbdcore.h"#define MAX_INTERFACES 2int maxstrings = 20;/* Global variables ************************************************************************** */struct usb_string_descriptor **usb_strings;int usb_devices;extern struct usb_function_driver ep0_driver;int registered_functions;int registered_devices;char *usbd_device_events[] = {	"DEVICE_UNKNOWN",	"DEVICE_INIT",	"DEVICE_CREATE",	"DEVICE_HUB_CONFIGURED",	"DEVICE_RESET",	"DEVICE_ADDRESS_ASSIGNED",	"DEVICE_CONFIGURED",	"DEVICE_SET_INTERFACE",	"DEVICE_SET_FEATURE",	"DEVICE_CLEAR_FEATURE",	"DEVICE_DE_CONFIGURED",	"DEVICE_BUS_INACTIVE",	"DEVICE_BUS_ACTIVITY",	"DEVICE_POWER_INTERRUPTION",	"DEVICE_HUB_RESET",	"DEVICE_DESTROY",	"DEVICE_FUNCTION_PRIVATE",};char *usbd_device_states[] = {	"STATE_INIT",	"STATE_CREATED",	"STATE_ATTACHED",	"STATE_POWERED",	"STATE_DEFAULT",	"STATE_ADDRESSED",	"STATE_CONFIGURED",	"STATE_UNKNOWN",};char *usbd_device_requests[] = {	"GET STATUS",		/* 0 */	"CLEAR FEATURE",	/* 1 */	"RESERVED",		/* 2 */	"SET FEATURE",		/* 3 */	"RESERVED",		/* 4 */	"SET ADDRESS",		/* 5 */	"GET DESCRIPTOR",	/* 6 */	"SET DESCRIPTOR",	/* 7 */	"GET CONFIGURATION",	/* 8 */	"SET CONFIGURATION",	/* 9 */	"GET INTERFACE",	/* 10 */	"SET INTERFACE",	/* 11 */	"SYNC FRAME",		/* 12 */};char *usbd_device_descriptors[] = {	"UNKNOWN",		/* 0 */	"DEVICE",		/* 1 */	"CONFIG",		/* 2 */	"STRING",		/* 3 */	"INTERFACE",		/* 4 */	"ENDPOINT",		/* 5 */	"DEVICE QUALIFIER",	/* 6 */	"OTHER SPEED",		/* 7 */	"INTERFACE POWER",	/* 8 */};char *usbd_device_status[] = {	"USBD_OPENING",	"USBD_OK",	"USBD_SUSPENDED",	"USBD_CLOSING",};/* Descriptor support functions ************************************************************** *//** * usbd_get_string - find and return a string descriptor * @index: string index to return * * Find an indexed string and return a pointer to a it. */struct usb_string_descriptor *usbd_get_string (__u8 index){	if (index >= maxstrings) {		return NULL;	}	return usb_strings[index];}/* Access to device descriptor functions ***************************************************** *//* * * usbd_device_configuration_instance - find a configuration instance for this device * @device: * @configuration: index to configuration, 0 - N-1 * * Get specifed device configuration. Index should be bConfigurationValue-1. */static struct usb_configuration_instance *usbd_device_configuration_instance (struct usb_device_instance *device,		unsigned int port, unsigned int configuration){	/* XXX */	configuration = configuration ? configuration - 1 : 0;	if (configuration >= device->configurations) {		return NULL;	}	return device->configuration_instance_array + configuration;}/* * * usbd_device_interface_instance * @device: * @configuration: index to configuration, 0 - N-1 * @interface: index to interface * * Return the specified interface descriptor for the specified device. */struct usb_interface_instance *usbd_device_interface_instance (struct usb_device_instance *device, int port, int configuration, int interface){	struct usb_configuration_instance *configuration_instance;	if ((configuration_instance = usbd_device_configuration_instance (device, port, configuration)) == NULL) {		return NULL;	}	if (interface >= configuration_instance->interfaces) {		return NULL;	}	return configuration_instance->interface_instance_array + interface;}/* * * usbd_device_alternate_descriptor_list * @device: * @configuration: index to configuration, 0 - N-1 * @interface: index to interface * @alternate: alternate setting * * Return the specified alternate descriptor for the specified device. */struct usb_alternate_instance *usbd_device_alternate_instance (struct usb_device_instance *device, int port, int configuration, int interface, int alternate){	struct usb_interface_instance *interface_instance;	if ((interface_instance = usbd_device_interface_instance (device, port, configuration, interface)) == NULL) {		return NULL;	}	if (alternate >= interface_instance->alternates) {		return NULL;	}	return interface_instance->alternates_instance_array + alternate;}/* * * usbd_device_device_descriptor * @device: which device * @configuration: index to configuration, 0 - N-1 * @port: which port * * Return the specified configuration descriptor for the specified device. */struct usb_device_descriptor *usbd_device_device_descriptor (struct usb_device_instance *device, int port){	return (device->device_descriptor);}/** * usbd_device_configuration_descriptor * @device: which device * @port: which port * @configuration: index to configuration, 0 - N-1 * * Return the specified configuration descriptor for the specified device. */struct usb_configuration_descriptor *usbd_device_configuration_descriptor (struct									   usb_device_instance									   *device, int port, int configuration){	struct usb_configuration_instance *configuration_instance;	if (!(configuration_instance = usbd_device_configuration_instance (device, port, configuration))) {		return NULL;	}	return (configuration_instance->configuration_descriptor);}/** * usbd_device_interface_descriptor * @device: which device * @port: which port * @configuration: index to configuration, 0 - N-1 * @interface: index to interface * @alternate: alternate setting * * Return the specified interface descriptor for the specified device. */struct usb_interface_descriptor *usbd_device_interface_descriptor (struct usb_device_instance								   *device, int port, int configuration, int interface, int alternate){	struct usb_interface_instance *interface_instance;	if (!(interface_instance = usbd_device_interface_instance (device, port, configuration, interface))) {		return NULL;	}	if ((alternate < 0) || (alternate >= interface_instance->alternates)) {		return NULL;	}	return (interface_instance->alternates_instance_array[alternate].interface_descriptor);}/** * usbd_device_endpoint_descriptor_index * @device: which device * @port: which port * @configuration: index to configuration, 0 - N-1 * @interface: index to interface * @alternate: index setting * @index: which index * * Return the specified endpoint descriptor for the specified device. */struct usb_endpoint_descriptor *usbd_device_endpoint_descriptor_index (struct usb_device_instance								       *device, int port, int configuration, int interface, int alternate, int index){	struct usb_alternate_instance *alternate_instance;	if (!(alternate_instance = usbd_device_alternate_instance (device, port, configuration, interface, alternate))) {		return NULL;	}	if (index >= alternate_instance->endpoints) {		return NULL;	}	return *(alternate_instance->endpoints_descriptor_array + index);}/** * usbd_device_endpoint_transfersize * @device: which device * @port: which port * @configuration: index to configuration, 0 - N-1 * @interface: index to interface * @index: which index * * Return the specified endpoint transfer size; */int usbd_device_endpoint_transfersize (struct usb_device_instance *device, int port, int configuration, int interface, int alternate, int index){	struct usb_alternate_instance *alternate_instance;	if (!(alternate_instance = usbd_device_alternate_instance (device, port, configuration, interface, alternate))) {		return 0;	}	if (index >= alternate_instance->endpoints) {		return 0;	}	return *(alternate_instance->endpoint_transfersize_array + index);}/** * usbd_device_endpoint_descriptor * @device: which device * @port: which port * @configuration: index to configuration, 0 - N-1 * @interface: index to interface * @alternate: alternate setting * @endpoint: which endpoint * * Return the specified endpoint descriptor for the specified device. */struct usb_endpoint_descriptor *usbd_device_endpoint_descriptor (struct usb_device_instance *device, int port, int configuration, int interface, int alternate, int endpoint){	struct usb_endpoint_descriptor *endpoint_descriptor;	int i;	for (i = 0; !(endpoint_descriptor = usbd_device_endpoint_descriptor_index (device, port, configuration, interface, alternate, i)); i++) {		if (endpoint_descriptor->bEndpointAddress == endpoint) {			return endpoint_descriptor;		}	}	return NULL;}/** * usbd_endpoint_halted * @device: point to struct usb_device_instance * @endpoint: endpoint to check * * Return non-zero if endpoint is halted. */int usbd_endpoint_halted (struct usb_device_instance *device, int endpoint)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱子久久久久| 国产在线精品不卡| 成人午夜激情影院| 精品精品欲导航| 香蕉av福利精品导航| 色综合久久88色综合天天6| 久久久久久综合| 国产一区二区三区日韩| 51久久夜色精品国产麻豆| 一个色综合网站| 欧美影院一区二区| 一区二区三区毛片| 在线不卡欧美精品一区二区三区| 国产日韩欧美一区二区三区综合 | 欧美一区二区三区人| 午夜精品123| 久久综合色婷婷| 国产成人aaa| 亚洲精品第一国产综合野| 欧美在线三级电影| 日韩av电影免费观看高清完整版 | 色综合亚洲欧洲| 亚洲国产精品久久人人爱| 欧美美女一区二区三区| 精品一区二区三区香蕉蜜桃| 国产精品丝袜久久久久久app| 色婷婷亚洲婷婷| 久久国产欧美日韩精品| 综合久久一区二区三区| 911精品产国品一二三产区| 国产一区二区剧情av在线| 亚洲欧美电影院| 欧美一区二区三区视频在线观看| 国产在线不卡一区| 亚洲成人av电影| 欧美国产1区2区| 精品久久久久久久久久久院品网| aaa亚洲精品| 激情五月播播久久久精品| 亚洲国产日韩a在线播放性色| 欧美一级黄色大片| 91国偷自产一区二区开放时间 | 久久色在线视频| 欧美高清dvd| 91黄色小视频| 一本色道综合亚洲| 99在线热播精品免费| 国产精品综合av一区二区国产馆| 亚洲国产美国国产综合一区二区| 国产精品人成在线观看免费| 日韩欧美国产电影| 日韩一二在线观看| 日韩免费一区二区| 欧美一区二区久久久| 9191久久久久久久久久久| 欧美日韩精品一区二区| 一本色道久久综合亚洲91| 99天天综合性| 91丝袜美腿高跟国产极品老师| 国产成人8x视频一区二区| 国产精品亚洲专一区二区三区| 久久爱www久久做| 国产精品一区二区在线播放| 国产精品123区| 成人免费视频一区二区| 91丨porny丨中文| 91极品美女在线| 日韩欧美区一区二| 国产女同互慰高潮91漫画| 亚洲视频一区二区在线观看| 一区二区三区四区国产精品| 亚洲福中文字幕伊人影院| 亚洲超碰精品一区二区| 蜜桃精品在线观看| 国产不卡在线视频| 日韩一级精品视频在线观看| 国产午夜精品理论片a级大结局| 3d动漫精品啪啪一区二区竹菊 | 高清不卡一区二区| 丰满放荡岳乱妇91ww| 欧美色男人天堂| 91蜜桃视频在线| 日韩一级精品视频在线观看| 国产香蕉久久精品综合网| 夜夜夜精品看看| 国产精品一二三四五| 91精品国产品国语在线不卡| 欧美激情综合在线| 久久99精品国产91久久来源| 色综合一区二区三区| 日韩欧美不卡一区| 亚洲精品免费一二三区| 韩国女主播一区二区三区| 在线精品视频一区二区| 国产日韩欧美一区二区三区乱码| 亚洲一区二区三区爽爽爽爽爽| 国产成人av在线影院| 精品日韩一区二区三区| 日韩电影在线免费看| 欧美日韩亚洲丝袜制服| 一区二区三区在线观看网站| 成人97人人超碰人人99| 国产精品无遮挡| av中文字幕亚洲| 国产精品家庭影院| 9久草视频在线视频精品| 亚洲欧美中日韩| 99re在线视频这里只有精品| 国产日韩欧美精品在线| 国产在线播放一区二区三区| 久久久www成人免费无遮挡大片| 精品一区二区在线看| 久久女同性恋中文字幕| 国产麻豆9l精品三级站| 国产精品欧美久久久久无广告 | 日韩精品一区二区三区三区免费 | 国产精品福利一区二区| 国产一区二区网址| 国产精品乱码人人做人人爱 | 青青草国产成人99久久| www一区二区| 欧美在线free| 激情五月婷婷综合| 国产调教视频一区| 欧洲一区二区三区免费视频| 日韩精品电影一区亚洲| 国产日产欧美精品一区二区三区| av在线播放成人| 蜜桃在线一区二区三区| 国产精品国产三级国产aⅴ无密码| 欧美亚洲丝袜传媒另类| 韩国成人福利片在线播放| 一区二区三区美女| 久久嫩草精品久久久精品| 色94色欧美sute亚洲线路二| 欧美a一区二区| 亚洲最色的网站| 成人免费一区二区三区在线观看| 欧美男生操女生| 在线观看亚洲a| 91网址在线看| 99re热视频这里只精品| 国产精品自拍av| 精品亚洲成a人| 麻豆精品久久久| 奇米影视在线99精品| 午夜精品久久久久久久久久| 日韩美女视频一区二区| 精品国产乱码久久久久久图片 | 国产欧美精品一区| 欧美大片一区二区| 久久老女人爱爱| 国产精品情趣视频| 色一情一乱一乱一91av| 国产一区二区精品在线观看| 亚洲视频小说图片| 亚洲女女做受ⅹxx高潮| 亚洲成人午夜影院| 美女爽到高潮91| 国产精品久久久久久久久快鸭 | 久久影音资源网| 色国产精品一区在线观看| 91美女片黄在线| 精品视频1区2区| 日韩三级.com| 久久一区二区视频| 国产精品短视频| 亚洲宅男天堂在线观看无病毒| 视频一区视频二区在线观看| 亚洲一区二区三区小说| 蜜臀a∨国产成人精品| 国产精品一区二区三区乱码| 懂色一区二区三区免费观看| 97aⅴ精品视频一二三区| 欧美日韩在线直播| 久久综合九色综合久久久精品综合| 国产精品久久久久影院老司| 亚洲成年人影院| 成人免费毛片嘿嘿连载视频| 在线观看日韩精品| 国产日产精品1区| 亚洲精选视频在线| 国产激情视频一区二区在线观看 | 欧美男生操女生| 国产精品乱码人人做人人爱| 蜜臀久久久99精品久久久久久| 国产成人av电影免费在线观看| 91精品久久久久久蜜臀| 亚洲精品日产精品乱码不卡| 久久精品72免费观看| 欧美亚洲国产一区二区三区va| 久久这里都是精品| 舔着乳尖日韩一区| 9i在线看片成人免费| 欧美韩日一区二区三区| 九九精品视频在线看| 日韩欧美一级二级三级久久久| 一卡二卡欧美日韩| 91官网在线观看| 亚洲自拍偷拍九九九|