日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux父设备,linux 设备模型---学习记录(二)

發布時間:2024/1/23 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux父设备,linux 设备模型---学习记录(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過bus_register()函數可以弄清楚整個設備模型的骨架。大致的架構弄清楚之后就可以繼續填充這個模型了。根據總線、設備、驅動由高層到底層的順序,可以以設備為入口點來繼續探索。

設備的入口在device_register()函數當中。該函數相當簡單,僅包含兩個函數調用,第一個是device_initialize(),第二個是device_add()函數。根據調用順序依次閱讀其源碼。拋開與設備模型無關的代碼不談,雖然sysfs也屬于設備模型,但可以忽略它。沒有顯示的說明,所列出的代碼都來自

drivers/base/core.c文件。

首先第一個函數device_initialize()。

570 dev->kobj.kset = devices_kset;

由此可見,所有的設備都在這個名叫devices_kset的容器當中,可以稱其為設備容器。

571 kobject_init(&dev->kobj, &device_ktype);

顯然,所有的設備都屬于device_ktype類型的。

在設備模型當中,該函數的作用就是將該設備放入設備容器當中,并設置設備類型。

第二個函數device_add()。

971 ?parent = get_device(dev->parent);

972 ?setup_parent(dev, parent);

這兩條語句設置該設備的內嵌kobject的父kobject為其父設備的kobject。當然,該設備可能沒有父設備。再次體現出kobject在設備模型中對理清各個設備層次關系的重要性。

980? error = kobject_add(&dev->kobj, dev->kobj.parent, NULL);

將該設備添加到上層設備的內嵌kobject鏈表當中。即dev->kobj.parent.list鏈表。dev->kobj.parent可能為空,由kobject_add函數可知,會將dev->kobj.kset.kobj設置為dev->kobj.parent。

而dev->kobj.kset就是devices_kset。這樣對于沒有父設備的設備就直接在devices_kset的下層。而devices_kset只是一個容器.所以該設備就屬于頂層設備。

1010? error = bus_add_device(dev);

這里在設備層次上暴露出與總線的交互關系.跟蹤其函數調用。只有一條語句與設備模型相關。

在drivers/base/bus.c文件當中:

467??klist_add_tail(&dev->p->knode_bus, &bus->p->klist_devices);

該語句就是將該設備添加到其所連接到的總線上設備鏈表當中。由此可知,通過總線的設備鏈表可以獲知所有連接到該總線的設備。相當明了了... (有興趣的童鞋可以瀏覽一下klist的接口)

1026 bus_probe_device(dev);

設備在驅動模型自設備往上的邏輯結構已經完成了.現在就該給device找個能夠驅動它的驅動了。不在此做延伸.這里涉及到了總線、設備、驅動三者之間的關系.而這里僅以設備位主線來考察。留待驅動這個層次分析清楚之后再作展開。

1027 if (parent)

1028????? klist_add_tail(&dev->p->knode_parent,

1029????????????? &parent->p->klist_children);

如果該設備有父設備.就將其添加到父設備的子設備鏈表當中。

以上就是device_register所做的所有事情.其中主要就是理清該設備在設備模型中與總線、父設備以及驅動之間的所有復雜的關系.

總結

以上是生活随笔為你收集整理的linux父设备,linux 设备模型---学习记录(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。