块设备子系统是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)
{