- 21
- 0
- 约1.13万字
- 约 25页
- 2017-08-15 发布于河南
- 举报
usb 结构体(USB structure)
usb 结构体(USB structure)
结构usb_device_id来自include/linux/h mod_devicetable。
结构usb_device_id {
98 / *这场比赛吗?* /
99 __u16 match_flags;
一百
101 *用于特定于产品的匹配;范围是包含*
102 __u16 idvendor;
103 __u16 idproduct;
104 __u16 bcddevice_lo;
105 __u16 bcddevice_hi;
一百零六
107 / * * /用于设备类比赛
108 __u8 bdeviceclass;
109 __u8 bdevicesubclass;
110 __u8 bdeviceprotocol;
一百一十一
112 / * * /用于接口类比赛
113 __u8 binterfaceclass;
114 __u8 binterfacesubclass;
115 __u8 binterfaceprotocol;
一百一十六
117 / * * /不匹配
118 kernel_ulong_t driver_info;
119 };
上节我们注意到id_index = id-storage_usb_ids,ID我们知道,storage_probe函数的两个形参之一,而
storage_usb_ids,不是别人,正是我们曾经赋给usb_storage_driver的成员id_table的值。忘记了
id_table的可以回去看。它实际上就是一张表格,告诉全世界我这个司机支持怎样的一些设
备。storage_usb_ids同样来自司机/ USB /存储/ C中USB,
111 *本表中的条目,除了最后的表外
112 *(usb_mass_storage_class和空项),对应,
113 *线与us_unsuaul_dev_list [ ]的条目。
114 * /
一百一十五
116 #定义unusual_dev(id_vendor,id_product,bcddevicemin,bcddevicemax,\
117 vendorname,产品名称,useprotocol,usetransport,\
118 initfunction、旗)\
119 { usb_device_ver(id_vendor,id_product,bcddevicemin,bcddevicemax)}
一百二十
121静态结构usb_device_id storage_usb_ids [ ] = {
一百二十二
123 #包括“unusual_devs。”
124 # undef unusual_dev
125 *所有子类值的控制/批量传输*
126 { usb_interface_info(usb_class_mass_storage,us_sc_rbc,
us_pr_cb)},
127 { usb_interface_info(usb_class_mass_storage,us_sc_8020,
us_pr_cb)},
usb_interface_info这个咚咚,很显
然这是一个宏,来自include/linux/h的USB,
482 #定义usb_interface_info(Cl,SC,PR)\
483。match_flags = usb_device_id_match_int_info,binterfaceclass =。
(CL),。
binterfacesubclass = (sc),.binterfaceprotocol = (pr)
每一个usb _ interface _ info就是构造一个struct usb _ device _ id的结构体变量, 回顾一下我们之前
给出的struct usb _ device _ id的定义, 这里实际上就是为其中的四个元素赋了值, 它们是
match _ flags, binterfaceclass, binterfacesubclass, binterfaceprotocol.
match _ flag, 它又是表示什么意思? usb interface _ info这个宏貌似把所有的设 _
备的match _ flag都给设成了usb _ device _ id _ match _ int _ info, 这是为啥? 这个宏来自
include / linux / usb.h,
435 # define usb _ device _ id _ match _ int _ info \
436 (usb _ device _ id _ match _ int _ class |
usb _ device _ i
您可能关注的文档
- oracle hang分析(Oracle挂分析).doc
- oracle to_char&to_date(Oracle to_char和to_date).doc
- oracle 事务控制、数据并发性和一致性(Oracle transaction control, data concurrency, and consistency).doc
- oracle job 语法和时间间隔的设定(The Oracle job syntax and the setting of the time interval).doc
- oracle 几个服务各代表什么作用(Oracle what are the roles of several services).doc
- oracle 删除重复内容(Oracle删除重复内容).doc
- oracle sql中查找和删除重复记录方法(Find and delete duplicate record methods in Oracle SQL).doc
- oracle 最简单的学习笔记,增删改查,plsql基本语法,游标,函数,存储过程的实现(Oracle the simplest learning notes, additions and deletions to change, PLSQL basic syntax, cursors, functions, stored procedures to achieve).doc
- oracle 锁机制42(Oracle锁机制42).doc
- ofdm基本原理及应用(Fundamentals and applications of OFDM).doc
- u盘容量特性须知(U disk capacity notes).doc
- u盘格式化时用什么文件格式好(U-formatted with what file format is good).doc
- v$lock视图理解(V$lock view understanding).doc
- v2.2有声优化补丁说明及使用方法(V2.2 audio optimized patch description and method of use).doc
- vbs 调用中文语音让你电脑听你的命令的实现代码(VBS call Chinese voice, let your computer listen to your commands to achieve the code).doc
- u盘的超级用法(Super disk usage).doc
- vbs语音(VBS speech).doc
- vba for excel range对象(VBA的Excel范围对象).doc
- vb生成不重复的随机数(VB generates random numbers that are not repeated).doc
- vc 编程 两类典型的 lnk2001错误分析及解决方法(VC programming two typical LNK2001 error analysis and solving method).doc
最近下载
- SBT 11185-2017 药品批发企业对供应商管理规范.doc VIP
- 2025年江西交通职业技术学院单招职业适应性测试题库及答案解析.docx VIP
- 护士资格证考前记忆口诀.docx VIP
- 新探索研究生英语(基础级)读写教程季佩英课后习题答案解析.pdf
- 2025内蒙古鄂尔多斯市伊金霍洛旗妇幼保健院婴幼儿照护服务中心招聘6人考试参考试题及答案解析.docx VIP
- 脑机接口行业系列研究之二:从修复大脑到增强人类,十五五政策赋能万亿市场崛起.pptx VIP
- 贵州《城镇园林绿化工程施工及验收规范》.pdf VIP
- 安全文明施工管理体系及保证措施.docx VIP
- 房颤护理教学课件.ppt VIP
- 早孕关爱门诊咨询要点专家共识(2025年版).pptx VIP
原创力文档

文档评论(0)