版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
:本課件及其印刷物、的歸國(guó)嵌 ,不得使用該課件及其印刷物、從事商業(yè)、教學(xué)活 的,應(yīng)在范圍內(nèi)使用,并注明“來源:國(guó)嵌”。上述者 。 Read的功能?Ioctl用來做什么 改變波特率,方法號(hào)群 intioctl(intfd,unsignedlong與否依賴于控制命令(2)是否涉及 ioctl驅(qū)動(dòng)方法有和用戶空間版本不同的原型:int*ioctl)(structinode*inode,structfile*filp,unsignedintcmd,unsignedlongcmd參數(shù)從用戶空間傳下來,arg以一個(gè)unsignedlong的形式傳遞,不管它是一個(gè)整數(shù)或一個(gè)指針。如果cmd命令不涉及數(shù)據(jù)傳輸,則第3個(gè) 止對(duì)錯(cuò)誤的設(shè)備使用正確令,命令號(hào)應(yīng)該在系 ioctl4個(gè)位段這個(gè)列表幻數(shù)(類型):表明哪個(gè)設(shè)備 number.txt之后選出,8位寬。 _IOC_READ_IOC_WRITE數(shù)據(jù)傳送是從應(yīng)用程序的觀點(diǎn)來看待的,_IOC_READ意思是從設(shè)備讀。 內(nèi)核提供了下列宏來幫助定義命令內(nèi)核提供了下列宏來幫助定義命令令雙向傳送,typenumber #defineMEM_IOC_MAGICm’//#define_IOW(MEM_IOC_MAGIC,0,#define_IOR(MEM_IOC_MAGIC,1, 匹配任何一個(gè)設(shè)備所支持令時(shí),通常返回-EINVAL(“參數(shù)”)。 intaccess_ok(inttype,constvoid*addr,unsignedlongVERIFY_READVERIFY_WRITE,用來表明是讀用戶內(nèi)存還是寫用戶內(nèi)存。addr參數(shù)是要操作的用戶內(nèi)存地址,size是操作的長(zhǎng)度。如果ioctl需要從用戶空間讀一個(gè)整數(shù),那么size參數(shù)等于sizeof(int)。access_ok返回一個(gè)布爾值:1是成功(存取沒問題)和0是失敗(存取有問題),如果該函數(shù)返回失敗,則Ioctl應(yīng)當(dāng)返回–EFAULT if(_IOC_DIR(cmd)& user//why_IOC_READVERIFY_WRITEelseif(_IOC_DIR(cmd)&_IOC_WRITE) userif(err) {caseMEM_IOCSQUANTUM:/*Set:argpointstothevalueretval= caseMEM_IOCGQUANTUM:/*Get:argispointertoresult*/retval= put_user(scull_quantum,(int*)arg);return} wait_queue_head_tmy_queue
intwait_event_killable(wait_queue_tqueue, sleep_on(wait_queue_head_t wake_up(wait_queue_twake_up_interruptible(wait_queue_t 應(yīng)當(dāng)如何處理?例如:調(diào)用read時(shí)沒有數(shù)據(jù)可讀, 這種問題,應(yīng)用程序只是調(diào)用read或write并得到 *exceptfds,conststructtimeval 被 被 Timeout為NULL,select將阻塞進(jìn)程,直到某個(gè)文件Timeout值為正整數(shù)就是等待的最長(zhǎng)時(shí) 正常情況下返回滿足要求的文件描述符個(gè) voidFD_SET(intfd,fd_set*fdset)voidFD_CLR(intfd,fd_set*fdset)voidFD_ZERO(fd_set*fdset)voidFD_ISSET(intfd,fd_set FD_ZERO(&fds);//清空集合maxfdp=fd1+1;//描述符最大值加1,假設(shè)fd1>fd2case unsignedint(*poll)(structfile*filp,poll_table 返回描述設(shè)備是否可讀或可寫的掩碼 ) staticunsignedintmem_poll(structfile*filp,poll_table{structscull_pipe*dev=filp->private_data;unsignedintmask=0;/*把進(jìn)程添加到等待隊(duì)列*/if(有數(shù)據(jù)可讀maskPOLLIN|POLLRDNORM;/*設(shè)備可讀return} 在select.c中的do_select函數(shù)。 1.mknod2. devfs_register(devfs_handle_tdir,const*name,unsignedintflags,unsignedintmajor,unsignedintminor,umode_tmode,void*ops,void*info) 從Linux2.6.13開始,devfs不復(fù)存在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年閩侯縣曇石山中學(xué)第一期臨聘教師招聘?jìng)淇碱}庫及參考答案詳解1套
- 2025年中職歷史學(xué)(中國(guó)古代史綱要)試題及答案
- 2025年中職智慧健康養(yǎng)老服務(wù)(養(yǎng)老常識(shí)基礎(chǔ))試題及答案
- 2026年倉儲(chǔ)管理(貨物防護(hù))試題及答案
- 2025年大學(xué)第二學(xué)年(精密儀器制造)技術(shù)應(yīng)用階段測(cè)試題及答案
- 2025年高職(電子信息工程技術(shù))單片機(jī)原理及應(yīng)用專項(xiàng)測(cè)試試題及答案
- 2025年大學(xué)生態(tài)工程(生態(tài)工程)試題及答案
- 2025年中職(會(huì)計(jì)電算化)電子報(bào)稅綜合技能測(cè)試試題及答案
- 2025年中職(會(huì)計(jì)信息化)財(cái)務(wù)軟件操作試題及答案
- 2025年大學(xué)農(nóng)業(yè)機(jī)械化及其自動(dòng)化(農(nóng)機(jī)智能化技術(shù))試題及答案
- 2025年遼鐵單招考試題目及答案
- 醫(yī)療行業(yè)數(shù)據(jù)安全事件典型案例分析
- 2026年生物醫(yī)藥創(chuàng)新金融項(xiàng)目商業(yè)計(jì)劃書
- 湖南名校聯(lián)考聯(lián)合體2026屆高三年級(jí)1月聯(lián)考化學(xué)試卷+答案
- 山東省濰坊市2024-2025學(xué)年二年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 空氣源熱泵供熱工程施工方案
- 資料3b SIG康美包無菌灌裝流程及特征分段介紹
- 鉗工技能訓(xùn)練(第4版)PPT完整全套教學(xué)課件
- 電力工程課程設(shè)計(jì)-某機(jī)床廠變電所設(shè)計(jì)
- Unit 2 Reading and Thinking教學(xué)課件(英語選擇性必修第一冊(cè)人教版)
- 兒童常用補(bǔ)液
評(píng)論
0/150
提交評(píng)論