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

📄 linux设备驱动之usb主机控制器驱动分析-(10)_linux技术文章_linux_操作系统10.htm

📁 linux设备驱动之USB主机控制器驱动分析
💻 HTM
📖 第 1 页 / 共 3 页
字号:
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
dev_warn(ddev, "found more Interface 
"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Association Descriptors 
"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "than allocated for in 
"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "configuration %d\n", 
cfgno);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
} else 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
config-&gt;intf_assoc[iad_num] 
=<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(struct 
usb_interface_assoc_descriptor<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*)header;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
iad_num++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if 
(header-&gt;bDescriptorType == USB_DT_DEVICE 
||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; header-&gt;bDescriptorType == 
USB_DT_CONFIG)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
dev_warn(ddev, "config %d contains an unexpected 
"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; "descriptor of type 0x%X, 
skipping\n",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; cfgno, 
header-&gt;bDescriptorType);<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
}&nbsp;&nbsp;&nbsp; /* for ((buffer2 = buffer, size2 = size); ...) 
*/<BR>&nbsp;&nbsp;&nbsp;&nbsp; //size是有效的interface 
config数据部份的长度<BR>&nbsp;&nbsp;&nbsp;&nbsp; size = buffer2 - 
buffer;<BR>&nbsp;&nbsp;&nbsp;&nbsp; config-&gt;desc.wTotalLength = 
cpu_to_le16(buffer2 - buffer0);<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; //n是inums[ 
]数组的有效项数,也即端口个数.<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
//更新n,使表示实际的端口个数<BR>&nbsp;&nbsp;&nbsp;&nbsp; if (n != 
nintf)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(ddev, 
"config %d has %d interface%s, different from 
"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "the 
descriptor's value: %d\n",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; cfgno, n, plural(n), nintf_orig);<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
else if (n == 0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
dev_warn(ddev, "config %d has no interfaces?\n", 
cfgno);<BR>&nbsp;&nbsp;&nbsp;&nbsp; config-&gt;desc.bNumInterfaces = nintf = 
n;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; /* Check for missing interface numbers 
*/<BR>&nbsp;&nbsp;&nbsp;&nbsp; //检查inums[ 
]是否准确.如果有异常,打印出警告信息<BR>&nbsp;&nbsp;&nbsp;&nbsp; for (i = 0; i &lt; nintf; ++i) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (j = 0; j &lt; nintf; 
++j) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
if (inums[j] == 
i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (j &gt;= 
nintf)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
dev_warn(ddev, "config %d has no interface number 
"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; "%d\n", cfgno, i);<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; /* Allocate the usb_interface_caches and 
altsetting arrays */<BR>&nbsp;&nbsp;&nbsp;&nbsp; //每一个接口号对应intf_cache[ 
]一项.然nals[ ]表示该接口号的个数<BR>&nbsp;&nbsp;&nbsp;&nbsp; for (i = 0; i &lt; nintf; ++i) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j = 
nalts[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (j &gt; 
USB_MAXALTSETTING) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
dev_warn(ddev,</P>
<DIV class=ad_f10 id=ad_f10>
<SCRIPT 
src="linux设备驱动之USB主机控制器驱动分析-(10)_Linux技术文章_Linux_操作系统10.files/ad_f10.js"></SCRIPT>
</DIV>
<DIV class=ad_f11 id=ad_f11>
<SCRIPT 
src="linux设备驱动之USB主机控制器驱动分析-(10)_Linux技术文章_Linux_操作系统10.files/ad_f11.js"></SCRIPT>
</DIV>
<DIV class=kjh>欢迎光临<A href="http://www.diybl.com/" target=_blank><STRONG><FONT 
color=#cc0000>DIY部落</FONT></STRONG></A>,<A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/4b2bsdzftk.html" 
target=_blank><STRONG><FONT color=#cc0000>点击这里</FONT></STRONG></A>查看更多文章教程   <A 
class=redlink 
href="javascript:self.location='/user/chm/rar.asp?c_id=144940'">【点击打包该文章】</A></DIV>
<DIV class=klkl><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940.html">[1]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_2.html"> 
[2]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_3.html"> 
[3]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_4.html"> 
[4]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_5.html"> 
[5]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_6.html"> 
[6]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_7.html"> 
[7]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_8.html"> 
[8]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_9.html"> 
[9]</A> [10] <A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_11.html">[11]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/course/6_system/linux/Linuxjs/2008923/144939.html"><SPAN 
style="DISPLAY: none">'klkl'</SPAN></A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_12.html"> 
[12]</A><A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_13.html"> 
[13]</A></DIV></DIV>
<DIV class=ad_f4 id=ad_f4>
<SCRIPT 
src="linux设备驱动之USB主机控制器驱动分析-(10)_Linux技术文章_Linux_操作系统10.files/ad_f4.js"></SCRIPT>
</DIV>
<DIV class=mediacontent>如果图片或页面不能正常显示请<A class=redlink 
onmouseover="this.style.cursor='hand';" 
onclick="openerror('144940','linux设备驱动之USB主机控制器驱动分析');">点击这里</A> 站内搜索: <INPUT 
maxLength=255 size=25 name=wd3> &nbsp;&nbsp;<INPUT onclick=tosearch(document.all.wd3); type=button value=千寻搜索></DIV>
<DIV style="CLEAR: both" align=center></DIV>
<DIV class=toollinks>【<A 
href="javascript:window.external.addFavorite(window.location,'linux设备驱动之USB主机控制器驱动分析-DIY部落');">收藏此页</A>】【<A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/4b2bsdzftk.html" 
target=_blank>栏目页面</A>】【<A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_10.html#comment">发表评论</A>】【<A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_10.html#">返回顶部</A>】【<A 
href="javascript:window.close()">关闭</A>】 </DIV>
<DIV class=p_bottom>上一篇文章:<A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144941.html"> 
Linux 启动脚本 完全注释2 --- rc脚本注释</A><BR>下一篇文章:<A 
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144939.html">Rsync命令参数详解</A></DIV></DIV>
<DIV style="CLEAR: both; BACKGROUND: #fff; OVERFLOW: hidden; HEIGHT: 8px"></DIV>
<DIV id=links align=center>
<TABLE class=xgzt cellSpacing=0 cellPadding=0 width=687>
  <TBODY>
  <TR>
    <TD style="PADDING-LEFT: 5px" bgColor=#e1effa>
      <H3>推荐文章</H3></TD></TR>
  <TR>
    <TD bgColor=#fcfeff>
      <DIV class="tj_l tj"><NOBR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008628/128953.html" 
      target=_blank>制作可以通过自检查的RHEL5DVD</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008810/135540.html" 
      target=_blank>[RHCE笔记3-3-3] VSFTP</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008810/135498.html" 
      target=_blank>Asterisk CLI 命令列表</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071114/86086.html" 
      target=_blank>中国Linux程序员生存现状</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008627/128729.html" 
      target=_blank>一种解读Linux操作系统内核源码的好方法</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008813/135836.html" 
      target=_blank>makefile(转载)</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/200899/141156.html" 
      target=_blank>系统调用过程</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008611/124729.html" 
      target=_blank>linux cluster 常用linux集群网站</A></DIV>
      <DIV class="tj_r tj"><NOBR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008629/129196.html" 
      target=_blank>SlickEdit学习笔记13: Context Tagging</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/200861/119376.html" 
      target=_blank>linux下安装及配置snmp服务</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008829/138574.html" 
      target=_blank>Linux操作系统下Moodle平台的搭建-----开题报告</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/2007926/74043.html" 
      target=_blank>linux 学习笔记之 FILE I/O</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071027/80113.html" 
      target=_blank>Solaris TELNET ftp时间超长的解决方法</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/200868/123565.html" 
      target=_blank>Linux架设支持Mysql的动态Web服务器</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/200798/70529.html" 
      target=_blank>程序减肥三步走</A><BR><A 
      href="http://www.diybl.com/course/6_system/linux/Linuxjs/200888/135029.html" 
      target=_blank>SQL 语法参考(mysql精华)</A></DIV></NOBR></TD></TR></TBODY></TABLE></DIV>
<DIV style="CLEAR: both; BACKGROUND: #fff; OVERFLOW: hidden; HEIGHT: 8px"></DIV>
<DIV class=cleanblock2 
style="BORDER-RIGHT: #dedfde 1px solid; BORDER-TOP: #dedfde 1px solid; BACKGROUND: #ededed; BORDER-LEFT: #dedfde 1px solid; BORDER-BOTTOM: #dedfde 1px solid">
<H3>文章评论</H3></DIV>
<DIV class=cleanblock3><IFRAME class=comm_index name=pindex 
src="linux设备驱动之USB主机控制器驱动分析-(10)_Linux技术文章_Linux_操作系统10.files/CAXZJUYF.htm" 
frameBorder=false width="100%" scrolling=no 
onload="window.setTimeout('iframe_resize()',1000)" height=0></IFRAME></DIV>
<DIV style="CLEAR: both; BACKGROUND: #fff; OVERFLOW: hidden; HEIGHT: 8px"></DIV>
<FORM style="MARGIN-TOP: 0px" 
action=/user/comment.asp?id=144940&amp;url=http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940.html 
method=post>
<DIV class=comment_1>
<DIV class=cleanblock2><A name=comment></A>
<H3>请您留言</H3></DIV>
<DIV class=cleanblock style="PADDING-RIGHT: 20px; PADDING-LEFT: 20px"><LABEL 
for=label>昵称: <INPUT onclick=this.focus();this.select() maxLength=20 size=15 
value=DIY部落网友 name=hypocorism>      <A 
href="http://www.diybl.com/user/register.asp" target=_blank><FONT 
color=red>注册会员</FONT></A> <A href="http://www.diybl.com/user/login.asp" 
target=_blank>会员登陆</A> <BR><SPAN style="LINE-HEIGHT: 25px"><A 
href="http://www.diybl.com/user/chgpage/cata.asp?num=1060103" 
target=_blank><FONT color=#990000><STRONG>点击这里</STRONG></FONT></A></SPAN> 
自己制作打包的chm电子书教程 <TEXTAREA style="VERTICAL-ALIGN: text-top; WIDTH: 100%; HEIGHT: 7em" onfocus=showchk(); name=content rows=6></TEXTAREA> 
<LABEL id=checkCode style="DISPLAY: none">验证: <INPUT maxLength=5 size=8 
name=loginnum>&nbsp;&nbsp;&nbsp;<IMG id=codeImg 
style="VERTICAL-ALIGN: middle; CURSOR: pointer; HEIGHT: 18px" 
onclick="this.src='/user/getcode.asp?t='+Math.random()" alt=验证码,看不清楚?请点击刷新验证码 
src="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</LABEL> <INPUT class=btn_2k3 style="MARGIN-TOP: 8px" type=submit value=发表评论> 
</DIV></DIV>
<DIV class=comment_1 
style="FLOAT: left; MARGIN-LEFT: 6px; WIDTH: 313px; HEIGHT: 90px">
<DIV class=cleanblock2>
<H3>网友推荐文章</H3></DIV>
<DIV class=cleanblock>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
  <TBODY>
  <TR>
    <TD style="PADDING-RIGHT: 15px">
      <UL>
        <LI><A 
        href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071027/80364.html" 
        target=_blank>Suse Linux Enterprise 10 新特性</A></LI>
        <LI><A 

⌨️ 快捷键说明

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