MMCblk设备的源码添加通常涉及到Linux内核的驱动开发。根据搜索结果,MMCblk设备的驱动源码位于drivers/mmc/card(core)/block.c文件中,其中mmc_blk_probe()函数是块设备驱动初始化时的入口函数,主要负责分配与块设备紧密相关的struct gendisk结构,并将其添加到系统中。
在mmc_blk_probe()函数中,会分配struct gendisk并初始化,包括主次设备号、块设备操作函数mmc_bdops等。然后通过mmc_add_disk(md)将struct gendisk *disk添加到系统中。
设备节点生成过程
块设备注册:mmc_blk_probe()函数负责注册块设备。
设备节点创建:在add_disk(struct gendisk *disk)函数中,会根据disk的major和first_minor,由MKDEV处理后返回devt,即主次设备号。然后通过blk_register_region(disk_devt(disk), disk->minors, NULL, exact_match, exact_lock, disk);将块设备添加到系统,并通过register_disk(disk);创建mmcblk0块设备主分区节点,创建主分区的bdev。
总结
MMCblk设备的源码添加主要涉及到drivers/mmc/card(core)/block.c文件中的mmc_blk_probe()函数,该函数负责块设备的初始化和注册。设备节点的生成过程则涉及到add_disk(struct gendisk *disk)函数,该函数负责将块设备添加到系统并创建相应的设备节点。