⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hub.h

📁 ep9315平台下USB驱动的源码
💻 H
字号:
#ifndef __LINUX_HUB_H#define __LINUX_HUB_H#include <linux/list.h>#include <linux/compiler.h>	/* likely()/unlikely() *//* * Hub request types */#define USB_RT_HUB	(USB_TYPE_CLASS | USB_RECIP_DEVICE)#define USB_RT_PORT	(USB_TYPE_CLASS | USB_RECIP_OTHER)/* * Hub Class feature numbers * See USB 2.0 spec Table 11-17 */#define C_HUB_LOCAL_POWER	0#define C_HUB_OVER_CURRENT	1/* * Port feature numbers * See USB 2.0 spec Table 11-17 */#define USB_PORT_FEAT_CONNECTION	0#define USB_PORT_FEAT_ENABLE		1#define USB_PORT_FEAT_SUSPEND		2#define USB_PORT_FEAT_OVER_CURRENT	3#define USB_PORT_FEAT_RESET		4#define USB_PORT_FEAT_POWER		8#define USB_PORT_FEAT_LOWSPEED		9#define USB_PORT_FEAT_HIGHSPEED		10#define USB_PORT_FEAT_C_CONNECTION	16#define USB_PORT_FEAT_C_ENABLE		17#define USB_PORT_FEAT_C_SUSPEND		18#define USB_PORT_FEAT_C_OVER_CURRENT	19#define USB_PORT_FEAT_C_RESET		20#define USB_PORT_FEAT_TEST              21#define USB_PORT_FEAT_INDICATOR         22/*  * Hub Status and Hub Change results * See USB 2.0 spec Table 11-19 and Table 11-20 */struct usb_port_status {	__u16 wPortStatus;	__u16 wPortChange;	} __attribute__ ((packed));/*  * wPortStatus bit field * See USB 2.0 spec Table 11-21 */#define USB_PORT_STAT_CONNECTION	0x0001#define USB_PORT_STAT_ENABLE		0x0002#define USB_PORT_STAT_SUSPEND		0x0004#define USB_PORT_STAT_OVERCURRENT	0x0008#define USB_PORT_STAT_RESET		0x0010/* bits 5 for 7 are reserved */#define USB_PORT_STAT_POWER		0x0100#define USB_PORT_STAT_LOW_SPEED		0x0200#define USB_PORT_STAT_HIGH_SPEED        0x0400#define USB_PORT_STAT_TEST              0x0800#define USB_PORT_STAT_INDICATOR         0x1000/* bits 13 to 15 are reserved *//*  * wPortChange bit field * See USB 2.0 spec Table 11-22 * Bits 0 to 4 shown, bits 5 to 15 are reserved */#define USB_PORT_STAT_C_CONNECTION	0x0001#define USB_PORT_STAT_C_ENABLE		0x0002#define USB_PORT_STAT_C_SUSPEND		0x0004#define USB_PORT_STAT_C_OVERCURRENT	0x0008#define USB_PORT_STAT_C_RESET		0x0010/* * wHubCharacteristics (masks)  * See USB 2.0 spec Table 11-13, offset 3 */#define HUB_CHAR_LPSM		0x0003 /* D1 .. D0 */#define HUB_CHAR_COMPOUND	0x0004 /* D2       */#define HUB_CHAR_OCPM		0x0018 /* D4 .. D3 */#define HUB_CHAR_TTTT           0x0060 /* D6 .. D5 */#define HUB_CHAR_PORTIND        0x0080 /* D7       */struct usb_hub_status {	__u16 wHubStatus;	__u16 wHubChange;} __attribute__ ((packed));/* * Hub Status & Hub Change bit masks * See USB 2.0 spec Table 11-19 and Table 11-20 * Bits 0 and 1 for wHubStatus and wHubChange * Bits 2 to 15 are reserved for both */#define HUB_STATUS_LOCAL_POWER	0x0001#define HUB_STATUS_OVERCURRENT	0x0002#define HUB_CHANGE_LOCAL_POWER	0x0001#define HUB_CHANGE_OVERCURRENT	0x0002/*  * Hub descriptor  * See USB 2.0 spec Table 11-13 */struct usb_hub_descriptor {	__u8  bDescLength;	__u8  bDescriptorType;	__u8  bNbrPorts;	__u16 wHubCharacteristics;	__u8  bPwrOn2PwrGood;	__u8  bHubContrCurrent;	    	/* add 1 bit for hub status change; round to bytes */	__u8  DeviceRemovable[(USB_MAXCHILDREN + 1 + 7) / 8];	__u8  PortPwrCtrlMask[(USB_MAXCHILDREN + 1 + 7) / 8];} __attribute__ ((packed));struct usb_device;struct usb_hub {	struct usb_device *dev;	struct urb *urb;		/* Interrupt polling pipe */	char buffer[(USB_MAXCHILDREN + 1 + 7) / 8]; /* add 1 bit for hub status change */					/* and add 7 bits to round up to byte boundary */	int error;	int nerrors;	struct list_head hub_list;	struct list_head event_list;	struct usb_hub_descriptor *descriptor;	struct semaphore khubd_sem;	struct usb_tt		tt;		/* Transaction Translator */};#endif /* __LINUX_HUB_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -