注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小白的博客

嵌入式爱好者

 
 
 

日志

 
 

USB相关结构体之usb_interface  

2012-09-19 02:40:15|  分类: 韦东山视频第二轮 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
首先我们知道这样一个事实:

每个usb设备都可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从中选定一个),配置由多个接口组成。在usb协议中,接口由多个端点组成,代表一个基本的功能,是usb设备驱动程序控制的对象,一个功能复杂的usb设备可以具有多个接口,而接口是端点的汇集。

struct usb_interface {
struct usb_host_interface *altsetting; //主机侧对接口的设置链表,详见注释1

struct usb_host_interface *cur_altsetting; //当前活动的设置
unsigned num_altsetting; //可选的设置的数量
struct usb_interface_assoc_descriptor *intf_assoc;//接口联盟,

int minor; /* minor number this interface is
* bound to */
enum usb_interface_condition condition; /* state of binding */
unsigned sysfs_files_created:1; /* the sysfs attributes exist */
unsigned ep_devs_created:1; /* endpoint "devices" exist */
unsigned unregistering:1; /* unregistration is in progress */
unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */
unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */
unsigned needs_binding:1; /* needs delayed unbind/rebind */
unsigned reset_running:1;
unsigned resetting_device:1; /* true: bandwidth alloc after reset */

struct device dev; /* interface specific device info */
struct device *usb_dev;
atomic_t pm_usage_cnt; /* usage counter for autosuspend */
struct work_struct reset_ws; /* for resets in atomic context */
};

注释1:
struct usb_host_interface {
struct usb_interface_descriptor desc; //接口描述符,详见注释1-1

struct usb_host_endpoint *endpoint;//端口结构体
char *string; /* iInterface string, if present */
unsigned char *extra;   /* Extra descriptors */
int extralen;
};

注释1-1:
struct usb_interface_descriptor {
__u8  bLength;
__u8  bDescriptorType;

__u8  bInterfaceNumber;
__u8  bAlternateSetting;
__u8  bNumEndpoints;
__u8  bInterfaceClass;
__u8  bInterfaceSubClass;
__u8  bInterfaceProtocol;
__u8  iInterface;
} __attribute__ ((packed));
  评论这张
 
阅读(2117)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017