下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第第頁linux系統(tǒng)中常見注冊函數的使用方法
大家好,今天給大家分享一下,(linux)系統(tǒng)中常見的注冊函數register_chrdev_region()、register_chrdev()、alloc_chrdev_region()的使用方法。
一、函數包含的頭文件:
分配設備編號,注冊設備與注銷設備的函數均在fs.h中申明,如下:
ex(te)rnintregister_chrdev_region(dev_t,unsigned,constchar*);//靜態(tài)的申請和注冊設備號
externint
alloc_chrdev_region(dev_t,unsigned,constchar*);
//動態(tài)的申請注冊一個設備號
externintregister_chrdev(unsignedint,constchar*,structfile_opera(ti)ons*);//int為0時候動態(tài)注冊,非零時候靜態(tài)注冊。
externintunregister_chrdev(unsignedint,constchar*);
//注銷設備號
externvoidunregister_chrdev_region(dev_t,unsigned);
//注銷設備號
二、注冊設備號
靜態(tài)注冊:
使用register_chrdev_region()首先需要定義一個dev_t變量來作為一個設備號,
dev_t
dev_num;
要想注冊一個設備則需要一個主設備號。
根據主設備號獲取設備號:
dev_num=MKDEV(maj(or),minor);
major是一個表示設備號的主設備號,minor次設備號
注冊:
register_chrdev_region(dev_num,2,"dev_name");
第一個(參數)表示設備號,第二個參數表示注冊的此設備數目,第三個表示設備名稱。
動態(tài)注冊:
如果我們提前知道設備的編號,那么就用register_chrdev_region(),但是如果我們不知道呢,我們就使用動態(tài)申請設備編號。
alloc_chrdev_region(
第一個參數保存生成的設備號,第二個參數注冊設備的數目,第三個參數表示設備名稱。
根據設備號獲取主設備號:
dev_major=MAJOR(dev_num);
三、向內核中添加設備
structcdev
devno;
cdev_init(//初始化設備
devno.owner=THIS_MODULE;
//.owner這表示誰擁有你這個驅動程序,
devno.ops=
對于已經知道了主設備號,就用cdev_(ad)d(來添加設備
如果是動態(tài)申請的設備號,就用cdev_add(
向內核添加設備,第一個參數是設備,第二個參數是設備號,第三個參數是要注冊的次設備數目,mem_major在動態(tài)申請時候保存起來了。
四、注銷設備
注銷設備時候,使用unregister_chrdev_region(dev_t,unsigned);第一個參數設備號,和注冊時候的要一致,因此如果是動態(tài)分配的就需要保存起來,第二個參數是次設備的個數。
五、register_chrdev()函數的不一致
register_chrdev(unsignedint,constchar*,structfile_operations*);//申請注冊設備號以第一個參數來辨別動態(tài)與靜態(tài)。
1、如果第一個參數是0,表示動態(tài)的分配給此驅動程序一個主設備號,
2、非零時候,表示備驅動程序向系統(tǒng)申請主設備號,
第二個是設備名,第三個file_operations,如果是動態(tài)分配的,則函數返回分配的主設備號。
對應的使用unregister_chrdev(unsignedint,constchar*);來注銷設備,第一個參數是主設備號,必須和注冊時候的主設備號一致,如果注冊時候是動態(tài)的分配的主設備號,就需要保存起來,第二個是設備名。
綜上得出:register_chrdev_region()比re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我的語文老師讓我感動的事作文7篇
- 腦梗死患者的吞咽障礙護理
- 體育賽事組織策劃與實施合同
- 科技人才引進培養(yǎng)承諾書6篇
- 金色的秋天田野寫景作文13篇
- 教育學術倫理承諾書示例(6篇)
- 資產增值服務承諾書5篇范文
- 空間站建設工程質量保證承諾函7篇范文
- 安徽醫(yī)科大學《日語聽力》2024 - 2025 學年第一學期期末試卷
- 2026廣東佛山順德區(qū)杏壇光輝幼兒園招聘備考題庫附答案詳解ab卷
- 2026中考英語時文熱點:跨學科融合閱讀 練習(含解析)
- 《筑牢安全防線 歡度平安寒假》2026年寒假安全教育主題班會課件
- 2026國家國防科技工業(yè)局所屬事業(yè)單位第一批招聘62人備考題庫及答案詳解(新)
- 信息技術應用創(chuàng)新軟件適配測評技術規(guī)范
- 2026版安全隱患排查治理
- 道路施工安全管理課件
- (2025年)吉林事業(yè)單位考試真題附答案
- 肉瘤的課件教學課件
- 《患者身份識別管理標準》測試題及答案
- VTE患者并發(fā)癥預防與處理
- 車輛救援合同協(xié)議書
評論
0/150
提交評論