Linux驅動之裝置模型 8

2021-06-20 22:45:10 字數 658 閱讀 9685

9.小結

9.1  匯流排,裝置,驅動和類之間的關係

l  匯流排相當於乙個容器,是device和device_driver的管理機構,它包含了乙個device集合(devices_kset)和乙個驅動集合(drivers_kset),分別表示掛依附於此匯流排的所有裝置和所有驅動。

l  驅動依附在匯流排上,包含了乙個裝置鏈(klist_devices),用來遍歷匯流排上的裝置,驅動還包含了乙個bus_type指標,表示驅動所依附的匯流排。

l  裝置掛載匯流排上,包含了乙個device_driver指標,表示這個裝置對應的裝置驅動。還包含了bus_type,表示裝置所依附的匯流排

l  class 是按照裝置的功能來進行分類,功能相同的裝置是一類,功能相同的匯流排(實際的匯流排也是裝置)也可能是一類。

l  需要說明的是,乙個實際的匯流排在裝置模型中是由兩個結構表示:bus_type和device,bus_type代表匯流排型別,出現在/sys/bus/目錄下;device代表匯流排裝置,出現在/sys/devices/目錄下,這表明實際的匯流排本質上是一種裝置;device和device_driver通常會嵌入到其他的資料結構中,不單獨使用。

9.2  例項關係

下圖是對上面幾個實驗畫出的關係圖

Linux驅動之裝置模型 8

9 小結 9.1 匯流排,裝置,驅動和類之間的關係 l 匯流排相當於乙個容器,是device和device driver的管理機構,它包含了乙個device集合 devices kset 和乙個驅動集合 drivers kset 分別表示掛依附於此匯流排的所有裝置和所有驅動。l 驅動依附在匯流排上,...

Linux驅動之裝置模型 3

4 小結 4.1 kobject,kset和ktype kobject,kset和ktype就三個結構體,但是卻很容易讓人混淆,是由於它們內部相互交織。l kobject,是裝置模型中的基本物件,包含了引用計數,父子關係,目錄項等,通常會嵌入到其它的資料結構中,使其也具有kobject的特性 l k...

Linux驅動之裝置模型 5

6 裝置 6.1 裝置 l linux裝置模型中每乙個裝置用device結構來表示 struct device 6.2 裝置屬性 l 裝置屬性由device attribute來表示 structdevice attribute device attr name,mode,show,store l ...