国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法

      文檔序號(hào):6535129閱讀:615來源:國知局
      一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法
      【專利摘要】本發(fā)明涉及一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法,在Linux內(nèi)核初始化階段,USB總線注冊(cè)各個(gè)驅(qū)動(dòng)并掃描所有掛載在USB總線上的設(shè)備,判斷驅(qū)動(dòng)是否與該設(shè)備匹配,若匹配,則繼續(xù)判斷該設(shè)備的廠商ID是否為3G-USB網(wǎng)卡設(shè)備的廠商ID,若不是,則將該設(shè)備初始化;若是,則將設(shè)備識(shí)別為3G-USB網(wǎng)卡,保存3G-USB網(wǎng)卡信息并放棄對(duì)3G-USB網(wǎng)卡的初始化,且用戶態(tài)獲取3G-USB網(wǎng)卡信息,并根據(jù)3G-USB網(wǎng)卡信息加載對(duì)應(yīng)的3G-USB網(wǎng)卡驅(qū)動(dòng)。本發(fā)明將3G-USB網(wǎng)卡的自動(dòng)探測(cè)和及驅(qū)動(dòng)加載均放在用戶態(tài),來消除內(nèi)核態(tài)驅(qū)動(dòng)帶來的系統(tǒng)調(diào)用及數(shù)據(jù)包拷貝的高額開銷,同時(shí),用戶態(tài)驅(qū)動(dòng)提供了非常強(qiáng)悍的調(diào)試能力,能將驅(qū)動(dòng)開發(fā)人員在Linux下繁瑣的調(diào)試作業(yè)中解放出來,進(jìn)一步提高開發(fā)效率。
      【專利說明】—種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法。
      【背景技術(shù)】
      [0002]隨著技術(shù)的不斷發(fā)展,多核時(shí)代初期極大緩解了 CPU資源在配備IOGE或更多網(wǎng)卡的網(wǎng)絡(luò)包處理設(shè)備上又顯得力不從心,究其原因,是由于報(bào)文的大量沖擊引發(fā)的大量中斷消耗了一定的CPU資源,特別是X86體系結(jié)構(gòu);Linux操作系統(tǒng)的內(nèi)核態(tài)到用戶態(tài)的數(shù)據(jù)拷貝損失的性能也將成為包處理設(shè)備無法充分利用多核CPU的攔路虎;因此,如果消除內(nèi)核態(tài)驅(qū)動(dòng)帶來的系統(tǒng)調(diào)用及數(shù)據(jù)包拷貝的高額開銷,成為了業(yè)內(nèi)的主要研究問題。

      【發(fā)明內(nèi)容】

      [0003]本發(fā)明所要解決的技術(shù)問題是如何能夠減少對(duì)Linux內(nèi)核的修改,對(duì)用戶態(tài)3G-USB網(wǎng)卡驅(qū)動(dòng)實(shí)現(xiàn)如Linux內(nèi)核一樣的自動(dòng)探測(cè)和加載。
      [0004]為此目的,本發(fā)明提出了一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法,所述方法具體包括:
      [0005]S1:在Linux內(nèi)核初始化階段,USB總線注冊(cè)各個(gè)驅(qū)動(dòng)并掃描所有掛載在USB總線上的設(shè)備;
      [0006]S2:所述各個(gè)驅(qū)動(dòng)分別遍歷所有掛載在所述USB總線上的設(shè)備,并判斷所述驅(qū)動(dòng)是否與該設(shè)備匹配,若是,則執(zhí)行步驟S3,若不是,則返回步驟SI ;
      [0007]S3:判斷所述設(shè)備的廠商ID是否為3G-USB網(wǎng)卡設(shè)備的廠商ID,若不是,則將該設(shè)備初始化,若是,則執(zhí)行步驟S4 ;
      [0008]S4:將所述設(shè)備識(shí)別為3G-USB網(wǎng)卡,保存所述3G-USB網(wǎng)卡信息并放棄對(duì)所述3G-USB網(wǎng)卡的初始化;
      [0009]S5:用戶態(tài)獲取所述3G-USB網(wǎng)卡信息,并根據(jù)所述3G-USB網(wǎng)卡信息加載對(duì)應(yīng)的3G-USB網(wǎng)卡驅(qū)動(dòng)。
      [0010]優(yōu)選的,所述步驟S2進(jìn)一步包括:
      [0011 ] 所述各個(gè)驅(qū)動(dòng)分別遍歷所有掛載在所述USB總線上的設(shè)備,并根據(jù)VendorID以及DeviceID判斷所述驅(qū)動(dòng)是否與該設(shè)備匹配。
      [0012]優(yōu)選的,所述步驟S5進(jìn)一步包括:用戶態(tài)通過iocl函數(shù)訪問內(nèi)核態(tài),獲取所述內(nèi)核態(tài)探測(cè)到的所述3G-USB網(wǎng)卡信息。
      [0013]優(yōu)選的,所述步驟S5進(jìn)一步包括:用戶態(tài)根據(jù)所述3G-USB網(wǎng)卡信息對(duì)所述3G-USB網(wǎng)卡進(jìn)行初始化。
      [0014]優(yōu)選的,所述3G-USB網(wǎng)卡信息包括3G-USB網(wǎng)卡類型、3G-USB網(wǎng)卡個(gè)數(shù)、3G-USB網(wǎng)卡對(duì)應(yīng)的驅(qū)動(dòng)類型以及3G-USB網(wǎng)卡設(shè)備的總線編號(hào)、設(shè)備編號(hào)和、廠商ID和產(chǎn)品ID。。[0015]通過采用本發(fā)明所公開一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法,通過將3G-USB網(wǎng)卡的自動(dòng)探測(cè)及驅(qū)動(dòng)加載均放在用戶態(tài),來消除內(nèi)核態(tài)驅(qū)動(dòng)帶來的系統(tǒng)調(diào)用及數(shù)據(jù)包拷貝的高額開銷,同時(shí),用戶態(tài)驅(qū)動(dòng)提供了非常強(qiáng)悍的調(diào)試能力,能將驅(qū)動(dòng)開發(fā)人員在Linux下繁瑣的調(diào)試作業(yè)中解放出來,進(jìn)一步提高開發(fā)效率。
      【專利附圖】

      【附圖說明】
      [0016]通過參考附圖會(huì)更加清楚的理解本發(fā)明的特征和優(yōu)點(diǎn),附圖是示意性的而不應(yīng)理解為對(duì)本發(fā)明進(jìn)行任何限制,在附圖中:
      [0017]圖1示出了本發(fā)明實(shí)施例中的一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3F-USB網(wǎng)卡方法的步驟流程圖。
      【具體實(shí)施方式】
      [0018]下面將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)描述。
      [0019]如圖1所述,本發(fā)明提供了一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法,包括以下步驟:
      [0020]步驟S1:在Linux內(nèi)核初始化階段,USB總線注冊(cè)各個(gè)驅(qū)動(dòng)并掃描所有掛載在USB總線上的設(shè)備;在內(nèi)核初始化階段USB驅(qū)動(dòng)加載會(huì)調(diào)用統(tǒng)一接口 usb_register_driver注冊(cè)各個(gè)驅(qū)動(dòng)。
      [0021]步驟S2:各個(gè)驅(qū)動(dòng)分別遍歷所有掛載在USB總線上的設(shè)備,并判斷驅(qū)動(dòng)是否與該設(shè)備匹配,若是,則執(zhí)行步驟S3,若不是,則返回步驟SI。
      [0022]具體地,步驟S2進(jìn)一步包括:
      [0023]各個(gè)驅(qū)動(dòng)分別遍歷所有掛載在USB總線上的設(shè)備,并根據(jù)VendorID以及DeviceID判斷驅(qū)動(dòng)是否與該設(shè)備匹配。根據(jù)設(shè)備的VendorlD、DeviceID等信息的匹配情況,判定該驅(qū)動(dòng)是否能支持掛載在USB總線上的該設(shè)備。
      [0024]具體地,利用usb_match_device函數(shù)對(duì)遍歷的所有掛載在USB總線上的設(shè)備與預(yù)先存儲(chǔ)在全局變量中的設(shè)備信息進(jìn)行匹配。其中,將192d,即為中興的VendorID ;12dl,即為華為的VendorID預(yù)先存儲(chǔ)在全局變量中。
      [0025]步驟S3:判斷設(shè)備的廠商ID是否為3G-USB網(wǎng)卡設(shè)備的廠商ID,若不是,則將該設(shè)備初始化,若是,則執(zhí)行步驟S4。
      [0026]步驟S4:將設(shè)備識(shí)別為3G-USB網(wǎng)卡,保存3G-USB網(wǎng)卡信息并放棄對(duì)3G-USB網(wǎng)卡的初始化。
      [0027]步驟S5:用戶態(tài)獲取3G-USB網(wǎng)卡信息,并根據(jù)3G-USB網(wǎng)卡信息加載對(duì)應(yīng)的3G-USB網(wǎng)卡驅(qū)動(dòng)。
      [0028]具體地,用戶態(tài)獲取3G-USB網(wǎng)卡信息包括3G-USB網(wǎng)卡類型、3G-USB網(wǎng)卡個(gè)數(shù)、3G-USB網(wǎng)卡對(duì)應(yīng)的驅(qū)動(dòng)類型以及3G-USB網(wǎng)卡設(shè)備的總線編號(hào)、設(shè)備編號(hào)和、廠商ID和產(chǎn)品ID0
      [0029]進(jìn)一步地,步驟S5進(jìn)一步包括:用戶態(tài)通過iocl函數(shù)訪問內(nèi)核態(tài),獲取內(nèi)核態(tài)探測(cè)到的3G-USB網(wǎng)卡信息。
      [0030]進(jìn)一步地,步驟S5進(jìn)一步包括:用戶態(tài)根據(jù)3G-USB網(wǎng)卡信息對(duì)3G-USB網(wǎng)卡進(jìn)行初始化。
      [0031]本發(fā)明提供一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法,通過將3G-USB網(wǎng)卡的自動(dòng)探測(cè)及驅(qū)動(dòng)加載均放在用戶態(tài),來消除內(nèi)核態(tài)驅(qū)動(dòng)帶來的系統(tǒng)調(diào)用及數(shù)據(jù)包拷貝的高額開銷,同時(shí),用戶態(tài)驅(qū)動(dòng)提供了非常強(qiáng)悍的調(diào)試能力,能將驅(qū)動(dòng)開發(fā)人員在Linux下繁瑣的調(diào)試作業(yè)中解放出來,進(jìn)一步提高開發(fā)效率。
      [0032]雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。
      【權(quán)利要求】
      1.一種基于Linux內(nèi)核的用戶態(tài)自動(dòng)探測(cè)及驅(qū)動(dòng)加載3G-USB網(wǎng)卡方法,其特征在于,所述方法具體包括: 51:在Linux內(nèi)核初始化階段,USB總線注冊(cè)各個(gè)驅(qū)動(dòng)并掃描所有掛載在USB總線上的設(shè)備; 52:所述各個(gè)驅(qū)動(dòng)分別遍歷所有掛載在所述USB總線上的設(shè)備,并判斷所述驅(qū)動(dòng)是否與該設(shè)備匹配,若是,則執(zhí)行步驟S3,若不是,則返回步驟SI ; 53:判斷所述設(shè)備的廠商ID是否為3G-USB網(wǎng)卡設(shè)備的廠商ID,若不是,則將該設(shè)備初始化,若是,則執(zhí)行步驟S4; 54:將所述設(shè)備識(shí)別為3G-USB網(wǎng)卡,保存所述3G-USB網(wǎng)卡信息并放棄對(duì)所述3G-USB網(wǎng)卡的初始化; 55:用戶態(tài)獲取所述3G-USB網(wǎng)卡信息,并根據(jù)所述3G-USB網(wǎng)卡信息加載對(duì)應(yīng)的3G-USB網(wǎng)卡驅(qū)動(dòng)。
      2.如權(quán)利要求1所述的方法,其特征在于,所述步驟S2進(jìn)一步包括: 所述各個(gè)驅(qū)動(dòng)分別遍歷所有掛載在所述USB總線上的設(shè)備,并根據(jù)VendorID以及DeviceID判斷所述驅(qū)動(dòng)是否與該設(shè)備匹配。
      3.如權(quán)利要求1所述的方法,其特征在于,所述步驟S5進(jìn)一步包括:用戶態(tài)通過ioctl函數(shù)訪問內(nèi)核態(tài),獲取所述內(nèi)核態(tài)探測(cè)到的所述3G-USB網(wǎng)卡信息。
      4.如權(quán)利要求1所述的方法,其特征在于,所述步驟S5進(jìn)一步包括:用戶態(tài)根據(jù)所述3G-USB網(wǎng)卡信息對(duì)所述3G-USB網(wǎng)卡進(jìn)行初始化。
      5.如權(quán)利要求1-4任一項(xiàng)所述的方法,其特征在于,所述3G-USB網(wǎng)卡信息包括3G-USB網(wǎng)卡類型、3G-USB網(wǎng)卡個(gè)數(shù)、3G-USB網(wǎng)卡對(duì)應(yīng)的驅(qū)動(dòng)類型以及3G-USB網(wǎng)卡設(shè)備的總線編號(hào)、設(shè)備編號(hào)、廠商ID和產(chǎn)品ID。
      【文檔編號(hào)】G06F9/445GK103744703SQ201410006535
      【公開日】2014年4月23日 申請(qǐng)日期:2014年1月7日 優(yōu)先權(quán)日:2014年1月7日
      【發(fā)明者】高福亮 申請(qǐng)人:漢柏科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1