成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Unix操作系統(tǒng)之設(shè)備驅(qū)動程序

系統(tǒng) 其他OS
struct file主要用于與Unix操作系統(tǒng)文件系統(tǒng)對應(yīng)的設(shè)備驅(qū)動程序使用。當(dāng)然,其它設(shè)備驅(qū)動程序也可以使用它。它提供關(guān)于被打開的文件的信息。

由于經(jīng)常學(xué)習(xí)Unix操作系統(tǒng)的一些知識,而且很喜歡Unix操作系統(tǒng),在工作中也很喜歡總結(jié)關(guān)于Unix操作系統(tǒng)相關(guān)的經(jīng)驗教訓(xùn),下面就Unix操作系統(tǒng)下的設(shè)備驅(qū)動程序問題來詳細(xì)說說吧。

Unix操作系統(tǒng)下的設(shè)備驅(qū)動程序

具體到系統(tǒng)里,設(shè)備驅(qū)動程序所提供的這組入口點由一個結(jié)構(gòu)來向系統(tǒng)進行說明,其中,struct inode提供了關(guān)于特別設(shè)備文件/dev/driver(假設(shè)此設(shè)備名為driver)的信息,它的定義為:
dev_t i_rdev& /* Device major and minor numbers*/
struct vm_area_struct * i_mmap&
unsigned short i_flags& /* Mount flags see fs.h */

struct file主要用于與Unix操作系統(tǒng)文件系統(tǒng)對應(yīng)的設(shè)備驅(qū)動程序使用。當(dāng)然,其它設(shè)備驅(qū)動程序也可以使用它。它提供關(guān)于被打開的文件的信息,定義為:unsigned short f_flags& /* The flags arg passed to open */

在結(jié)構(gòu)file_operations里,指出了設(shè)備驅(qū)動程序所提供的入口點位置,分別是:

1 lseek,移動文件指針的位置,顯然只能用于可以隨機存取的設(shè)備。

2 read,Unix操作系統(tǒng)進行讀操作,參數(shù)buf為存放讀取結(jié)果的緩沖區(qū),count為所要 讀取的數(shù)據(jù)長度。返回值為負(fù)表示讀取操作發(fā)生錯誤,否則返回實際讀取 的字節(jié)數(shù)。對于字符型,要求讀取的字節(jié)數(shù)和返回的實際讀取字節(jié)數(shù)都必須是inode- i_blksize的的倍數(shù)。

3 write,進行寫操作,與read類似。

4 readdir,取得下一個目錄入口點,只有與Unix操作系統(tǒng)文件系統(tǒng)相關(guān)的設(shè)備驅(qū)動程序 才使用。

5 selec,進行選擇操作,如果驅(qū)動程序沒有提供select入口,select操 作將會認(rèn)為設(shè)備已經(jīng)準(zhǔn)備好進行任何的I/O操作。

6 ioctl,進行讀、寫以外的其它操作,參數(shù)cmd為自定義的的命令。

7 mmap,用于把設(shè)備的內(nèi)容映射到地址空間,一般只有塊設(shè)備驅(qū)動程序使 用。

8 open,打開設(shè)備準(zhǔn)備進行I/O操作。返回0表示打開成功,返回負(fù)數(shù)表示失敗。如果驅(qū)動程序沒有提供open入口,則只要/dev/driver文件存在就認(rèn)為打開成功。

9 release,即close操作。 設(shè)備驅(qū)動程序所提供的入口點,在設(shè)備驅(qū)動程序初始化的時候向系統(tǒng)進行登 記,以便系統(tǒng)在適當(dāng)?shù)臅r候調(diào)用。LINUX系統(tǒng)里,通過調(diào)用register_chrdev 向系統(tǒng)注冊字符型設(shè)備驅(qū)動程序。register_chrdev定義為:
int register_chrdevunsigned int major, const char *name,

其中,major是為設(shè)備驅(qū)動程序向Unix操作系統(tǒng)申請的主設(shè)備號,如果為0則Unix操作系統(tǒng)為此 驅(qū)動程序動態(tài)地分配一個主設(shè)備號。name是設(shè)備名。fops就是前面所說的對各個 調(diào)用的入口點的說明。此函數(shù)返回0表示成功。返回-EINVAL表示申請的主設(shè)備號 非法,一般來說是主設(shè)備號大于系統(tǒng)所允許的***設(shè)備號。返回-EBUSY表示所申 請的主設(shè)備號正在被其它設(shè)備驅(qū)動程序使用。

如果是動態(tài)分配主設(shè)備號成功,此 函數(shù)將返回所分配的主設(shè)備號。如果register_chrdev操作成功,設(shè)備名就會出 現(xiàn)在/proc/devices文件里。

初始化部分一般還負(fù)責(zé)給設(shè)備驅(qū)動程序申請系統(tǒng)資源,包括內(nèi)存、中斷、時 鐘、I/O端口等,這些資源也可以在open子程序或別的地方申請。在這些資源不 用的時候,應(yīng)該釋放它們,以利于資源的共享。 在Unix操作系統(tǒng)里,對中斷的處理是屬于系統(tǒng)核心的部分,因此如果設(shè)備與系

統(tǒng)之間以中斷方式進行數(shù)據(jù)交換的話,就必須把該設(shè)備的驅(qū)動程序作為Unix操作系統(tǒng)核心的一部分。設(shè)備驅(qū)動程序通過調(diào)用request_irq函數(shù)來申請中斷,通過free_irq 來釋放中斷。

以上,我們就完成了對Unix操作系統(tǒng)下的設(shè)備驅(qū)動程序介紹。希望對大家對Unix操作系統(tǒng)的學(xué)習(xí)有所幫助。

【編輯推薦】

  1. 略述Unix操作系統(tǒng)缺點
  2. 盤點Unix操作系統(tǒng)優(yōu)勢所在
  3. 深度講解Unix操作系統(tǒng)程指
  4. 學(xué)習(xí)Unix操作系統(tǒng)進程
  5. Unix操作系統(tǒng)Vi編輯程序操作模式
責(zé)任編輯:小霞
相關(guān)推薦

2010-04-19 10:18:30

Unix操作系統(tǒng)

2010-05-10 15:53:24

Unix系統(tǒng)

2010-05-10 16:08:41

Unix系統(tǒng)

2010-04-16 18:15:11

Unix操作系統(tǒng)

2010-04-16 14:30:11

2010-04-16 18:02:30

Unix操作系統(tǒng)

2011-01-10 18:21:38

linux編寫程序

2010-04-13 12:27:44

Unix操作系統(tǒng)

2010-04-19 12:47:39

Unix操作系統(tǒng)

2010-04-09 11:11:34

Unix操作系統(tǒng)

2010-04-15 14:40:26

Unix操作系統(tǒng)

2009-12-07 09:39:04

Linux設(shè)備驅(qū)動硬件通信

2010-04-08 10:42:28

Unix操作系統(tǒng)

2010-04-08 16:18:22

Unix操作系統(tǒng)工具

2010-04-08 17:56:42

Unix操作系統(tǒng)

2010-04-14 13:59:45

Unix操作系統(tǒng)

2010-04-16 17:19:58

Unix操作系統(tǒng)

2010-04-19 10:54:33

Unix操作系統(tǒng)

2010-04-19 16:57:09

Unix操作系統(tǒng)

2010-04-19 17:39:50

Unix操作系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲成人一区二区三区 | 欧美精品国产精品 | 欧美极品在线视频 | 久久国产精品视频 | 一级做a爰片久久毛片免费看 | 亚洲精品视频在线观看视频 | 一级女毛片 | 一级片在线观看视频 | 成人在线播放网站 | 中文字幕一级毛片视频 | 中文字幕在线观看一区二区 | 黄色大片在线免费观看 | 中文字幕第一页在线 | 亚洲精品一级 | 欧美激情精品久久久久 | 久久国产精品一区二区三区 | 久久91| 国产日韩精品在线 | 国产免费a视频 | 人操人人| 亚洲一区精品视频 | 亚洲激情专区 | 亚洲三区在线观看 | 亚洲欧美激情四射 | 亚洲欧美精品在线观看 | 欧美日韩视频一区二区 | 午夜精品网站 | 一本在线| 国产精品不卡一区二区三区 | 国产精品国产a | 国产在线精品一区二区三区 | 国产乱码精品一区二区三区中文 | 午夜爽爽爽男女免费观看 | 99re超碰| 欧美成人免费在线 | 天天干b| 91视视频在线观看入口直接观看 | 中文字幕在线人 | 亚洲综合区 | 在线观看国产wwwa级羞羞视频 | 日日想夜夜操 |