?? linux設(shè)備驅(qū)動(dòng)之usb主機(jī)控制器驅(qū)動(dòng)分析-(10)_linux技術(shù)文章_linux_操作系統(tǒng)10.htm
字號(hào):
{<BR>
dev_warn(ddev, "found more Interface
"<BR>
"Association Descriptors
"<BR>
"than allocated for in
"<BR>
"configuration %d\n",
cfgno);<BR>
} else
{<BR>
config->intf_assoc[iad_num]
=<BR>
(struct
usb_interface_assoc_descriptor<BR>
*)header;<BR>
iad_num++;<BR>
}<BR> <BR> } else if
(header->bDescriptorType == USB_DT_DEVICE
||<BR>
header->bDescriptorType ==
USB_DT_CONFIG)<BR>
dev_warn(ddev, "config %d contains an unexpected
"<BR>
"descriptor of type 0x%X,
skipping\n",<BR>
cfgno,
header->bDescriptorType);<BR> <BR>
} /* for ((buffer2 = buffer, size2 = size); ...)
*/<BR> //size是有效的interface
config數(shù)據(jù)部份的長(zhǎng)度<BR> size = buffer2 -
buffer;<BR> config->desc.wTotalLength =
cpu_to_le16(buffer2 - buffer0);<BR> <BR> //n是inums[
]數(shù)組的有效項(xiàng)數(shù),也即端口個(gè)數(shù).<BR>
//更新n,使表示實(shí)際的端口個(gè)數(shù)<BR> if (n !=
nintf)<BR> dev_warn(ddev,
"config %d has %d interface%s, different from
"<BR> "the
descriptor's value: %d\n",<BR>
cfgno, n, plural(n), nintf_orig);<BR>
else if (n == 0)<BR>
dev_warn(ddev, "config %d has no interfaces?\n",
cfgno);<BR> config->desc.bNumInterfaces = nintf =
n;<BR> <BR> /* Check for missing interface numbers
*/<BR> //檢查inums[
]是否準(zhǔn)確.如果有異常,打印出警告信息<BR> for (i = 0; i < nintf; ++i)
{<BR> for (j = 0; j < nintf;
++j)
{<BR>
if (inums[j] ==
i)<BR>
break;<BR>
}<BR> if (j >=
nintf)<BR>
dev_warn(ddev, "config %d has no interface number
"<BR>
"%d\n", cfgno, i);<BR>
}<BR> <BR> /* Allocate the usb_interface_caches and
altsetting arrays */<BR> //每一個(gè)接口號(hào)對(duì)應(yīng)intf_cache[
]一項(xiàng).然nals[ ]表示該接口號(hào)的個(gè)數(shù)<BR> for (i = 0; i < nintf; ++i)
{<BR> j =
nalts[i];<BR>
//<BR> if (j >
USB_MAXALTSETTING)
{<BR>
dev_warn(ddev,</P>
<DIV class=ad_f10 id=ad_f10>
<SCRIPT
src="linux設(shè)備驅(qū)動(dòng)之USB主機(jī)控制器驅(qū)動(dòng)分析-(10)_Linux技術(shù)文章_Linux_操作系統(tǒng)10.files/ad_f10.js"></SCRIPT>
</DIV>
<DIV class=ad_f11 id=ad_f11>
<SCRIPT
src="linux設(shè)備驅(qū)動(dòng)之USB主機(jī)控制器驅(qū)動(dòng)分析-(10)_Linux技術(shù)文章_Linux_操作系統(tǒng)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>點(diǎn)擊這里</FONT></STRONG></A>查看更多文章教程 <A
class=redlink
href="javascript:self.location='/user/chm/rar.asp?c_id=144940'">【點(diǎn)擊打包該文章】</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設(shè)備驅(qū)動(dòng)之USB主機(jī)控制器驅(qū)動(dòng)分析-(10)_Linux技術(shù)文章_Linux_操作系統(tǒng)10.files/ad_f4.js"></SCRIPT>
</DIV>
<DIV class=mediacontent>如果圖片或頁面不能正常顯示請(qǐng)<A class=redlink
onmouseover="this.style.cursor='hand';"
onclick="openerror('144940','linux設(shè)備驅(qū)動(dòng)之USB主機(jī)控制器驅(qū)動(dòng)分析');">點(diǎn)擊這里</A> 站內(nèi)搜索: <INPUT
maxLength=255 size=25 name=wd3> <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設(shè)備驅(qū)動(dòng)之USB主機(jī)控制器驅(qū)動(dòng)分析-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">發(fā)表評(píng)論</A>】【<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_10.html#">返回頂部</A>】【<A
href="javascript:window.close()">關(guān)閉</A>】 </DIV>
<DIV class=p_bottom>上一篇文章:<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144941.html">
Linux 啟動(dòng)腳本 完全注釋2 --- rc腳本注釋</A><BR>下一篇文章:<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144939.html">Rsync命令參數(shù)詳解</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>中國(guó)Linux程序員生存現(xiàn)狀</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008627/128729.html"
target=_blank>一種解讀Linux操作系統(tǒng)內(nèi)核源碼的好方法</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008813/135836.html"
target=_blank>makefile(轉(zhuǎn)載)</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200899/141156.html"
target=_blank>系統(tǒng)調(diào)用過程</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008611/124729.html"
target=_blank>linux cluster 常用linux集群網(wǎng)站</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學(xué)習(xí)筆記13: Context Tagging</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200861/119376.html"
target=_blank>linux下安裝及配置snmp服務(wù)</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008829/138574.html"
target=_blank>Linux操作系統(tǒng)下Moodle平臺(tái)的搭建-----開題報(bào)告</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2007926/74043.html"
target=_blank>linux 學(xué)習(xí)筆記之 FILE I/O</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071027/80113.html"
target=_blank>Solaris TELNET ftp時(shí)間超長(zhǎng)的解決方法</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200868/123565.html"
target=_blank>Linux架設(shè)支持Mysql的動(dòng)態(tài)Web服務(wù)器</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>文章評(píng)論</H3></DIV>
<DIV class=cleanblock3><IFRAME class=comm_index name=pindex
src="linux設(shè)備驅(qū)動(dòng)之USB主機(jī)控制器驅(qū)動(dòng)分析-(10)_Linux技術(shù)文章_Linux_操作系統(tǒng)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&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>請(qǐng)您留言</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部落網(wǎng)友 name=hypocorism> <A
href="http://www.diybl.com/user/register.asp" target=_blank><FONT
color=red>注冊(cè)會(huì)員</FONT></A> <A href="http://www.diybl.com/user/login.asp"
target=_blank>會(huì)員登陸</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>點(diǎn)擊這里</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">驗(yàn)證: <INPUT maxLength=5 size=8
name=loginnum> <IMG id=codeImg
style="VERTICAL-ALIGN: middle; CURSOR: pointer; HEIGHT: 18px"
onclick="this.src='/user/getcode.asp?t='+Math.random()" alt=驗(yàn)證碼,看不清楚?請(qǐng)點(diǎn)擊刷新驗(yàn)證碼
src=""> </LABEL> <INPUT class=btn_2k3 style="MARGIN-TOP: 8px" type=submit value=發(fā)表評(píng)論>
</DIV></DIV>
<DIV class=comment_1
style="FLOAT: left; MARGIN-LEFT: 6px; WIDTH: 313px; HEIGHT: 90px">
<DIV class=cleanblock2>
<H3>網(wǎng)友推薦文章</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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -