亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ch14s07.html

?? Linux設(shè)備驅(qū)動經(jīng)典
?? HTML
?? 第 1 頁 / 共 2 頁
字號:
<html xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>14.7.&#160;熱插拔-Linux設(shè)備驅(qū)動第三版(中文版)</title><meta name="description" content="驅(qū)動開發(fā)" /><meta name="keywords" content="Linux設(shè)備驅(qū)動,中文版,第三版,ldd,linux device driver,驅(qū)動開發(fā),電子版,程序設(shè)計(jì),軟件開發(fā),開發(fā)頻道" /><meta name="verify-v1" content="5asbXwkS/Vv5OdJbK3Ix0X8osxBUX9hutPyUxoubhes=" /><link rel="stylesheet" href="docbook.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.69.0"><link rel="start" href="index.html" title="Linux 設(shè)備驅(qū)動 Edition 3"><link rel="up" href="ch14.html" title="第&#160;14&#160;章&#160;Linux 設(shè)備模型"><link rel="prev" href="ch14s06.html" title="14.6.&#160;集成起來"><link rel="next" href="ch14s08.html" title="14.8.&#160;處理固件"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">14.7.&#160;熱插拔</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch14s06.html">上一頁</a>&#160;</td><th width="60%" align="center">第&#160;14&#160;章&#160;Linux 設(shè)備模型</th><td width="20%" align="right">&#160;<a accesskey="n" href="ch14s08.html">下一頁</a></td></tr></table><hr></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Hotplug.sect1"></a>14.7.&#160;熱插拔</h2></div></div></div><p>有 2 個(gè)不同方法來看熱插拔. 內(nèi)核看待熱插拔為硬件, 內(nèi)核和內(nèi)核驅(qū)動之間的交互. 用戶看待熱插拔是內(nèi)核和用戶空間的通過稱為 /sbin/hotplug 的程序的交互. 這個(gè)程序被內(nèi)核調(diào)用, 當(dāng)它想通知用戶空間某種熱插拔事件剛剛在內(nèi)核中發(fā)生.</p><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="DynamicDevices.sect2"></a>14.7.1.&#160;動態(tài)設(shè)備</h3></div></div></div><p>術(shù)語"熱插拔"最普遍使用的意義產(chǎn)生于當(dāng)討論這樣的事實(shí)時(shí), 幾乎所有的計(jì)算機(jī)系統(tǒng)現(xiàn)在能夠處理當(dāng)系統(tǒng)有電時(shí)設(shè)備的出現(xiàn)或消失. 這非常不同于只是幾年前的計(jì)算機(jī)系統(tǒng), 那時(shí)程序員知道他們只需要在啟動時(shí)掃描所有的設(shè)備, 并且他們從不必?fù)?dān)心他們的設(shè)備消失直到整個(gè)機(jī)器被關(guān)電. 現(xiàn)在, 隨著 USB 的出現(xiàn), CardBus, PCMCIA, IEEE1394, 和 PCI 熱插拔控制器, Linux 內(nèi)核需要能夠可靠地運(yùn)行不管什么硬件從系統(tǒng)中增加或去除. 這產(chǎn)生了一個(gè)額外的負(fù)擔(dān)給設(shè)備驅(qū)動作者, 因?yàn)楝F(xiàn)在他們必須一直處理一個(gè)沒有任何通知而突然從地下冒出來的設(shè)備.</p><p>每個(gè)不同的總線類型以不同方式處理一個(gè)設(shè)備的消失. 例如, 當(dāng)一個(gè) PCI , CardBus, 或者 PCMCIA 設(shè)備從系統(tǒng)中去除, 在驅(qū)動通過它的去除函數(shù)被通知之前常常是一會兒. 在發(fā)生這個(gè)前, 所有的從 PCI 的讀返回所有的位集合. 這意味著驅(qū)動需要一直檢查它們從 PCI 總線讀取的值并且能夠正確處理 0xff 值.</p><p>這個(gè)的一個(gè)例子可在 drivers/usb/host/ehci-hcd.c 驅(qū)動中見到, 它是一個(gè) PCI 驅(qū)動給一個(gè) UBS 2.0(高速)控制卡. 它有下面的代碼在它的主握手循環(huán)中來探測是否控制塊已經(jīng)從系統(tǒng)中去除.</p><pre class="programlisting">result = readl(ptr);if (result == ~(u32)0)  /* card removed */ return -ENODEV; </pre><p>對于 USB 驅(qū)動, 當(dāng)一個(gè) USB 驅(qū)動被綁定到的設(shè)備被從系統(tǒng)中去除, 任何掛起的已被提交給設(shè)備的 urbs 以錯(cuò)誤 -ENODEV 失敗. 如果發(fā)生這個(gè)情況, 驅(qū)動需要識別這個(gè)錯(cuò)誤并且正確清理任何掛起的 I/O .</p><p>可熱插拔的設(shè)備不只限于傳統(tǒng)的設(shè)備, 例如鼠標(biāo), 鍵盤, 和網(wǎng)卡. 有大量的系統(tǒng)現(xiàn)在支持整個(gè) CPU 和內(nèi)存條的移出. 幸運(yùn)地, Linux 內(nèi)核正確處理這些核心"系統(tǒng)"設(shè)備的加減, 以至于單個(gè)設(shè)備驅(qū)動不需要注意這些事情.</p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="ThesbinhotplugUtility.sect2"></a>14.7.2.&#160;/sbin/hotplug 工具</h3></div></div></div><p>如同本章中前面提過的, 無論何時(shí)一個(gè)設(shè)備從系統(tǒng)中增刪, 都產(chǎn)生一個(gè)"熱插拔事件". 這意味著內(nèi)核調(diào)用用戶空間程序 /sbin/hotplug.  這個(gè)程序典型地是一個(gè)非常小的 bash 腳本, 只傳遞執(zhí)行給一系列其他的位于 /etc/hot-plug.d/ 目錄樹的程序. 對于大部分的 Linux 發(fā)布, 這個(gè)腳本看來如下:</p><pre class="screen">DIR="/etc/hotplug.d"for I in "${DIR}/$1/"*.hotplug "${DIR}/"default/*.hotplug ; do if [ -f $I ]; then test -x $I &amp;&amp; $I $1 ; fidoneexit 1</pre><p>換句話說, 這個(gè)腳本搜索所有的有 .hotplug 后綴的可能對這個(gè)事件感興趣的程序并調(diào)用它們, 傳遞給它們許多不同的環(huán)境變量, 這些環(huán)境變量已經(jīng)被內(nèi)核設(shè)置. 更多關(guān)于 /sbin/hotplug 腳本如何工作的細(xì)節(jié)可在程序的注釋中找到, 以及在 hotplug(8)手冊頁中.</p><p>如同前面提到的, /sbin/hotplug 被調(diào)用無論何時(shí)一個(gè) kobject 被創(chuàng)建或銷毀. 熱插拔程序被用一個(gè)提供事件名子的單個(gè)命令行參數(shù)調(diào)用. 核心內(nèi)核和涉及到的特定子系統(tǒng)也設(shè)定一系列帶有關(guān)于發(fā)生了什么的信息的環(huán)境變量(下面描述). 這些變量被熱插拔程序使用來判定剛剛在內(nèi)核發(fā)生了什么, 以及是否有任何特定的動作應(yīng)當(dāng)采取.</p><p>傳遞給 /sbin/hotplug 的命令行參數(shù)是關(guān)聯(lián)這個(gè)熱插拔事件的名子, 如同分配給 kobject 的 kset 所決定的. 這個(gè)名子可通過一個(gè)對屬于本章前面描述過的 kset 的 hotplug_ops 結(jié)構(gòu)的 name 函數(shù)的調(diào)用來設(shè)定; 如果那個(gè)函數(shù)不存在或者從未被調(diào)用, 名子是 kset 自身的名子.</p><p>一直為 /sbin/hotplug 設(shè)定的缺省的環(huán)境變量是:</p><div class="variablelist"><dl><dt><span class="term"><span>ACTION </span></span></dt><dd><p>這個(gè)字符串 add 或 remove, 只根據(jù)是否這個(gè)對象是被創(chuàng)建或者銷毀.</p></dd><dt><span class="term"><span>DEVPATH </span></span></dt><dd><p>一個(gè)目錄路徑, 在 sysfs 文件系統(tǒng)中, 它指向在被創(chuàng)建或銷毀的 kobject. 注意 sysfs 文件系統(tǒng)的加載點(diǎn)不是添加到這路徑, 因此是由用戶空間程序來決定這個(gè). </p></dd><dt><span class="term"><span>SEQNUM </span></span></dt><dd><p>這個(gè)熱插拔事件的順序號. 順序號是一個(gè) 64-位 數(shù), 它每次產(chǎn)生熱插拔事件都遞增. 這允許用戶空間以內(nèi)核產(chǎn)生它們的順序來排序熱插拔事件, 因?yàn)閷σ粋€(gè)用戶空間程序可能亂序運(yùn)行.</p></dd><dt><span class="term"><span>SUBSYSTEM </span></span></dt><dd><p>同樣的字符串作為前面描述的命令行參數(shù)傳遞.</p></dd></dl></div><p>許多不同的總線子系統(tǒng)都添加它們自己的環(huán)境變量到 /sbin/hotplug 調(diào)用中, 當(dāng)關(guān)聯(lián)到總線的設(shè)備被添加或從系統(tǒng)中去除. 它們在它們的熱插拔回調(diào)中做這個(gè), 這個(gè)回調(diào)在分配給它們的總線(如同在"熱插拔操作"一節(jié)中描述的)的 struct kset_hotplug_ops 中指定. 這允許用戶空間能夠自動加載必要的可能需要來控制這個(gè)被總線發(fā)現(xiàn)的設(shè)備的模塊. 這里是一個(gè)不同總線類型的列表以及它們添加到 /sbin/hotplug 調(diào)用中的環(huán)境變量. </p><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="IEEE1394FireWire.sect3"></a>14.7.2.1.&#160;IEEE1394(火線)</h4></div></div></div><p>任何在 IEEE1394 總線, 也是火線, 上的設(shè)備, 由 /sbin/hotplug 參數(shù)名和 SUBSYSTEM 環(huán)境變量設(shè)置為值 ieee1394. ieee1394 子系統(tǒng)也總是添加下列 4 個(gè)環(huán)境變量:</p><div class="variablelist"><dl><dt><span class="term"><span>VENDOR_ID </span></span></dt><dd><p>IEEE1394 的 24-位 供應(yīng)者 ID. </p></dd><dt><span class="term"><span>MODEL_ID </span></span></dt><dd><p>IEEE1394 的 24-位型號 ID.</p></dd><dt><span class="term"><span>GUID </span></span></dt><dd><p>設(shè)備的 64-位 GUID.</p></dd><dt><span class="term"><span>SPECIFIER_ID </span></span></dt><dd><p>24-位值, 指定設(shè)備的協(xié)議規(guī)格的擁有者.</p></dd><dt><span class="term"><span>VERSION </span></span></dt><dd><p>指定設(shè)備協(xié)議規(guī)格的版本的值</p></dd></dl></div></div><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="Networking.sect3"></a>14.7.2.2.&#160;網(wǎng)絡(luò)</h4></div></div></div><p>所有的網(wǎng)絡(luò)設(shè)備都創(chuàng)建一個(gè)熱插拔事件, 當(dāng)設(shè)備注冊或者注銷在內(nèi)核. /sbin/hotplug 調(diào)用有參數(shù) name 和 SUBSYSTEM 環(huán)境變量設(shè)置為 net, 并且只添加下列環(huán)境變量:</p><div class="variablelist"><dl><dt><span class="term"><span>INTERFACE </span></span></dt><dd><p>已經(jīng)從內(nèi)核注冊或注銷的接口的名子. 這個(gè)的例子是 lo 和 eth0.</p></dd></dl></div></div><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="PCI.sect3"></a>14.7.2.3.&#160;PCI 總線</h4></div></div></div><p>任何在 PCI 總線上的設(shè)備有參數(shù) name 和 SUBSYSTEM 環(huán)境變量設(shè)置為值 pci. PCI 子系統(tǒng)也一直添加下面 4 個(gè)環(huán)境變量:</p><div class="variablelist"><dl><dt><span class="term"><span>PCI_CLASS </span></span></dt><dd><p>設(shè)備的 PCI 類號, 16 進(jìn)制.</p></dd><dt><span class="term"><span>PCI_ID </span></span></dt><dd><p>設(shè)備的 PCI 供應(yīng)商和設(shè)備 ID, 16進(jìn)制, 結(jié)合成這樣的格式 供應(yīng)者:設(shè)備.</p></dd><dt><span class="term"><span>PCI_SUBSYS_ID </span></span></dt><dd><p>PCI 子系統(tǒng)供應(yīng)商和子系統(tǒng)設(shè)備 ID, 以 子系統(tǒng)供應(yīng)者:子系統(tǒng)設(shè)備 的格式結(jié)合.</p></dd><dt><span class="term"><span>PCI_SLOT_NAME </span></span></dt><dd><p>PCI 插口"名", 內(nèi)核給予這個(gè)設(shè)備的. 它以這樣的格式 域:總線:插口:功能. 一個(gè)例子可能是: 0000:00:0d.0.</p></dd></dl></div></div><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="Input.sect3"></a>14.7.2.4.&#160;輸入</h4></div></div></div><p>對所有的輸入設(shè)備(鼠標(biāo), 鍵盤, 游戲桿, 等等), 一個(gè)熱插拔事件當(dāng)設(shè)備從內(nèi)核增減時(shí)產(chǎn)生. /sbin/hotplug 參數(shù)和 SUBSYSTEM 環(huán)境變量被設(shè)置為值 input. 輸入子系統(tǒng)也總是添加下面的環(huán)境變量:</p><div class="variablelist"><dl><dt><span class="term"><span>PRODUCT </span></span></dt><dd><p>一個(gè)多值字符串, 用 16 進(jìn)制列出值沒有前導(dǎo) 0. 它的格式是 bustype:vender:product:version.</p></dd></dl></div><p>下列環(huán)境變量可能出現(xiàn), 如果設(shè)備支持它:</p><div class="variablelist"><dl><dt><span class="term"><span>NAME </span></span></dt><dd><p>輸入設(shè)備的名子, 如同設(shè)備給定的.</p></dd>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人教育av在线| 国产精一品亚洲二区在线视频| 午夜一区二区三区在线观看| 91精品国产色综合久久ai换脸| 国产精品一区二区免费不卡 | 韩国午夜理伦三级不卡影院| 亚洲三级电影网站| 欧美一级久久久久久久大片| 在线观看欧美精品| 成人黄色在线网站| 极品少妇xxxx精品少妇| 亚洲电影视频在线| 亚洲女同女同女同女同女同69| xnxx国产精品| 精品视频色一区| 成人午夜精品在线| 国产一区二区三区黄视频| 天天做天天摸天天爽国产一区 | 亚洲高清视频中文字幕| 国产日产亚洲精品系列| 日韩精品中文字幕一区二区三区| 在线视频国内自拍亚洲视频| 国产成人欧美日韩在线电影| 美女视频免费一区| 日韩av网站在线观看| 亚洲国产精品久久人人爱| 亚洲日本va在线观看| 久久久久久久久蜜桃| 欧美va亚洲va香蕉在线 | 国产精品丝袜91| 日韩欧美电影一区| 在线成人午夜影院| 精品视频在线免费| 欧美在线一区二区三区| 色综合欧美在线视频区| 国产精品影视天天线| 麻豆精品新av中文字幕| 日韩 欧美一区二区三区| 天堂在线亚洲视频| 日韩成人一级大片| 久久99国产精品麻豆| 激情欧美一区二区三区在线观看| 激情综合网激情| 国产一区二区免费视频| 国产一区二区精品久久91| 国产成人鲁色资源国产91色综 | 日韩亚洲欧美高清| 欧美精品视频www在线观看 | 欧美私模裸体表演在线观看| 91福利视频网站| 欧美综合一区二区三区| 欧美色国产精品| 欧美一区二区三区婷婷月色 | 欧美精品一区二区三区一线天视频| 日韩免费看的电影| 国产欧美日韩另类一区| 亚洲人快播电影网| 亚洲高清视频的网址| 奇米精品一区二区三区在线观看| 精品一区二区av| 成人午夜电影网站| 欧美在线色视频| 欧美成人video| 久久精品日产第一区二区三区高清版 | 视频在线观看一区二区三区| 亚洲已满18点击进入久久| 视频一区免费在线观看| 亚洲成人动漫在线免费观看| 玉足女爽爽91| 蜜臀久久久99精品久久久久久| 国产一区二区三区精品视频| 91浏览器在线视频| 日韩三级在线免费观看| 国产精品素人一区二区| 亚洲国产aⅴ成人精品无吗| 精品一区二区三区日韩| 93久久精品日日躁夜夜躁欧美| 欧美午夜寂寞影院| 久久久久久影视| 一区二区三区欧美| 久88久久88久久久| 97久久精品人人爽人人爽蜜臀| 日韩一区二区不卡| 综合色天天鬼久久鬼色| 日本美女一区二区三区| a亚洲天堂av| 欧美va亚洲va| 伊人一区二区三区| 日韩黄色免费电影| 99在线精品一区二区三区| 日韩一区二区影院| 亚洲精品久久久蜜桃| 久久er精品视频| 欧美亚洲综合网| 中文字幕免费不卡在线| 奇米影视一区二区三区小说| 99视频超级精品| 国产亚洲精品aa| 日韩精品1区2区3区| 99久久免费视频.com| 久久综合色8888| 香蕉av福利精品导航| 成人一二三区视频| 日韩一区二区三区电影在线观看| 国产精品欧美久久久久无广告 | 高清不卡在线观看| 欧美一级精品大片| 亚洲在线成人精品| 成人白浆超碰人人人人| 精品国产一区久久| 午夜精品福利一区二区蜜股av| 国产精品一二二区| 欧美成人a视频| 日本伊人精品一区二区三区观看方式| av在线一区二区三区| 欧美精品一区男女天堂| 蜜桃视频一区二区三区在线观看| 在线免费观看日韩欧美| 中文字幕在线不卡国产视频| 国产成人av资源| 国产欧美精品一区二区色综合朱莉| 久久av资源站| 欧美日韩久久久| 亚洲色欲色欲www在线观看| 成人一区二区三区视频在线观看| 久久久久久久免费视频了| 精品一区二区三区欧美| 精品粉嫩超白一线天av| 久久9热精品视频| 日韩三区在线观看| 日本不卡高清视频| 日韩欧美色综合网站| 亚洲天堂av一区| 99久久精品久久久久久清纯| 国产精品福利一区二区三区| 99视频精品在线| 一区二区三区国产精华| 在线免费精品视频| 婷婷久久综合九色综合绿巨人| 成人国产视频在线观看| 国产精品午夜久久| 91在线小视频| 亚洲午夜电影网| 欧美老年两性高潮| 老司机午夜精品| 国产欧美综合在线观看第十页| 成人黄色综合网站| 亚洲综合在线观看视频| 欧美日韩国产精品成人| 男人操女人的视频在线观看欧美| 日韩美女视频一区二区在线观看| 韩国精品主播一区二区在线观看| 久久精品免视看| 91视频免费播放| 亚洲精品国产成人久久av盗摄| 欧美日韩国产精品成人| 精品一区二区在线免费观看| 国产偷v国产偷v亚洲高清| 99精品欧美一区二区三区综合在线| 亚洲激情第一区| 日韩欧美一卡二卡| 成人免费视频免费观看| 亚洲综合色视频| 精品三级在线观看| 成人国产精品免费观看视频| 亚洲综合一区二区三区| 日韩一区二区三区精品视频| 国产jizzjizz一区二区| 亚洲中国最大av网站| 精品国偷自产国产一区| 不卡一区在线观看| 日韩在线一区二区三区| 国产亚洲va综合人人澡精品| 日本高清免费不卡视频| 久久精品久久99精品久久| 国产精品久久精品日日| 欧美另类变人与禽xxxxx| 国产精品一区二区三区网站| 亚洲一区二区三区在线| 精品久久一二三区| 91亚洲永久精品| 国内久久精品视频| 亚洲一区二区三区三| 国产午夜亚洲精品理论片色戒| 欧美图片一区二区三区| 国产99精品在线观看| 日韩精品高清不卡| 亚洲欧洲中文日韩久久av乱码| 欧美成人女星排行榜| 色吊一区二区三区| 国产999精品久久久久久| 五月激情综合网| 中文字幕中文字幕一区二区| 日韩三级视频中文字幕| 在线观看国产一区二区| 从欧美一区二区三区| 另类成人小视频在线| 亚洲国产一区视频| 亚洲特黄一级片| 日本一区二区三区在线不卡|