塊裝置子系統是Linux中一個很重要的子產品,在inode中有個字段是block_device類型的,它指向一個塊裝置,但是注意這裡的“塊裝置”和 裝置驅動裡面的塊裝置的差别是非常大的,這裡的塊裝置是一個比較高層的概念,而最底層的塊裝置在檔案系統還觸及不到。還是按照往常的方式來分析一下代碼:首先看一下
struct bus_type ide_bus_type = {
.name = "ide",
.match = ide_bus_match,
.uevent = ide_uevent,
.probe = generic_ide_probe,
.remove = generic_ide_remove,
.shutdown = generic_ide_shutdown,
.dev_attrs = ide_dev_attrs,
.suspend = generic_ide_suspend,
.resume = generic_ide_resume,
};
如果新加入一個裝置或者驅動的時候就要進行枚舉,這是很明了的了,一旦比對成功則要調用總線或者驅動的
Probe函數,這裡是generic_ide_probe:
static int generic_ide_probe(struct device *dev)
{
本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1273946