不懂mtd设备,学习之。
第一个找到的函数是init_mtdblock。调用了register_mtd_blktrans函数,传入参数是一个mtd_blktrans_ops类型的结构。
static struct mtd_blktrans_ops mtdblock_tr = {
.name = "mtdblock",
.major = 31,
.part_bits = 0,
.blksize = 512,
.open = mtdblock_open,
.flush = mtdblock_flush,
.release = mtdblock_release,
.readsect = mtdblock_readsect,
.writesect = mtdblock_writesect,
.add_mtd = mtdblock_add_mtd,
.remove_dev = mtdblock_remove_dev,
.owner = THIS_MODULE,
};
static int __init init_mtdblock(void)
{
printk(KERN_EMERG" yw init_mtdblock /n");
return register_mtd_blktrans(&mtdblock_tr);
}
在register_mtd_blktrans中初始化了 mtd_blktrans_ops的blkcore_priv成员